[课程资料] 高级统计方法书后习题(二)
本系列内容为《统计学习导论——基于R应用》(机械工业出版社)部分课后习题答案。
本章为3.7节习题答案。
声明:本博客中的习题分享仅供学习和参考之用。请勿将其用于任何形式的学术欺骗、抄袭或违反学术诚信的行为。尊重知识,诚实学习。
如果您发现文章内容中任何不妥或错误之处,请随时通过联系方式或评论功能与我交流,以便我进行改正和完善。
一、概念题
3.7.1
表3-4
p值对应零假设:
TV的零假设:TV广告支出对销售额(sales)没有显著影响(在Radio和newspaper存在时)。(β_{TV}=0)
Radio的零假设:Radio广告支出对销售额没有显著影响(在TV和newspaper存在时)。(β_{Radio}=0)
newspaper的零假设:newspaper广告支出对销售额没有显著影响(在TV和Radio存在时)。(β_{newspaper}=0)
p值得出结论:
由于TV和Radio的p值远小于0.05,则可以拒绝原假设(零假设)。认为TV/Radio广告支出在另两个变量存在的情况下对销售额(sales)具有显著影响。而newspaper的p值远大于0.05,则接受原假设,认为newspaper广告支出在另两个变量存在的情况下对销售额没有显著影响。
3.7.3
(a)
(b)
(c)
错误。交互项的系数不能直接说明两者是否有交互作用。如果需要判断GPA与IQ之间是否存在交互作用,则需要计算对应的p值。若原假设为“两者交互作用不显著”,如果p值小于一个显著性水平(通常为0.05)那么说明原假设不成立,则两者有交互作用。
3.7.4
(a)
线性回归的训练RSS(残差平方和)大于三次回归的训练RSS。原因是三次回归的模型灵活度更高,对训练数据的拟合效果会比线性回归更好,训练RSS会更低。
(b)
线性回归的测试RSS小于三次回归的测试RSS。原因是三次回归模型灵活度高,会出现过拟合的情况。而X和Y恰好满足线性关系,线性回归在测试集上的测试RSS更小。
(c)
线性回归的训练RSS(残差平方和)大于三次回归的训练RSS。原因是三次回归的模型灵活度更高,无论X与Y的线性成都如何,三次回归模型对训练数据的拟合效果都会比线性回归更好,训练RSS会更低。
(d)
根据已知条件无法判断线性回归的测试RSS与三次回归的测试RSS之间的大小。在测试集上,如果数据的真实情况更贴近线性回归,那么线性回归的测试RSS更小。反之如果真实情况更贴近三次回归,则三次回归的测试RSS更小。
二、应用题
3.7.8
(a)
# 8.(a) library(ISLR) Auto lm_mpg_hp = lm(mpg~horsepower, data = Auto) summary(lm_mpg_hp) ## i.从结果可以看出p值远小于0.05,则可以认为两者有关系 ## ii.R^2的值可以看出大约60.59%的mpg变异可以用马力来解释,那么说明两者关系比较强 ### iii.从系数为负数得知两者是负相关 predict(lm_mpg_hp, data.frame(horsepower=c(98))) # 预测值是24.46768 predict(lm_mpg_hp, data.frame(horsepower=c(98)), interval="confidence") # 置信区间[23.97308, 24.96108] # predict(lm_mpg_hp, data.frame(horsepower=c(98)), interval="confidence", level=0.90) 90%置信区间 predict(lm_mpg_hp, data.frame(horsepower=c(98)), interval="prediction") # 预测区间[14.80940, 34.12476]
(b)
# 8.(b) plot(Auto$horsepower, Auto$mpg) # 绘制响应变量与预测变量关系图 abline(lm_mpg_hp, col="red") # 最小二乘回归线
(c)
# 8.(c) par(mfrow=c(2,2)) plot(lm_mpg_hp) # Residuals vs Fitted 残差与拟合值之间的关系。理想情况下,残差应该随机分布在零附近,没有明显的模式。而图中随着拟合值增大残差图呈下凸的曲线,说明二者可能是非线性关系。同时随着拟合值增大,残差范围增大说明可能存在异方差性(误差项方差非恒定)。 # Q-Q Residuals 检查残差是否符合正态分布。如果残差在图中大致沿直线分布,则表明符合正态性。 # Scale-Location 标准化残差的平方根与拟合值。 # Residuals vs Leverage 识别异常值和高杠杆值的点,图中有几个点的杠杆值比较高,残差也比较大,存在异常值。 # 综上得出mpg与horsepower两者可能是非线性关系,使用最小二乘回归拟合效果不好。
完整代码
# 8.(a) library(ISLR) Auto lm_mpg_hp = lm(mpg~horsepower, data = Auto) summary(lm_mpg_hp) ## i.从结果可以看出p值远小于0.05,则可以认为两者有关系 ## ii.R^2的值可以看出大约60.59%的mpg变异可以用马力来解释,那么说明两者关系比较强 ### iii.从系数为负数得知两者是负相关 predict(lm_mpg_hp, data.frame(horsepower=c(98))) # 预测值是24.46768 predict(lm_mpg_hp, data.frame(horsepower=c(98)), interval="confidence") # 置信区间[23.97308, 24.96108] predict(lm_mpg_hp, data.frame(horsepower=c(98)), interval="prediction") # 预测区间[14.80940, 34.12476] # 8.(b) plot(Auto$horsepower, Auto$mpg) # 绘制响应变量与预测变量关系图 abline(lm_mpg_hp, col="red") # 最小二乘回归线 # 8.(c) par(mfrow=c(2,2)) plot(lm_mpg_hp) # 绘制诊断图 # Residuals vs Fitted 残差与拟合值之间的关系。理想情况下,残差应该随机分布在零附近,没有明显的模式。而图中随着拟合值增大残差范围也增大,说明选择的模型不能很好的对数据进行拟合。 # Q-Q Residuals 检查残差是否符合正态分布。如果残差在图中大致沿直线分布,则表明符合正态性。 # Scale-Location 标准化残差的平方根与拟合值。 # Residuals vs Leverage 识别异常值和高杠杆值的点,图中有几个点的刚感知比较高,残差也比较大,存在异常值。 # 综上得出mpg与horsepower两者可能是非线性关系,使用最小二乘回归拟合效果不好。
3.7.11
(a)
# 11.(a) set.seed(1) x = rnorm(100) # 生成一个包含100个标准正态分布随机数的向量 x y = 2*x+rnorm(100) # 生成响应变量 y,它是预测变量 x 的线性函数(2*x),并添加一个独立的标准正态分布噪声项 lm_y_x = lm(y~x+0) summary(lm_y_x) # 估计系数1.9939,标准差0.1065,t统计量18.73,p值<2e16 ## 标准差很小,说明回归系数精确;t统计量较大、p值较小,说明x对y有显著影响。
(b)
# 11.(b) lm_x_y = lm(x~y+0) summary(lm_x_y) # 估计系数0.39111,标准差0.02089,t统计量18.73,p值<2e16 ## 标准差很小,说明回归系数精确;t统计量较大、p值较小,说明y对x有显著影响(t与p与(a)中相同,说明线性关系本质没有改变)。
(c)
# 11.(c) ## (a)与(b)中R方相同,t统计量相同,p值相同,说明线性关系本质没有改变。 ## (a)与(b)之间估计系数接近倒数
(d)
# 11.(d) (sqrt(length(x)-1)*sum(x*y)) / sqrt(sum(x*x)*sum(y*y)-(sum(x*y))^2) # 18.72593
(e)
# 11.(e) (sqrt(length(y)-1)*sum(y*x)) / sqrt(sum(y*y)*sum(x*x)-(sum(y*x))^2) # 18.72953 ## (d)中所得t统计量也为18.72953,两者相同
(f)
# 11.(f) lm_y_x_2 = lm(y~x) lm_x_y_2 = lm(x~y) summary(lm_y_x_2) # t统计量18.556 summary(lm_x_y_2) # t统计量18.56 两者基本相同
完整代码
# 11.(a) set.seed(1) x = rnorm(100) # 生成一个包含100个标准正态分布随机数的向量 x y = 2*x+rnorm(100) # 生成响应变量 y,它是预测变量 x 的线性函数(2*x),并添加一个独立的标准正态分布噪声项 lm_y_x = lm(y~x+0) summary(lm_y_x) # 估计系数1.9939,标准差0.1065,t统计量18.73,p值<2e16 ## 标准差很小,说明回归系数精确;t统计量较大、p值较小,说明x对y有显著影响。 # 11.(b) lm_x_y = lm(x~y+0) summary(lm_x_y) # 估计系数0.39111,标准差0.02089,t统计量18.73,p值<2e16 ## 标准差很小,说明回归系数精确;t统计量较大、p值较小,说明y对x有显著影响(t与p与(a)中相同,说明线性关系本质没有改变)。 # 11.(c) ## (a)与(b)中R方相同,t统计量相同,p值相同,说明线性关系本质没有改变。 ## (a)与(b)之间估计系数接近倒数 # 11.(d) (sqrt(length(x)-1)*sum(x*y)) / sqrt(sum(x*x)*sum(y*y)-(sum(x*y))^2) # 18.72593 # 11.(e) (sqrt(length(y)-1)*sum(y*x)) / sqrt(sum(y*y)*sum(x*x)-(sum(y*x))^2) # 18.72953 ## (d)中所得t统计量也为18.72953,两者相同 # 11.(f) lm_y_x_2 = lm(y~x) lm_x_y_2 = lm(x~y) summary(lm_y_x_2) # t统计量18.556 summary(lm_x_y_2) # t统计量18.56 两者基本相同
3.7.13
(a)
# 13.(a) set.seed(1) x = rnorm(100) # 创建包含100个服从N(0,1)分布的观测 x # 展示x
(b)
# 13.(b) eps = rnorm(100, 0, 0.25) # 创建包含100个服从N(0,0.25)分布的观测 eps # 展示eps
(c)
# 13.(c) y = -1 + 0.5*x + eps # β0=-1,β1=0.5 length(y) # 长度100
(d)
# 13.(d) par(mfrow=c(1,1)) plot(x, y) ## 可以看出y与x成线性正相关的关系
(e)
# 13.(e) lm_y_x = lm(y~x) summary(lm_y_x) ## β0^=-1.00942 β1^=0.49973 与 β0=-1,β1=0.5 几乎相等
(f)
# 13.(f) par(mfrow=c(1,1)) plot(x, y) abline(-1, 0.5, lwd=5, col="green") # 在图中添加真实的直线,截距为-1,斜率为0.5,线宽为5,颜色为绿色 abline(lm_y_x, lwd=3, col = "red") # 在图中添加回归直线,使用 lm_y_x 模型,线宽为3,颜色为红色 legend("topright", legend=c("真实","回归"), col=c("green", "red"), lwd=3) # 添加图例,位置在右上角,说明绿色线代表“真实”关系,红色线代表“回归”关系,线宽均为3
(g)
# 13.(g) lm_x2_y = lm(y ~ x+I(x^2)) # 拟合包含 x 和 x^2 的线性模型 summary(lm_x2_y) ## 尽管多项式回归模型的 R-squared 和 Adjusted R-squared 略高,但提升并不显著。二次项 I(x^2) 的 Estimate 为 -0.02973,p 值为 0.164,明显大于 0.05,这表明二次项在统计上不显著。
(h)
# 13.(h) set.seed(1) x2 = rnorm(100) eps2 = rnorm(100, 0, 0.1) y2 = -1 + 0.5*x2 + eps2 lm_y_x_2 = lm(y2~x2) summary(lm_y_x_2) par(mfrow=c(1,1)) plot(x2, y2) abline(-1, 0.5, lwd=5, col="green") abline(lm_y_x_2, lwd=3, col = "red") legend("topright", legend=c("真实","回归"), col=c("green", "red"), lwd=3) ## 从R方值的增大和图像可以看出拟合效果更好了
(i)
# 13.(i) set.seed(1) x3 = rnorm(100) eps3 = rnorm(100, 0, 0.5) y3 = -1 + 0.5*x2 + eps3 lm_y_x_3 = lm(y3~x3) summary(lm_y_x_3) par(mfrow=c(1,1)) plot(x3, y3) abline(-1, 0.5, lwd=5, col="green") abline(lm_y_x_3, lwd=3, col = "red") legend("topright", legend=c("真实","回归"), col=c("green", "red"), lwd=3) ## 从R方值的减小和图像可以看出拟合效果更差了
(j)
# 13.(j) confint(lm_y_x) confint(lm_y_x_2) # 噪声降低,置信区间更小 confint(lm_y_x_3) # 噪声提高,置信区间更大
完整代码
# 13.(a) set.seed(1) x = rnorm(100) # 创建包含100个服从N(0,1)分布的观测 x # 展示x # 13.(b) eps = rnorm(100, 0, 0.25) # 创建包含100个服从N(0,0.25)分布的观测 eps # 展示eps # 13.(c) y = -1 + 0.5*x + eps # β0=-1,β1=0.5 length(y) # 长度100 # 13.(d) par(mfrow=c(1,1)) plot(x, y) ## 可以看出y与x成线性正相关的关系 # 13.(e) lm_y_x = lm(y~x) summary(lm_y_x) ## β0^=-1.00942 β1^=0.49973 与 β0=-1,β1=0.5 几乎相等 # 13.(f) par(mfrow=c(1,1)) plot(x, y) abline(-1, 0.5, lwd=5, col="green") # 在图中添加真实的直线,截距为-1,斜率为0.5,线宽为5,颜色为绿色 abline(lm_y_x, lwd=3, col = "red") # 在图中添加回归直线,使用 lm_y_x 模型,线宽为3,颜色为红色 legend("topright", legend=c("真实","回归"), col=c("green", "red"), lwd=3) # 添加图例,位置在右上角,说明绿色线代表“真实”关系,红色线代表“回归”关系,线宽均为3 # 13.(g) lm_x2_y = lm(y ~ x+I(x^2)) # 拟合包含 x 和 x^2 的线性模型 summary(lm_x2_y) ## 尽管多项式回归模型的 R-squared 和 Adjusted R-squared 略高,但提升并不显著。二次项 I(x^2) 的 Estimate 为 -0.02973,p 值为 0.164,明显大于 0.05,这表明二次项在统计上不显著。 # 13.(h) set.seed(1) x2 = rnorm(100) eps2 = rnorm(100, 0, 0.1) y2 = -1 + 0.5*x2 + eps2 lm_y_x_2 = lm(y2~x2) summary(lm_y_x_2) par(mfrow=c(1,1)) plot(x2, y2) abline(-1, 0.5, lwd=5, col="green") abline(lm_y_x_2, lwd=3, col = "red") legend("topright", legend=c("真实","回归"), col=c("green", "red"), lwd=3) ## 从R方值的增大和图像可以看出拟合效果更好了 # 13.(i) set.seed(1) x3 = rnorm(100) eps3 = rnorm(100, 0, 0.5) y3 = -1 + 0.5*x2 + eps3 lm_y_x_3 = lm(y3~x3) summary(lm_y_x_3) par(mfrow=c(1,1)) plot(x3, y3) abline(-1, 0.5, lwd=5, col="green") abline(lm_y_x_3, lwd=3, col = "red") legend("topright", legend=c("真实","回归"), col=c("green", "red"), lwd=3) ## 从R方值的减小和图像可以看出拟合效果更差了 # 13.(j) confint(lm_y_x) confint(lm_y_x_2) # 噪声降低,置信区间更小 confint(lm_y_x_3) # 噪声提高,置信区间更大