全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
5689 1
2011-10-27
本人参考《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也没有试成功。


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


二维码

扫码加我 拉你入群

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

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

全部回复
2011-10-28 15:17:44
简单点哈 比如说X是自变量 Y是因变量

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

不过楼主写的很清晰 赞下
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群