多元线性回归及显著性检验 Matlab 程序(完美版)一、说明:1、本程序是研究生教材《数理统计》(杨虎、刘琼、钟波编著)例(P133)的 Matlab 编程解答程序。教材上的例题只做了回归方程显著性分析和一次回归系数显著性分析(剔除 x1 后没有再检验 x2 和 x3)。2、本程序在以上的基础之上,还分别检验了 x2 和 x3,并且计算精度更高。3、本程序可根据用户的需要,在输入不同的显著性水平 a 之下得到相应的解答。4、本程序移植性强,对于其他数据,只需要改变 excel 中的数据即可。5、本程序输出的可读性强,整洁美观。二、数据入下(将数据存入 excel 表格,文件名为。注意数据是按 x1,x2,…,xk,y 这样来列来存储。若不是 3 个变量,则相应增减数据列就行。):218507940514461234312064312403176465397837023553166001849845061451021513145171256160486164501552904046320174790442163996391255161341127470246151237415490204561642417481044841436513369851613545810051144866321355785041045105403176441572三、完整程序如下:%byggihhimm%《数理统计》杨虎、刘琼、钟波编著例多元线性回归及显著性检验完整解答%输入需要的显著水平 a(默认 a=),计算出不同结果(见运行结果)%该程序也适合其他维数的数据分析(只需改变 excel 表格中的数据即可)%byggihhimmclear;clc;data=xlsread('','sheet1');xi=data(:,1:end-1);[n,k]=size(data);k=k-1;index_of_xi_array=ones(1,k);X=[ones(n,1)xi];Y=data(:,end);fprintf('第 1 次计算结果:\r')beta_mao=((X'*X)\X'*Y)';fmt_str0='';fori0=1:k+1fmt_strO 二[fmt_strO'B'num2str(iO-l)'二%\r'];endfprintf(fmt_str0,beta_mao)fprintf('\r')%%检验回归方程的显著性x_ba=mean(xi);y_ba=mean(Y);St_square 二 sum(Y."2)-n*y_ba"2;lxy=sum((xi-ones(n,1)*x_ba).*((Y-y_ba)*ones(1,k)));Sr_square=sum(beta_mao(2:end).*lxy);Se_square=St_square-Sr_square;c_flag=Sr_square/Se_square;F_alpha 二 input('〉〉〉〉〉〉请输入您要求的显著性水平(O〈a〈l)a 二’);while~(isscalar(F_alpha)&&F_alpha<1&&F_alpha>0)F_alpha=input('您的输入有误,请重新输入一个大于 0,小于 1 的数,a=');endF_fenweidian=finv(1-F_alpha,k,n-k-1);c=k/(n-k-1)*F_fenweidian;ifc_flag〉cfprintf(['\r 回归方程显著性检验(H0:B1=B2 二...二 Bk=0)'\r 经过计算:拒绝 H0,原假设...