MATLAB求回归系数

%读入人口数据(1971-2000)Y=[3381533981340043416534212343273434434458344983447634483344883451... %读入人口数据(1971-2000)
Y=[33815 33981 34004 34165 34212 34327 34344 34458 34498 34476 34483 34488 34513 34497 34511 34520 34507 34509 34521 34513 34515 34517 34519 34519 34521 34521 34535 34525 34525 34527]
%读入时间变量数据(t=年份-1970)
T=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30]
%线性化处理
for t=1:30,
x(t)=exp(-t);
y(t)=1/Y(t);
end
%计算,并输出回归系数B
c=zeros(30,1)+1;
X=[c,x'];
B=inv(X'*X)*X'*y'
for i=1:30,
%计算回归拟合值
z(i)=B(1,1)+B(2,1)*x(i);
%计算离差
s(i)=y(i)-sum(y)/30;
%计算误差
w(i)=z(i)-y(i);
end
%计算离差平方和S
S=s*s';
% 回归误差平方和Q
Q=w*w';
%计算回归平方和U
U=S-Q;
%计算,并输出F检查值
F=28*U/Q
%计算非线性回归模型的拟合值
for j=1:30,
Y(j)=1/(B(1,1)+B(2,1)*exp(-j));
end
%输出非线性回归模型的拟合曲线(Logisic曲线)
plot(T,Y)
请问
X=[c,x'];
B=inv(X'*X)*X'*y'
X为什么这么做
B写成数学表达式是什么样的?看不太懂.....
展开
 我来答
jimtien
2014-04-24 · TA获得超过7654个赞
知道大有可为答主
回答量:2146
采纳率:88%
帮助的人:1120万
展开全部

矩阵形式的最小二乘法回归系数公式是这样的:

这个公式是书上来的.


X矩阵第一列必须是1, X=[c,x']就是为了构成这个矩阵


你的代码中y是写成nx1的矩阵,而公式中是1xn矩阵,所以B=inv(X'*X)*X'*y'中的y 多了一个转置y'

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式