考虑以下.m代码
x_0 = x(start:start+size);
x_s1 = x(start-2:start+size-2);
x_s2 = x(start-4:start+size-4);
y_0 = y(start:start+size);
XX = [x_0 x_s1 x_s2];
beta = mvregress(XX,y_0); 在那之后beta是..。
beta =
0.0851
-0.0946
0.0102但我假设它是一列大小为4的列,因为回归类似于y_t = a + b_1 * x1_t + b_2 * x2_t + b_3 * x3_t。所以我没有得到a。
谁能告诉我哪里做错了?
发布于 2018-11-22 22:55:11
请注意,在Matlab语言中,size是一个内置函数,因此您不应将其用作整数...
看起来没什么问题。我们看不到x和y,所以我假设它们是列。
根据mvregress文档,beta的大小将为3,因为XX有3列。
如果将X指定为单个n×K设计矩阵,则mvregress将返回长度为K的列向量。例如,如果X是20 x 5的设计矩阵,则beta是5 x 1的列向量。
我不确定您的x数据,但从您编写XX的方式来看,似乎没有恒定的术语(即您所说的a)。如果你想计算一个常量项,你可以在矩阵XX的左边添加一列1。
XX = [ones(size, 1) x_0 x_s1 x_s2];Beta的大小应该是4,结果应该如下所示:
beta =
xxxxxx % this is a
0.0851 % b1
-0.0946 % b2
0.0102 % b3https://stackoverflow.com/questions/30959229
复制相似问题