利用R软件进行回归分析
的有关信息介绍如下:R软件进行回归分析,运行相应代码后,可以自动计算出线性或者非线性模型,并检验模型中各个参数的显著性。得出模型结果后,还可以利用predict()函数求出预测值和预测区间。plot()函数可以帮助我们绘制出拟合图。
打开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表示散点的颜色。
运行后得到下图。
从图形可知,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)
查看显著性检验结果。
运行代码summary(test)
表示提取模型的计算结果。
该结果中,call显示出模型公式,residuals显示出残差的四分位数值,estimate这一列反映了模型的参数估计值,std.Error为标准差,Pr(>|t|)这一列位计算的P值,最下面是解释。可以看出该模型的每个参数的P值的显著性标记均为“***”,表示极为显著。该模型通过回归检验。
利用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]。
计算全部拟合值,并绘制拟合曲线图。
#计算全部拟合值
nihe=predict(test)
#曲线拟合图
plot(x,y,col=1:7)
lines(nihe)
其中predict计算出全部拟合值。在绘制曲线命令lines()之前,需要先用plot()绘制出散点图。
从图中可以看出,拟合效果非常好。
在实际数据分析中,还会涉及多元线性回归方程、非线性回归模型等。可以使用命令lm(y~X1+X2+X3+I(X3^2)).....等等建立合适的模型,以得到更好的拟合效果。