一元线性回归分析的R语言实现(RStudio)

您所在的位置:网站首页 一元回归分析的步骤 一元线性回归分析的R语言实现(RStudio)

一元线性回归分析的R语言实现(RStudio)

2024-07-11 03:38| 来源: 网络整理| 查看: 265

简介

回归分析是一种应用广泛的数理统计方法,它是研究变量与变量之间的相关关系,这种关系大致分为两类:确定性关系(能用函数精确描述)和非确定性关系(不能用函数描述)。

变量间的非确定性关系称为相关关系。

在回归分析中的相关关系主要分为两类:一类是随机变量之间的相关关系,另一类是随机变量和普通变量间的相关关系,本文只研究后一类。

随机变量称为因变量或响应变量,只能观测但不能控制;普通变量称为自变量或解释变量或预报变量或设计变量,是可控变量,根据需要预先确定。

本文只研究一个因变量一个自变量之间的线性关系,即为一元线性回归分析。

回归分析的主要任务是通过样本来估计回归函数y_hate(x),并利用此估计进行预测和控制。

实例

为研究温度x对于某个化学过程生产量y的影响,收集到的数据如表所示:

x-5 ,-4,-3,-2,-1,0,1,2,3,4,5y1,5,4,7,10,8,9,13,14,13,18

对上数据进行回归分析。

打散点图

首先我们要把数据的散点图打出来,看看数据的大体分布,这对我们下面的模型建立很重要! 首先建立数组x和数组y来容纳数据然后使用plot函数绘制散点图

x=c(-5,-4,-3,-2,-1,0,1,2,3,4,5) y=c(1,5,4,7,10,8,9,13,14,13,18) plot(x,y)

结果如图示: 在这里插入图片描述 能够看出,自变量x和响应变量y之间具有明显的线性关系,即有y=a+bx,我们下面建立线性回归分析模型。

线性回归模型建立

使用函数lm()建立回归分析模型,公式y~1+x代表用x和常数去拟合y,1代表常数,x代表自变量x的一次项,要是有x的N次项,其形式为“I(x^N)”(其中I是大写的i),不能直接写括号内的公式!!!将回归模型命名为test。

x=c(-5,-4,-3,-2,-1,0,1,2,3,4,5) y=c(1,5,4,7,10,8,9,13,14,13,18) plot(x,y) test=lm(y~1+x) test

其结果如下:

Call: lm(formula = y ~ 1 + x) Coefficients: (Intercept) x 9.273 1.436

即系数a的估计值为9.273,系数b的估计值为1.436

使用abline()函数绘制回归直线

abline(test)

得到 在这里插入图片描述 可以看出直线对点的拟合效果不错。

检验

数学的东西是不能只用眼睛去看的,我们还要用数学工具去检验我们得到的模型是否正确

方差检验:回归的显著性检验,衡量方程是否建立准确,也就是衡量本例究竟是不是一元线性回归模型。(F检验)

anova(test)

结果为

Analysis of Variance Table Response: y Df Sum Sq Mean SqF F value Pr(>F) x 1 226.945 226.94 96.18 4.207e-06 *** Residuals 9 21.236 2.36 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

x:回归平方和(SSE) Residuals:残差平方和(SSR) Df:自由度 Sum Sq:(sum of squares)方差总和 Mean Sq:(mean of squares)平均方差,即方差总和除以对应自由度 F value:F检验的值 Pr(>F):F检验的P值,当P值小于显著性水平α的时候,模型效果显著 ”***":代表模型效果非常显著,在“Signif. codes”中给出了解释

回归系数检验:衡量方程系数是否可靠(t检验)

summary(test)

结果为

Call: lm(formula = y ~ 1 + x) Residuals: Min 1Q Median 3Q Max -2.0182 -1.1818 0.4182 1.1636 2.1636 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 9.2727 0.4632 20.021 9.00e-09 *** x 1.4364 0.1465 9.807 4.21e-06 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 1.536 on 9 degrees of freedom Multiple R-squared: 0.9144, Adjusted R-squared: 0.9049 F-statistic: 96.18 on 1 and 9 DF, p-value: 4.207e-06

Residuals:为残差水平的五数概括,通过它我们可以了解残差的大概水平。 (Intercept):估计值a,即估计截距 x :估计值b,即估计斜率 Estimate:估计值 Std. Error:(standard error)估计的标准差的估计 t value:检验统计量t的值 Pr(>|t|):检验的P值,当P值小于显著性水平α的时候,模型效果显著 ”***":代表模型效果非常显著,在“Signif. codes”中给出了解释 Residual standard error: 1.536 on 9 degrees of freedom:9自由度的残差标准差是1.536 Multiple R-squared:拟合优度,结果越接近于1,x和y的线性相关度越大;越接近于0,x和y的线性相关度越小。必须指出的是,当拟合优度为0时候只能说明x和y不是线性关系,但是x和y还可能是其他类型的相关关系

回归系数的置信区间:使用confint()求得截距a和斜率b估计值的置信区间,默认为95%的置信度

confint(test)

结果为

2.5 % 97.5 % (Intercept) 8.225007 10.320447 x 1.105045 1.767682

即a的95%的置信区间为[8.225007, 10.320447] b的95%的置信区间为[1.105045 , 1.767682]

预测

使用predict()函数进行预测。

其中pre表示要预测的点,这里必须以data.frame的形式输入,predict函数才能计算; interval="prediction"表示给出对应的预测区间 参数level=0.95表示显著性水平。

pre=data.frame(x=0.2) test.pre=predict(test,pre,interval="prediction",level=0.95) test.pre

结果为

fit lwr upr 1 9.56 5.929986 13.19001

即当x=0.2时,y的预测值是9.56 在95%置信度下的y的置信区间是[5.929986, 13.19001]

需要说明的是,一元线性回归在做预测的时候,预测点的位置越近于样本点均值,预测的结果越准确,离样本点均值越远,预测的结果越不可信。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3