您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 用R语言进行简单线性回归分析,数据出自何晓群
用R语言进行简单线性回归分析,数据出自何晓群--应用回归分析,语言如下所示:xy3.426.21.817.84.631.32.323.13.127.55.5360.714.1322.32.619.64.331.32.1241.117.36.143.24.836.43.826.1#-------------------------------------------------------------#数据准备fire-read.table('D:/fire.txt',head=T)#-------------------------------------------------------------#回归分析plot(fire$y~fire$x)fire.reg-lm(fire$y~fire$x,data=fire)#回归拟合summary(fire.reg)#回归分析表anova(fire.reg)#方差分析表abline(fire.reg,col=2,lty=2)#拟合直线#-------------------------------------------------------------#残差分析fire.res-residuals(fire.reg)#残差fire.sre-rstandard(fire.reg)#学生化残差plot(fire.sre)abline(h=0)text(11,fire.sre[11],label=11,adj=(-0.3),col=2)#标注点#-------------------------------------------------------------#预测与控制attach(fire)#连接fire.reg-lm(y~x)#这种回归拟合简单fire.points-data.frame(x=c(3.5,4))fire.pred-predict(fire.reg,fire.points,interval='prediction',level=0.95)#预测:置信区间fire.preddetach(fire)#取消连接--------------------------------------------------------------------------------------------------#附自编的过程程序:(R最大的好处是可以自己编想要的程序和函数,尤其没有内置函数的时候)fire-read.table('D:/fire.txt',head=T)attach(fire)--------------------------------------------lxy-function(x){sum-0sum0-0for(iin1:length(x)){sum0-(x[i]-mean(x))*(y[i]-mean(y))sum-sum+sum0}sum}---------------------------------------------------------------------------------#用这个就不需要循环了lxy-function(x){mid-(x-mean(x))*(y-mean(y))sum-sum(mid)sum}#对于数据框、列表等数据对象要善用apply()函数。---------------------------------------------------------------------------------lxx-function(x){sum-0sum0-0for(iin1:length(x)){sum0-(x[i]-mean(x))^2sum-sum+sum0}sum}Lxx-lxx(x)Lyy-lxx(y)Lxy-lxy(x)b1-Lxy/Lxx;b1#回归系数斜率b0-mean(y)-b1*mean(x);b0#回归系数截距residu-y-(b0+b1*x);residu#残差r-Lxy/sqrt(Lxx*Lyy);r#相关系数rsqure-r^2;rsqure#决定系数adrsqure-1-((length(x)-1)/(length(x)-2))*(1-r^2)#调整后的决定系数----------------------------------------------------------------------------------esrequre-function(x){#求标准差平方估计值sum-0sum0-0for(iin1:length(x)){sum0-residu[i]^2sum-sum+sum0}residusqure-sum/(length(x)-2)residusqure}esterreq-esrequre(x);esterreq#标准差平方估计值(MSE)ester-sqrt(esrequre(x));ester#标准差估计值(回归分析表给出的标准误差)val_t-b1*sqrt(Lxx)/ester;val_t#检验回归系数斜率b1的t值SSe-function(x){#求残差平方和sum-0sum0-0for(iin1:length(x)){sum0-residu[i]^2sum-sum+sum0}sum}SSE-SSe(x);SSE#残差平方和MSE-SSE/(length(x)-2);MSE#残差均方和SSr-function(x){sum-0sum0-0for(iin1:length(x)){sum0-((b0+b1*x[i])-mean(y))^2sum-sum+sum0}sum}SSR-SSr(x);SSR#回归平方和MSR-SSR/1;MSR#回归均方和val_F-SSR/MSE;val_F#检验回归方程F值hi-1/length(x)+(x-mean(x))^2/Lxx#杠杆值ZRE-residu/ester;ZRE#标准化残差SRE-residu/(ester*sqrt(1-hi));SRE#学生化残差Y-function(x){b0+b1*x}#点估计Y(3.5)
本文标题:用R语言进行简单线性回归分析,数据出自何晓群
链接地址:https://www.777doc.com/doc-2202551 .html