利用R软件进行回归分析
R软件进行回归分析,运行相应代码后,可以自动计算出线性或者非线性模型,并检验模型中各个参数的显著性。得出模型结果后,还可以利用predict()函数求出预测值和预测区间。plot()函数可以帮助我们绘制出拟合图。
操作方法
- 01
打开R软件,文件>新建脚本程序,输入需要进行回归分析的数据。 首先绘制出散点图,观察二者的关系是线性的或者非线性的,以建立合适的回归模型。 程序代码: #输入数据 x=c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24) y=c(276,277,283,294,308,330,355,387,422,461,507,558,613,675,741,811,886,966,1053,1142,1239,1340,1445,1556) #绘制散点图 plot(x,y,col=1:7) 其中plot为绘图命令,col表示散点的颜色。 运行后得到下图。
- 02
从图形可知,y与x成非线性关系,图形比较契合二次曲线,建立回归模型y=a+b*x+c*(x^2) 计算回归参数: #回归分析 test=lm(y~1+x+I(x^2)) test 其中lm表示建立模型,其中的公式y=1+x+I(x^2),1表示常数项,I(x^2)表示x的平方项,注意这里合起来是相当于组成另外一个变量,单独x^2不能得到预想的结果。 运行得到参数,模型为: y= 280.944-6.909*x +2.501*(x^2)
- 03
查看显著性检验结果。 运行代码summary(test) 表示提取模型的计算结果。 该结果中,call显示出模型公式,residuals显示出残差的四分位数值,estimate这一列反映了模型的参数估计值,std.Error为标准差,Pr(>|t|)这一列位计算的P值,最下面是解释。可以看出该模型的每个参数的P值的显著性标记均为“***”,表示极为显著。该模型通过回归检验。
- 04
利用predict()函数求该回归模型的预测值和预测区间。 程序代码为: #预测 pred=data.frame(x=25) test.pred=predict(test,pred,interval="prediction",level=0.95) test.pred 其中pred表示要预测的点,这里必须以数据框的形式输入,predict函数才能计算;interval="prediction"表示给出对应的预测区间,参数level=0.95表示显著性水平。由此得到的预测结果为:Y'=1671.368 ,区间[1669.628,1673.109]。
- 05
计算全部拟合值,并绘制拟合曲线图。 #计算全部拟合值 nihe=predict(test) #曲线拟合图 plot(x,y,col=1:7) lines(nihe) 其中predict计算出全部拟合值。在绘制曲线命令lines()之前,需要先用plot()绘制出散点图。 从图中可以看出,拟合效果非常好。
- 06
在实际数据分析中,还会涉及多元线性回归方程、非线性回归模型等。可以使用命令lm(y~X1+X2+X3+I(X3^2)).....等等建立合适的模型,以得到更好的拟合效果。