R语言之一元线性回归xt2.15

源代码&数据集下载地址:https://download.csdn.net/download/princessyang/12940938

第2章 一元线性回归

xt2.15 一家保险公司十分关心其总公司营业部加班的程度,决定认真调查一下现状,经过10周时间,收集了每周加班时间的数据和签发的新保单数目,x为每周签发的新保单数目,y为每周加班时间(小时),数据见表2-7.
R语言之一元线性回归xt2.15_第1张图片

(1)画散点图。
(2)X与y之间是否大致呈线性关系。
(3)用最小二乘法估计求出回归方程。
(4)求回归标准误差。
(5)给出β0^ 和β1^ 的置信度为95%的区间估计。
(6)计算x与y的决定系数。
(7)对回归方程做方差分析。
(8)做回归系数β1^ 的显著性检验。
(9)做相关系数的显著性检验。
(10)对回归方程做残差图并做相应的分析。
(11)该公司预计下一周签发新保单x0=1000张,需要的加班时间是多少?
(12)给出y0的置信度为95%的精确预测区间和近似预测区间。
(13)给出E(y0)的置信度为95%的区间估计。



△解法一:手工计算

(1)画散点图
R语言之一元线性回归xt2.15_第2张图片

(2)X与Y是否大致呈线性关系?
答:由散点图可以看出, x与y之间大致呈线性关系。

(3)用最小二乘法估计求出回归方程。
计算表
R语言之一元线性回归xt2.15_第3张图片

(4)求回归标准误差
(5)给出β0^ 和β1^ 的置信度为95%的区间估计。
R语言之一元线性回归xt2.15_第4张图片

(6)计算x与y的决定系数。
(7)对回归方程做方差分析。
(8)做回归系数β1^ 的显著性检验。
R语言之一元线性回归xt2.15_第5张图片

(9) 做相关系数R的显著性检验
R语言之一元线性回归xt2.15_第6张图片

(10)对回归方程作残差图并作相应的分析
R语言之一元线性回归xt2.15_第7张图片

从残差图上看出,残差是围绕e=0随即波动,满足模型的基本假设ei~N(0, 2 )。

(11)该公司预计下一周签发新保单X0=1000张,需要的加班时间是多少?
(12)给出y0的置信度为95%的精确预测区间和近似预测区间。
(13)给出E(y0)的置信度为95%的区间估计。
E(y0)的预测区间
R语言之一元线性回归xt2.15_第8张图片



△解法二:R语言编程

# (1)绘制散点图----
data2.15 <- read.csv('D:/rwork/应用回归/习题数据/表2-7.csv',head=TRUE)
attach(data2.15) #将该数据框添加到R的搜索路径中,以便于下面直接调用x和y
plot(x,y,main='散点图',xlab='每周签发的新保单数目',ylab='每周加班时间(小时)')

# (2)从散点图看,x与y之间大致呈线性关系----
##求均值与回归变量lxx,lyy,lxy
meanx<-mean(x)
meany<-mean(y)
lxx<-sum((x-meanx)^2)
lyy<-sum((y-meany)^2)
lxy<-sum((x-meanx)*(y-meany))
#回归系数估计
beta_1<-lxy/lxx              # beta_1
beta_0<-meany-beta_1*meanx   # beta_0
screen(2)
plot(x,y,pch=16)
points(x,beta_0+beta_1*x,type="l")
title(main="回归图")

# (3)回归方程Y^=beta0+beta1*X=-1+7X----
# 法一:
meanx <- mean(x)
meany <- mean(y)
Lxx <- sum((x-meanx)^2)
Lyy <- sum((y-meany)^2)
Lxy <- sum((x-meanx)*(y-meany))
beta1 <- Lxy/Lxx
beta1
beta0 <- meany-meanx*beta1
beta0
y_hat <- beta0+beta1*x #回归方程Y^=0.12+0.0036X

# 法二:summary函数
lm2.15 <- lm(y~x) #以y为因变量,x为自变量建立回归方程,并将结果赋值给lm2.15
summary(lm2.15)

# (4)回归标准误差sigma_hat^2=SSE/(n-2)=0.48----
n <- length(x)
SST <- Lyy #Lyy <- sum((y-meany)^2)
SSR <- sum((y_hat-meany)^2)
SSE <- sum((y-y_hat)^2)
sigma_hat <- sqrt(SSE/(n-2))
sigma_hat

# (5)给出beta0与beta1置信度为95%的区间估计----
# 法一:
alpha <- 0.05
sd.beta1 <- sqrt(sigma_hat^2/Lxx)
beta1_L <- beta1-qt(1-alpha/2,n-2)*sd.beta1 #beta1的置信下限
beta1_U <- beta1+qt(1-alpha/2,n-2)*sd.beta1 #beta1的置信上限
# beta1的预测区间为(0.003,0.005)
sd.beta0 <- sqrt((1/n+meanx^2/Lxx)*sigma_hat^2)
beta0_L <- beta0-qt(1-alpha/2,n-2)*sd.beta0 #beta0的置信下限
beta0_U <- beta0+qt(1-alpha/2,n-2)*sd.beta0 #beta0的置信上限
# beta0的预测区间为(-0.701,0.937),beta0的置信区间包含0,表示beta0不拒绝为零的假设。
# 法二:confint函数
confint(lm2.15)

# (6)x与y的决定系数R^2=SSR/SST,(注意,相关系数r=Lxy/sqrt(Lxx*Lyy),值r=R)----
R_2 <- SSR/SST
R_2 # R^2=0.9004924接近1,说明回归方程拟合度高
# 决定系数为r^2=0.90,调整后r^2=0.89

# (7)对回归方程做方差分析----
# 法一:
F <- SSR/1 / (SSE/(n-2))
F   #F值=72.396>F0.05(1,3)=5.32,所以拒绝原假设,说明回归方程显著
# 法二:anova函数
anova(lm2.15)

# (8)做回归系数beta1的显著性检验----
# 做出原假设H0:β1=0
t <- beta1/sqrt(sigma_hat^2/Lxx)
t
qt(1-alpha/2,n-2)
# t值=8.508575>t0.025(8)=2.306004,所以拒绝原假设,说明X对Y有显著的影响

# (9)做相关系数的显著性检验----
R <- sqrt(R_2)
R   # R值接近1,说明回归方程的拟合度高
# R值=0.9489428>R0.05(8)=0.632,所以接受原假设,说明X与Y有显著的线性关系

# (10)对回归方程做残差图并做相应的分析----
SRE <- rstandard(lm2.15)
plot(x,SRE,main='学生化残差散点图',xlab='每周签发的新保单数目',ylab='学生化残差')
# 从残差图上看出,残差是围绕e=0随即波动,满足模型的基本假设ei~N(0,sigma_hat^2)。

# (11)公司预计下一周签发新保单x0=1000张,需要加班时间Y0=beta0+beta1*1000=3.703262----
x0 <- 1000
y0 <- beta0+beta1*x0
y0   # 需要加班时间3.7032小时

# (12)给出y0的置信度为95%的精确预测区间和近似预测区间----
## 精确预测区间
sd.y0 <- sqrt((1+1/n+(x0-meanx)^2/Lxx)*sigma_hat^2)
y0_L <- y0-qt(1-alpha/2,n-2)*sd.y0 #下限
y0_U <- y0+qt(1-alpha/2,n-2)*sd.y0 #上限
# 求得y0的95%置信区间为(2.5195,4.8870)

## 近似预测区间
y0_L2 <- y0-2*sigma_hat #下限
y0_U2 <- y0+2*sigma_hat #上限
# 求得y0的近似预测区间为(2.7432,4.6633)

# (13)给出E(y0)的置信度为95%的区间估计
sd.Ey0 <- sqrt((1/n+(x0-meanx)^2/Lxx)*sigma_hat^2)
Ey0_L3 <- y0-qt(1-alpha/2,n-2)*sd.Ey0 #下限
Ey0_U3 <- y0+qt(1-alpha/2,n-2)*sd.Ey0 #上限
# E(y0)的置信度为95%的预测区间为:(3.284,4.123)。

# 法二:predict函数
new <- data.frame(x=x0) # 此处新值必须以数据框的形式存储新点
ypred <- predict(lm2.15,new,interval = 'prediction',level = 0.95) 
ypred #y0的置信度为95%的精确预测区间
yconf <- predict(lm2.15,new,interval = 'confidence',level = 0.95) 
yconf #E(y0)的置信度为95%的预测区间

detach(data2.15) #与attach()相对应,将数据框从搜索路径中移除




参考课本:应用回归分析(R语言版),何晓群编著

你可能感兴趣的:(R)