mvregress返回什么?

时间:2015-06-20 21:50:02

标签: matlab regression

考虑以下.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

有人可以告诉我做错了吗?

1 个答案:

答案 0 :(得分:0)

请注意,在Matlab中,size是一个内置函数,因此您不应将其用作整数...

似乎没有错。我们没有看到xy,所以我认为它们是列。

根据mvregress文档,beta的大小为3,因为XX有3列。

  

如果将X指定为单个n×K设计矩阵,则mvregress返回beta作为长度K的列向量。例如,如果X是20×5设计矩阵,则beta是5 -by-1列向量。

我不确定您的x数据,但是您写XX的方式似乎没有常数项(您称为a)。如果要计算常数项,可以在矩阵XX的左侧添加一列。

XX = [ones(size, 1) x_0 x_s1 x_s2];

测试版的大小应为4,结果应类似于:

beta =

    xxxxxx  % this is a
    0.0851  % b1
   -0.0946  % b2
    0.0102  % b3