多元时间序列分析的第一步是数据的获取、检验和预处理。介绍以下内容:
如何将经济数据加载到MATLAB中®
适合多变量时间序列分析函数的数据类型和结构
时间序列数据的共同特征,可以保证在进行分析之前对集合进行转换
如何将数据划分为预样本、估计和预测样本。
两种主要的多元时间序列数据类型是:
响应数据-来自n-D多变量时间序列的响应yt(见平稳多元时间序列模型的类型).
外生的数据-来自米-D多变量预测时间序列xt.默认情况下,外生数据中的每个变量都出现在所有响应方程中。
在指定任何数据集作为Econometrics Toolbox™函数的输入之前,请对数据进行适当的格式化。使用标准的MATLAB命令,或者用电子表格程序、数据库程序、PERL或其他工具对数据进行预处理。
您可以从几个免费的来源获得历史时间序列数据,例如圣路易斯联邦储备经济数据库(称为FRED)®):https://research.stlouisfed.org/fred2/
.如果您拥有Datafeed Toolbox™许可证,则可以使用Toolbox函数访问来自各种数据源的数据。
该文件Data_USEconModel
随计量经济学工具箱发货。它包含FRED的时间序列。
将数据加载到MATLAB工作区中。
负载Data_USEconModel
工作区中的变量包括:
数据
,一个包含14个宏观经济时间序列的249 × 14矩阵。
数据表
,一个249乘14的MATLAB时间表数组,包含时间戳数据。
日期
,这是一个包含249个元素的向量,其中包含MATLAB的序列日期数字,代表采样日期。连续日期是自1月1日起的天数。(这个“日期”不是一个真正的日期,但便于进行日期计算。有关详细信息,请参见日期的格式在财务工具箱™用户指南中。)
描述
,一个字符数组,包含数据系列的描述和每个系列标签的键。
系列
,一个1 × 14的单元格数组,包含时间序列的标签。
数据表
包含的数据与数据
.但是,与表一样,时间表允许您使用点符号来访问变量。例如,数据表。UNRATE
指定失业率时间序列。所有的时间表都包含这个变量时间
,也就是datetime
观测时间戳向量。有关详细信息,请参见创建时间表和在MATLAB中表示日期和时间.您还可以使用MATLAB中存储的序列号日期
.
使用命令显示第一次和最后一次采样时间以及变量名数据表
.
firstperiod = DataTable.Time (1)
firstperiod =datetimeQ1-47
lastperiod = DataTable.Time(结束)
lastperiod =datetimeQ1-09
seriesnames = DataTable.Properties.VariableNames
seriesnames =1 x14细胞列7至12列{'GPDI'} {'GS10'} {'HOANBS'} {'M1SL'} {'M2SL'} {'PCEC'}第13至14列{'TB3MS'} {'UNRATE'}
这个表描述了数据表
.
弗雷德变量 | 描述 |
---|---|
COE |
向员工支付数十亿美元的薪酬 |
CPIAUCSL |
居民消费价格指数 |
FEDFUNDS |
有效联邦基金利率 |
全球教育运动 |
政府消费支出和投资达数十亿美元 |
国内生产总值 |
本地生产总值 |
GDPDEF |
国内生产总值数十亿美元 |
GPDI |
国内私人投资总额达数十亿美元 |
GS10 |
十年期国债收益率 |
HOANBS |
非农企业部门工时指数 |
M1SL |
M1货币供应量(狭义货币) |
M2SL |
M2货币供应量 |
PCEC |
个人消费支出达数十亿美元 |
TB3MS |
三个月国库券收益率 |
UNRATE |
失业率 |
考虑研究GDP、CPI和失业率的动态变化,并假设政府消费支出是一个外生变量。为响应和预测器数据创建数组。在每个数组中显示最新的观测结果。
Y = DataTable {:,“CPIAUCSL”“UNRATE”“国内生产总值”]};x = DataTable.GCE;lastobsresponse = Y(最终,:)
lastobsresponse =1×3104× 0.0213 0.0008 1.4090
lastobspredictor = x(结束)
lastobspredictor = 2.8833 e + 03
Y
和x
表示观察的一条路径,并适当地格式化以传递给多元模型对象函数。时间戳信息不适用于数组,因为分析假定采样时间间隔是均匀的。
通常,您将响应和预测数据集作为数字数组、MATLAB表或MATLAB时间表加载到MATLAB Workspace中。然而,多元时间序列对象函数只接受二维或三维数字数组,必须指定响应和预测器数据作为单独的输入。
变量的类型和问题上下文决定您提供的数据的格式。对于任何包含多变量时间序列数据的数组:
行t数组的值包含所有变量在同一时刻的观测值t.
列j数组的值包含所有变量的观测值j.MATLAB将数组中的每个变量视为不同的。
一个数据矩阵表示一个样本路径。创建一个表示长度的路径的变量T的响应数据,将数据放入T——- - - - - -n矩阵Y
:
Y (
=yj, t即观察t响应变量的j.由预测变量或其他变量创建的数据的单一路径具有类似的形式。t
,j
)
您可以指定一个观察路径作为所有接受数据的多元模型对象函数的输入。提供一条路径的例子包括:
三维数字数组表示多个独立的数据样本路径。您可以创建T——- - - - - -n——- - - - - -p数组Y
,代表p响应数据的样本路径,通过沿第三维叠加单个响应路径(矩阵)。
Y (
=yj,t,k即观察t响应变量的j从路径k,k= 1,…,p.所有路径的采样时间必须相同,路径之间的变量必须对应。有关详细信息,请参见多维数组.t
,j
,k
)
您可以指定响应或创新的多条路径的数组,作为接受数据的多个多元模型对象函数的输入。提供多条路径的例子包括:
初始化具有多路径预样数据的VEC模型,用于预测或模拟多路径。每个指定的路径可以代表不同的初始条件,函数从中生成预测或模拟。
通过VAR模型筛选创新的多条路径,得到多条响应路径。这个过程是模拟多个响应路径的一种替代方法。
从给定多条未来响应数据路径的VAR模型中生成多条条件预测路径。
估计
不支持指定响应数据金宝app的多条路径。
所有以外生数据为输入的多元模型对象函数都接受一个矩阵X表示一种观测路径。MATLAB将所有外生变量都包含在每个响应方程的回归分量中。VAR (p)模型,响应方程为:
要配置响应方程的回归组件,使用回归系数矩阵(存储在β
模型对象的属性)而不是数据。有关详细信息,请参见创建VAR模型和为响应方程选择外生变量.
多变量模型对象函数不支持预测器数据的多路径。金宝app但是,如果指定一个预测器数据路径和多个响应或创新数据路径,则该函数将相同的预测器数据关联到所有路径。例如,如果您模拟VARX模型的响应路径,并指定多个前样本值路径,模拟
对每个生成的响应路径应用相同的外生数据。
您的数据可能具有违背模型假设的特征。例如,您可以拥有指数增长的数据,或者来自多个不同周期的数据。在这种情况下,对数据进行预处理或转换为可接受的形式进行分析。
检查数据中缺少的值,这些值由南
默认情况下,对象函数使用列表删除来删除包含至少一个缺失值的观察值。如果至少有一个响应或预测变量对一个时间点(行)有一个缺失值,MATLAB将删除该时间的所有观察值(响应和预测数据矩阵的整个行)。这种缺失可能对时间基础和有效样本量产生影响。因此,您应该在开始分析之前调查并解决任何缺失的值。
对于来自多个数据源的数据,必须决定如何同步数据。数据同步可以包括数据聚合或分解,后者可以创建缺失值的模式。您可以通过输入以前的值(即,丢失的值与以前的值不变)或从邻近的值中插入它们来处理这些类型的诱导丢失值。
如果时间序列是一个时间表中的变量,那么您可以使用同步
.
对于显示指数增长的时间序列,可以通过对增长序列取对数来预处理数据。在某些情况下,必须应用结果的第一个差值(参见price2ret
).有关稳定时间序列的详细信息,请参见单位根非平稳.例如,请参见VAR模型案例研究.
请注意
如果应用级数的第一个差,得到的级数比原始级数短一个观测值。如果在数据集中只应用某个时间序列的第一个差值,则截断其他序列以使所有序列具有相同的长度,或者用初始值填充差值序列。
当您将时间序列模型与数据拟合时,模型中的滞后项需要初始化,通常在样本开始时进行观察。此外,为了衡量模型预测的质量,您必须在样本的末尾提供来自估计的数据。因此,在分析数据之前,将时间基划分为三个连续的、不相交的间隔:
多元向量自回归(VAR)和向量误差修正(VEC)模型的三个时间基分区是前样本、估计和预测周期。
Presample时期-包含用于初始化模型中的滞后值的数据。VAR (pVEC()和p-1)模型需要至少包含一个前样本周期p多元观察。例如,如果你计划拟合一个VAR(4)模型,条件期望值yt,考虑到它的历史,包含yt- 1,yt- 2,yt- 3,yt- 4.的条件期望值y5是y1,y2,y3.,y4.因此,的似然贡献y5需要y1- - - - - -y4,这意味着数据不存在的可能性贡献y1- - - - - -y4.在这种情况下,模型估计需要至少四个时间点的前样本周期。
估计时间-包含模型明确适合的观察结果。在估计样本中观测的数量为有效的样本大小.为了参数的可识别性,有效样本量至少应该是被估计的参数数量。
预测期—生成预测的可选周期,称为预测的时间跨度.这个分区包含用于模型可预测性验证的holdout数据。
假设yt是一个二维响应系列和xt是一个一维外生序列。考虑拟合VARX(p)模型的yt的响应数据T2矩阵Y
外生数据T1的向量x
.此外,你希望预测的地平线有长度K(也就是说,你想坚持下去K样本末尾的观察结果与拟合模型的预测结果进行比较)。这张图显示了模型估计的时基分区。
属性的输入参数对应的部分数组估计
函数。
Y
是指定模型适合的响应数据所需的输入。
Y0
是用于指定前示例响应数据的可选名称-值对参数。Y0
必须至少p行。要初始化模型,估计
只使用最新版本p观察Y0(——结束
.p
+ 1):最终,:)
X
是用于为线性回归组件指定外生数据的可选名称-值对参数。默认情况下,估计
不考虑回归系数的值,从模型中排除回归组件β
的华宇电脑
用于估计的模型模板。
如果没有指定“Y0”
,估计
删除观察1到p从Y
初始化模型,然后将模型与其余数据进行匹配Y ((
.也就是说,p
+ 1):最终,:)估计
由此推断出预样本和估计周期Y
.虽然估计
提取样品Y
默认情况下,可以从数据中提取预样例并使用Y0
名称-值对参数,它确保估计
初始化并使模型符合您的规范。
如果您指定“X”
:
估计
同步X
和Y
对于数组中的最后一个观测值(T- - - - - -K在上图中),并且只对回归组件应用所需的观测数。这个动作意味着X
可以有更多的行吗Y
.
如果你也指定“Y0”
,估计
仅使用符合模型所需的最新外生观察(观察)J+ 1到T- - - - - -K如上图所示)。估计
忽略预采样外生数据。
如果您计划验证拟合模型的预测能力,则必须在估计之前从数据集中提取预测样本。
考虑拟合VAR(4)模型的数据和变量多元经济数据,并以近两年的数据验证拟合模型的预测能力。
加载数据。创建一个包含预测器和响应变量的时间表
负载Data_USEconModelresponsenames = [“CPIAUCSL”“UNRATE”“国内生产总值”];predictorname =“全球教育运动”;TT = DataTable(:,[responsenames predictorname]);
找出时间表中包含至少一个缺失观测的所有行(南
).
whichmissing = ismissing (TT);Idxvar = sum(whichmissing) > 0;hasmissing = TT.Properties.VariableNames (idxvar)
hasmissing =1 x1单元阵列{' UNRATE '}
where emissing = find(whichmissing(:,idxvar) > 0)
wheremissing =4×11 2 3 4
失业率漏掉了样本中第一年的数据。
从数据中删除前导缺失值的观察(行)。
TT = rmmissing (TT);
rmmissing
使用列表删除从输入时间表中删除包含至少一个缺失观测的所有行。
VAR(4)模型需要4个前样本的响应,而预测样本需要2年(8个季度)的数据。将响应数据划分为预样本、估计和预测样本变量。将预测数据划分为估计和预测样本变量(样本前预测数据不考虑估计)。
p = 4;样品前观察值跳频= 8;%预测地平线T =大小(TT, 1);总样本量eT = T - p - fh;有效样本量idxpre = 1: p;idxest = (p + 1):(T - fh);idxfor = (T - fh + 1):T;Y0 = TT {idxpre, responsenames};% Presample反应YF = TT {idxfor, responsenames};预测样本响应Y = TT {idx responsenames};估计样本响应xf = TT {idxfor, predictorname};x = TT {idx predictorname};
当估计模型使用估计
,指定一个varm
模型模板代表一个VAR(4)模型和估计样本响应数据Y
作为输入。指定样本前响应数据Y0
方法初始化模型“Y0”
名称-值对参数,并指定估计样本预测器数据x
通过使用“X”
名称-值对的论点。Y
和x
同步数据集,而Y0
发生在估计样本开始之前的前四个时期。
经过估计,您可以使用预测模型预测
通过指定返回的估计的VARX(4)模型对象估计
,预测地平线跳频
,并估计样本响应数据Y
初始化预测模型。指定预测样本预测数据xf
为模型回归组件使用“X”
名称-值对的论点。通过将预测结果与预测样本响应数据进行比较,确定估计模型的预测能力YF
.