ISLR习题:线性回归 - 没有截距的简单线性回归
目录
本文源自《统计学习导论:基于R语言应用》(ISLR) 第三章习题
生成预测变量 x 和响应变量 y
set.seed(1)
x = rnorm(100)
y = 2 * x + rnorm(100)
y 对 x
建立 y 对 x 的不含截距的简单线性回归
lm_fit_y_x <- lm(y ~ x + 0)
summary(lm_fit_y_x)
Call:
lm(formula = y ~ x + 0)
Residuals:
Min 1Q Median 3Q Max
-1.9154 -0.6472 -0.1771 0.5056 2.3109
Coefficients:
Estimate Std. Error t value Pr(>|t|)
x 1.9939 0.1065 18.73 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.9586 on 99 degrees of freedom
Multiple R-squared: 0.7798, Adjusted R-squared: 0.7776
F-statistic: 350.7 on 1 and 99 DF, p-value: < 2.2e-16
x 对 y
lm_fit_x_y <- lm(x ~ y + 0)
summary(lm_fit_x_y)
Call:
lm(formula = x ~ y + 0)
Residuals:
Min 1Q Median 3Q Max
-0.8699 -0.2368 0.1030 0.2858 0.8938
Coefficients:
Estimate Std. Error t value Pr(>|t|)
y 0.39111 0.02089 18.73 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.4246 on 99 degrees of freedom
Multiple R-squared: 0.7798, Adjusted R-squared: 0.7776
F-statistic: 350.7 on 1 and 99 DF, p-value: < 2.2e-16
对比
模型 | 系数 | 标准差 | t 统计量 | p 值 |
---|---|---|---|---|
y ~ x + 0 | 1.9939 | 0.1065 | 18.73 | < 2.2e-16 |
x ~ y + 0 | 0.39111 | 0.02089 | 18.73 | < 2.2e-16 |
t 统计量
第一种计算方法
$$ t = \hat{\beta} / \mathit{SE}(\hat{\beta}) $$
$$ \hat{\beta} = (\sum_{i=1}^nx_iy_i) / (\sum_{i’=1}^nx_{i’}^2) $$
$$ \mathit{SE}(\hat{\beta}) = \sqrt{ \frac {\sum_{i=1}^n(y_i - x_i\hat\beta)^2} {(n-1)\sum_{i’=1}^nx_{i’}^2} } $$
beta <- sum(x * y) / sum(x^2)
beta
[1] 1.993876
se_beta <- sqrt(sum((y - x*beta)^2) / (99 * sum(x^2)))
se_beta
[1] 0.1064767
t1 <- beta / se_beta
t1
[1] 18.72593
第二种计算方法
$$ \frac { (\sqrt{n-1}) \sum_{i=1}^nx_iy_i } { \sqrt{ (\sum_{i=1}^n x_i^2)(\sum_{i’=1}^ny_i’^2) - (\sum_{i’=1}^2x_{i’}y_{i’})^2 } } $$
(
sqrt(99) * sum(x*y)
) / (
sqrt(
sum(x^2) * sum(y^2) - sum(x*y) ^ 2
)
)
[1] 18.72593
两种方法计算结果相同
所以 x 对 y 的 t 统计量和 y 对 x 的 t 统计量是一样的
参考
https://github.com/perillaroc/islr-study
ISLR实验系列文章
线性回归
分类
重抽样方法
线性模型选择与正则化