Gelman & Hill ARM 教科书,问题 3.2,R 平方

机器算法验证 回归 自习 r平方
2022-03-28 06:32:58

我正在阅读 Gelman 和 Hill 的“使用线性回归和多级/分层模型的数据分析”。我对第 3 章中的练习 2 有疑问。

假设,对于某个人口,我们可以从对数高度预测对数收益,如下所示:

  • 预计身高 66 英寸的人的收入为 30,000 美元。身高每增加 1%,对应的收入预计增加 0.8%。
  • 大约 95% 的人的收入在预测值的 1.1 倍范围内。
  • 给出回归线的方程和回归的残差标准差。

假设此总体中对数高度的标准偏差为 5%。那么,这里描述的回归模型的 R2 是多少?

在 R 中,我使用以下代码推导出回归线的方程

alpha = log(30000) - (0.008/0.01) * log(66) # find the y-intercept
alpha
log.y = alpha + (0.008/0.01) * log(66) 
exp(log.y) # we need to take the exponential of log.y to have our final result

等式是为了计算预测的标准偏差,我使用了一个基于第二个要点事实的简单方程。log(earnings)=6.957229+0.0080.01log(height)

sd =  0.1 * .50 / .95

回归残差的标准差不过,在尝试解决最后一个问题时,我很难;我们模型的 R2 是多少?0.05263158

sd.population = 0.05
R2 <- 1 - (sd^2 / sd.population^2)

然而,这会返回一个负的 R 平方,这显然是错误的。我究竟做错了什么?

3个回答

对于这些类型的问题,通常最好避免使用计算机编码,直到您至少能够写下您正在使用的各种代数方程。这些问题的关键是能够解释书面信息以从您的模型中获得相应的代数方程。一旦你把可用的条件写下来,就成功了一半,解决它们通常相当简单。


为身高(英寸),为收入(1,000 美元),对数线性模型为:xiYi

lnYi=β0+β1lnxi+εiεiN(0,σ2).

以期望值给出模型的真实回归线:

E(lnYi|xi)=β0+β1lnxi.

该模型的估计回归线为:

 lnY^i=β^0+β^1lnxi.

由于这两个变量都通过它们的对数进入模型,所以参数表示预期收入相对于身高的弹性表示当身高为一个单位时的预期对数收入(尽管这种解释外推超出数据范围)。根据所述条件,我们有以下三个数学条件:β1β0

预计身高 66 英寸的人的收入为 30,000 美元。

ln30=β^0+β^1ln66.

身高每增加 1%,对应的收入预计增加 0.8%。

β^1=0.0080.01=0.8

大约 95% 的人的收入在预测值的 1.1 倍范围内。

P(|lnYilnY^i|0.1)0.95.

假设此总体中对数高度的标准偏差为 5%。

MSTot=0.052.

所以现在,您需要使用这些条件来查找模型中的各种参数估计,以及由此产生的拟合优度统计量。前两个方程可以让您找到系数估计值,然后第三个方程可以让您找到误差项的估计标准差。(您可能需要对此进行额外假设。)然后,第四个等式将允许您找到模型的拟合优度统计量。

log(x) - log(y) ~ %delta

所以 log(x) - log(y) + 1.96 = 1.1 意味着 = 1.78。σσ

对数收益的标准偏差(Gelman 在书中有高度,但我认为这是一个错误)为 5(%),R2 = 1 - 1.78 /5 = .64

我对(b)有不同的解释。我们从回归因此, log(y)=a+blog(x)

sd(log(y))=|b|sd(log(x))=(0.8)×(0.05)=0.04,

因为对此进行平方,我们得到回归平方和从 (a) 我们得到残差标准差 ( )。平方得到误差平方和因此,对数刻度上的总平方和等于 0.004,R 平方为sd(log(x))SSR=0.00160.049SSE=0.0024.10.0016/0.004=0.6