使用R语言进行一元回归

使用R语言进行一元回归

我们通过一个例子来介绍通过R语言进行一元回归的方法

例子: 为研究某实验过程中,温度x(℃)对产品得率(%)的影响,测得数据如下:

温度x(℃)100110120130140150160170180190
得率Y(%)45515461667074788589

说明:该例子来自盛骤等老师编写的第四版概率论与数理统计书籍

首先,我们把x,Y数值之间的联系先用散点图描绘出来:

p = c(100,110,120,130,140,150,160,170,180,190)
q = c(45,51,54,61,66,70,74,78,85,89)

plot(p,q,type="p",col="blue",xlab="x",ylab="Y")

运行结果:
散点图

从上面散点图我们可以看出,x与Y之间的相关性很强,近似一种线性关系。一元回归的目的就是拟合出一条回归直线,使得散点图上的每一点与这条直线的纵向距离最短。通过拟合出的回归直线,可以用于预测。
设: Y = a + b x + ε , ε   N ( 0 , σ 2 ) Y=a+bx+ε,ε~N(0,σ^2) Y=a+bx+εε N(0,σ2)
对参数a,b进行估计:
其中:

b ^ = ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) ∑ i = 1 n ( x i − x ˉ ) 2 \hat{b}=\dfrac{\sum_{i=1}^{n} (x_i-\bar{x})(y_i-\bar{y})}{\sum_{i=1}^n (x_i-\bar{x})^2} b^=i=1n(xixˉ)2i=1n(xixˉ)(yiyˉ)
a ^ = y ˉ − b ^ x ˉ \hat{a}=\bar{y}-\hat{b} \bar{x} a^=yˉb^xˉ

y = a ^ + b ^ x ˉ y=\hat{a}+ \hat{b} \bar{x} y=a^+b^xˉ即为Y关于x的回归方程。

现在,我们使用R语言来求参数a和b
方法一:

p = c(100,110,120,130,140,150,160,170,180,190)
q = c(45,51,54,61,66,70,74,78,85,89)

plot(p,q,type="p",col="blue",xlab="x",ylab="Y")

lxy<-function(x,y){n=length(x);sum(x*y)-sum(x)*sum(y)/n}  #自定义函数
b = lxy(p,q)/lxy(p,p)
a = mean(q)-b*mean(p)
print(b)
print(a)
lines(p,a+b*p)

运行结果:

[1] 0.4830303
[1] -2.739394

函数图像:
这里写图片描述
即:回归方程为 Y = − 2.739394 + 0.4830303 ∗ x Y=-2.739394+0.4830303*x Y=2.739394+0.4830303x

方法二:(简单,推荐)

p = c(100,110,120,130,140,150,160,170,180,190)
q = c(45,51,54,61,66,70,74,78,85,89)

r=lm(q~1+p)
print(summary(r))

运行结果:

Call:
lm(formula = q ~ 1 + p)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.3758 -0.5591  0.1242  0.7470  1.1152 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -2.73939    1.54650  -1.771    0.114    
p            0.48303    0.01046  46.169 5.35e-11 ***
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9503 on 8 degrees of freedom
Multiple R-squared:  0.9963,	Adjusted R-squared:  0.9958 
F-statistic:  2132 on 1 and 8 DF,  p-value: 5.353e-11

R中提供了lm( )函数来进行回归分析,使用summary( )可以得到回归结果的所有参数。其中,p后面的三个星号***表示参数的估计是很显著的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值