多元线性回归及显著性检验Matlab程序高等教育统计学_高等教育-大学课件.pdf
多元线性回归及显著性检验Matlab程序(完美版)一、说明:1、本程序是研究生教材数理统计(杨虎、刘琼、钟波 编著)例 4.4.1(P133)的 Matlab 编程解答程序。教材上的例题只做了回归方程显著性分析和一次回归系数显著性分析(剔 除 xl 后没有再检验 x2 和 x3)o 2、本程序在以上的基础之上,还分别检验了 x2 和 x3,并且计算精度更高。3、本程序可根据用户的需要,在输入不同的显著性水平之下得到相应的解答。4、本程序移植性强,对于其他数据,只需要改变 excel 中的数据即可。5、本程序输出的可读性强,整洁美观。二、数据入下(将数据存入 excel 表格,文件名为 jc_pl33_example.xlso 注意数据是按 xl,x2,xk,y这样来列来存储。若不是 3 个变量,则相应豬减数据列就行。):2 18 50 4.3302 7 9 40 3.6485 5 14 46 4.483 12 3 43 5.5468 1 20 64 5.497 3 12 40 3.1125 3 17 64 5.1182 6 5 39 3.8759 7 8 37 4.67 0 23 55 4.9536 3 16 60 5.006 0 18 49 5.2701 8 4 50 5.3772 6 14 51 5.4849 0 21 51 4.596 3 14 51 5.6645 7 12 56 6.0795 16 0 48 3.2194 6 16 45 5.8076 0 15 52 4.7306 9 0 40 4.6805 4 6 32 3.2172 0 17 47 2.6104 9 0 44 3.7174 2 16 39 3.8946 9 6 39 2.7066 12 5 51 5.6314 6 13 41 5.8152 12 7 47 5.1302 0 24 61 5.391 5 12 37 4.4533 4 15 49 4.6569 0 20 45 4.5212 6 16 42 4.865 4 17 48 5.3566 10 4 48 4.6098 4 14 36 2.3815 5 13 36 3.8746 9 8 51 4.5919 6 13 54 5.1588 5 8 100 5.4373 5 11 44 3.996 8 6 63 4.397 2 13 55 4.0622 7 8 0 2.2905 4 10 45 4.7115 10 5 40 4.531 3 17 64 5.3637 4 15 72 6 0771 三.完整程序如下:%-by ggihhinun-%数理统计杨虎、刘琼、钟波编著例 4.4.1 多元线性回归及显著性检验完整解答%输入需要的显著水平 a(默认 a=0.02),计算出不同结果(见运彳%该程序也适合其他维数的数据分析(只需改变 excel 格中的数据即可)%-by ggihhimm-clear;clc;data=xlsread(,jc_pl33_example.xls,lsheetl,);xi=data(:,l:end-l);n/k=size(data);k=k-l;i n d ex_of_xi_a r ray=on es(l,k);X=ones(n/1)xi);Y=data(:,end);fprintff 第 1 次计算结果:r)beta-.mao=(X,*X)X,*Y),;fmt_strO=”;for i0=l:k+l fmt_strO=fmt_strO 0 num2str(i0-l)1=%0.4fr;end fprintf(fmt_strO,beta_mao)fprintfCV)教材上的例题只做了回归方程显著性分析和一次回归系数显著性分析剔除后没有再检验和本程序在以上的基础之上还分别检验了和并且计算精度更高本程序可根据用户的需要在输入不同的显著性水平之下得到相应的解答本程序移植注意数据是按这来列来存储若不是个变量则相应豬减数据列就行三完整程序如下数理统计杨虎刘琼钟波编著例多元线性回归及显著性检验完整解答输入需要的显著水平默认计算出不同结果见运彳该程序也适合其他维数的数据分析只一个大于小于的数回归方程显著性检验经过计算拒绝原假设不成立回归方程显著性检验经过计算接受原假设成立检验回归系数的显著性循环检验直到得出最后结果回归系数显著性检验分别对进行厂第次检验对的线性影响最不显著删%检验回归方程的显著性 x_ba 二 mean(xi);y_ba=mea n(Y);St_square=sum(Y.A2)-n*y_baA2;lxy=sum(xi-ones(n/l)*x_ba).*(Y-y_ba)*ones(l,k);Sr_square=sum(beta_mao(2:e nd)*lxy);Se_square=St_square-Sr_square;c_flag=Sr-square/Se_square;F_alpha=input(,iH输入您要求的显著性水平(Ov 1)u=*);while zv(isscalar(F_alpha)&F_alpha0)F_alpha=inputf 您的输入有误,请重新输入一个大于 0,小于 1 的数,=);end F_fenweidian=finv(l-F_alpha,kzn-k-l);c=k/(n-k-l)*F_fenweidian;if c_flagc fprintfdV-回归方程显著性检验(HO:P 1=P 2=.=3 k=0).-r经过计算:拒绝 HO,原假设不成立。)else fprintf(r-回归方程显著性检验(HO:P 1=P 2=.=3 k=0).-r经过计算:接受 H0,原假设成立。)end%检验回归系数的显著性(循环检验,直到 OK,得出最后结果)fprintf(rr-回归系数显著性检验(分别对 B 1、P2、Bk进行厂 -)flag_go_on=l;n um_ofjoop=0;while flag_go_on cij=inv(X*X);cii=diag(cij);F_fen weidian_l=finv(l-F_alpha,l,n-k-l);ci=sqrt(cii(2:end)*Se_square*F_fe nweidian_l/(n-k-l);format_str=,%15.4f,;forii=l:k-l format_str=format_str,%13.4f1;end fprintf(r 第d 次检验:rcii:1 format_str%13.4fr ci:.format_str、r B i:1 format_str%134flnum_of_loop+l,cii,ci,beta_mao)if/vall(abs(beta_mao(2:end)ci,)flag_go_on=l;beta_ltok=beta_mao;beta_ltok(l)=J;fi_xin=beta_ltok.A2./cii(l:end-l);min_fi=min(fi_xin);betan dex=find(fi_xin=min_fi)+l;fprintf(rx%d 对 y 的线性影响最不显著(|P%d|=%0.4f)。删除 x%d,进行第d 次计 算:.教材上的例题只做了回归方程显著性分析和一次回归系数显著性分析剔除后没有再检验和本程序在以上的基础之上还分别检验了和并且计算精度更高本程序可根据用户的需要在输入不同的显著性水平之下得到相应的解答本程序移植注意数据是按这来列来存储若不是个变量则相应豬减数据列就行三完整程序如下数理统计杨虎刘琼钟波编著例多元线性回归及显著性检验完整解答输入需要的显著水平默认计算出不同结果见运彳该程序也适合其他维数的数据分析只一个大于小于的数回归方程显著性检验经过计算拒绝原假设不成立回归方程显著性检验经过计算接受原假设成立检验回归系数的显著性循环检验直到得出最后结果回归系数显著性检验分别对进行厂第次检验对的线性影响最不显著删betan dexl+num_of_loop,beta n dex-l+num_of_loop.abs(beta_mao(beta ndex),beta ndexl+nu m_of_loopz.betandexl+num_of_loop+l.)else fmt_str2=lx%d,;in dex_of_xi 二 fi nd(in dex_of_xi_array);for i2=l:length(find(index_of_xi)-l fmt_str2=fmt_str2 x%d;end fprintf(rr 经过检验,剩余所有变量:.fmt_str2 对 y 的线性影响均显著。检验结朿。门,index_of_xi)flag_go_on=0;end if flag go on num_of_loop 二 n um_of_loop+l;k=k-l;if“k fprintf(、rr 警告:通过一一对所有变量做显著性检验,已剔除所有变量!,);break;end beta_mao=beta_mao-beta_mao(beta Jn dex)/cii(beta Jndex)*cij(beta _in dex,:);beta_mao(beta _index)=;fmt_strl=;for il=2:k+l fmt_strl=fmt_strl P num2str(il-l+num_ofjoop)1=%0.4fr;end fprintf(rpO=%0.4fr fmt_strl,beta_mao)X(:,betandex)=;i n dex_of_xi_a r ray(beta n dex-l+num_ofjoop-l)=0;xi=X(:z2:end);x_ba=mea n(xi);lxy=sum(xi-ones(nzl)*x_ba).*(Y-y_ba)*ones(l,k);Sr_square=sum(beta_mao(2:e nd)*lxy);Se_square=St_square-Sr_square;end end 四、运行结果如下(分别为 a=001 和 a=0.02 的运行结果入 第 1 次计算结果:30=0.7344 教材上的例题只做了回归方程显著性分析和一次回归系数显著性分析剔除后没有再检验和本程序在以上的基础之上还分别检验了和并且计算精度更高本程序可根据用户的需要在输入不同的显著性水平之下得到相应的解答本程序移植注意数据是按这来列来存储若不是个变量则相应豬减数据列就行三完整程序如下数理统计杨虎刘琼钟波编著例多元线性回归及显著性检验完整解答输入需要的显著水平默认计算出不同结果见运彳该程序也适合其他维数的数据分析只一个大于小于的数回归方程显著性检验经过计算拒绝原假设不成立回归方程显著性检验经过计算接受原假设成立检验回归系数的显著性循环检验直到得出最后结果回归系数显著性检验分别对进行厂第次检验对的线性影响最不显著删P 1=0.1585 3 2=0.1063 B 3 二 0.0357 i输入您要求的显著性水平(0v a 1)=0.01 -a=0.0100-回归方程显著性检验(HO:Pl=P2=.=3k=O)-经过计算:拒绝 H0,原假设不成立。-回归系数显著性检验(分别对 B仁 32、八 Bk进行)-第 1 次检验:cii:1.1355 0.0055 0.0021 0.0002 ci:0.1622 0.1006 0.0284 Pi:0.7344 0.1585 0.1063 0.0357 xl 对 y 的线性影响最不显著(|B1|二 0.1585 九删除 xl,进行第 2 次计算:B 0 二 2.5302 32=0.0231 P3=0.0362 第 2 次检验:-回归方程显著性检验(HO:31=P2=.=3k=0)-cii:0.4274 ci:B i:2.5302 0.0006 0.0002 0.0569 0.0302 0.0231 0.0362 x2 对 y 的线性影响最不显著(|B2|=0023i)。删除 x2,进行第 3 次计算:30=2.6615 P3=0.0391 第 3 次检验:cii:0.4079 0.0002 ci:0.0294 Pi:2.6615 0.0391 经过检验,剩余所有变量:x3 对 y 的线性影响均显著。检验结束。第 1 次汁算结果:B 0=0.7344 P 1=0.1585 3 2=0.1063 33=0.0357 请输入您要求的显著性水平(0 a 1)a=0.02 -a=0.0200-教材上的例题只做了回归方程显著性分析和一次回归系数显著性分析剔除后没有再检验和本程序在以上的基础之上还分别检验了和并且计算精度更高本程序可根据用户的需要在输入不同的显著性水平之下得到相应的解答本程序移植注意数据是按这来列来存储若不是个变量则相应豬减数据列就行三完整程序如下数理统计杨虎刘琼钟波编著例多元线性回归及显著性检验完整解答输入需要的显著水平默认计算出不同结果见运彳该程序也适合其他维数的数据分析只一个大于小于的数回归方程显著性检验经过计算拒绝原假设不成立回归方程显著性检验经过计算接受原假设成立检验回归系数的显著性循环检验直到得出最后结果回归系数显著性检验分别对进行厂第次检验对的线性影响最不显著删经过计算:拒绝 H0,原假设不成立。-回归系数显著性检验(分别对 Bl、P2、八 Bk进行)-第 1 次检验:cii:1.1355 0.0055 0.0021 0.0002 ci:0.1455 0.0902 0.0255 Bi:0.7344 0.1585 0.1063 0.0357 经过检验,剩余所有变 M:X1.x2、x3 对 y 的线性影响均显著。检验结朿。教材上的例题只做了回归方程显著性分析和一次回归系数显著性分析剔除后没有再检验和本程序在以上的基础之上还分别检验了和并且计算精度更高本程序可根据用户的需要在输入不同的显著性水平之下得到相应的解答本程序移植注意数据是按这来列来存储若不是个变量则相应豬减数据列就行三完整程序如下数理统计杨虎刘琼钟波编著例多元线性回归及显著性检验完整解答输入需要的显著水平默认计算出不同结果见运彳该程序也适合其他维数的数据分析只一个大于小于的数回归方程显著性检验经过计算拒绝原假设不成立回归方程显著性检验经过计算接受原假设成立检验回归系数的显著性循环检验直到得出最后结果回归系数显著性检验分别对进行厂第次检验对的线性影响最不显著删