楼主: bb556
5739 1

[问答] 基于Matlab的线性回归函数 [推广有奖]

  • 1关注
  • 0粉丝

大专生

43%

还不是VIP/贵宾

-

威望
0
论坛币
35 个
通用积分
0.0600
学术水平
1 点
热心指数
2 点
信用等级
1 点
经验
2086 点
帖子
48
精华
0
在线时间
45 小时
注册时间
2011-8-12
最后登录
2012-7-10

楼主
bb556 发表于 2011-10-27 23:03:41 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
本人参考《MATLAB语言常用算法程序集》中关于 线性回归 的代码,写了一个小函数,但是有一部分自己不会编了,向大神求助

先上代码:


%%%%%%%%%%


function

[RegCoff,TSS,ESS,RSS,R2,R21,R0,F,FX,tX]=fun(X,Y)


%自变量矩阵:X


%因变量矩阵:Y


%线性回归系数:RegCoff


%可决系数:R2


%修正的可决系数:R21


%复相关系数:R


%方程显著性检验F值:F


%各因子显著性检验F值:FX


%各因子显著性检验t值:tX


format long;


n = size(X,1);


k = size(X,2);


RegCoff = zeros(k+1,1);%回归系数


Z = mean(X);


yp = mean(Y);


A = transpose(X)*X-n*transpose(Z)*Z;


C = transpose(X)*Y-n*transpose(Z)*yp;


RegCoff(2:k+1) = A\C;


RegCoff(1) = yp-Z*RegCoff(2:k+1);%回归系数的常数项


%显著性检验


TSS = norm(Y)^2-n*yp^2;%总离差平方和 TSS


YR = X*RegCoff(2:k+1) + RegCoff(1)*ones(n,1);


ESS = transpose(RegCoff(2:k+1))*C;%回归平方和 ESS


RSS = TSS-ESS;%剩余平方和 RSS


R2 = ESS/TSS;


R21 = 1-(1-R2)*((n-1)/(n-k-1));


R0 = sqrt(R2);


UR = ESS/(length(RegCoff)-1);


QR = RSS/(n-length(RegCoff));


s = sqrt(QR);


inA = inv(A);


F = UR/QR;


for i=1:length(RegCoff)-1%各因子显著性检验


    FX(i)=RegCoff(i+1)^2/inA(i,i)/QR;


    tX(i)=RegCoff(i+1)/sqrt(inA(i,i))/s;


end


format short;


%%%%%%%%%%



FX(i)、tX(i)只能检验各因子显著性,本人还想编出回归方程常数项显著性的F检验、t检验的代码,但是尝试了没有成功。


同时用regress也没有试成功。


在这里向大神求助,先谢谢大神!拜谢!!!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB matla atlab 线性回归 Lab function 因变量 自变量 程序

已有 1 人评分经验 收起 理由
liuxin9023 + 100 鼓励积极发帖讨论

总评分: 经验 + 100   查看全部评分

沙发
liuxin9023 发表于 2011-10-28 15:17:44
简单点哈 比如说X是自变量 Y是因变量

betas = inv(X' * X) * X' * Y;
residuals = Y - X * betas;
RSquare = 1 - sumsq(residuals) / sumsq(Y);
其他的根据算法算哈

不过楼主写的很清晰 赞下

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-6 14:14