使用matlab回归像polyfit一样

时间:2013-10-13 16:04:02

标签: matlab

我有:

x = [1970:1:2000]
y = [data]

size(x) = [30,1]
size(y) = [30,1]

我想:

% Yl = kx + m, where
[k,m] = polyfit(x,y,1)

出于某种原因,我必须使用“回归”。

使用k = regress(x,y)给出一些完全随机的值,我不知道它来自哪里。怎么做?

1 个答案:

答案 0 :(得分:3)

您在“k”中获得的输出数量取决于输入X的大小,因此您只需直接输入x和y即可获得mk。来自文档:

  

b =回归(y,X)返回系数估计的p-by-1向量b,用于对X中的预测变量的y中的响应进行多线性回归.X是p个预测变量的n-by-p矩阵在每个观察结果中。 y是观察到的响应的n×1矢量。

没有明确说明,但使用carsmall内置数据集的帮助文档中的示例向您展示了如何设置它。对于您的情况,您需要:

X = [ones(size(x)) x]; % make sure this is 30 x 2
b = regress(y,X);  % y should be 30 x 1, b should be 2 x 1

b(1)应该是您的mb(2) k

regress还可以提供额外的输出,例如置信区间,残差,r平方等统计数据等。输入保持不变,您只需更改输出:

[b,bint,r,rint,stats] = regress(y,X);