R入門
状態空間時系列分析入門(シーエーピー出版)
最終更新:
r-intro
-
view
目次
英国ドライバーの月間死者数の対数に回帰直線を当てはめる(p.2)
最初に、諸元情報。
> n <- length(UKDriverDeaths)
> x <- 1:n
> y <- log(as.numeric(ts(UKDriverDeaths)))
> k <- 1
切片a、傾き(回帰係数)b、yの計算値ye、残差分散(誤差分散)s2、決定係数の二乗r2、F値fval、p値pをそれぞれ求めている。
> g <- matrix(c(rep(1, n), x), n)
> m <- solve(t(g) %*% g) %*% (t(g) %*% y)
> m
[,1]
[1,] 7.545842732
[2,] -0.001448032
> a <- m[1, 1]
> b <- m[2, 1]
> ye <- a + b * x
> s2 <- sum((y - ye) ^ 2) / (n - 2)
> s2
[1] 0.02299806
> r2 <- 1 - sum((y - ye) ^ 2) / sum((y - mean(y)) ^ 2)
> r2
[1] 0.2205911
> fval <- r2 / (1 - r2) * (n - k - 1) / k
> fval
[1] 53.77447
> p <- pf(fval, k, n - k - 1, lower.tail = FALSE)
> p
[1] 6.313237e-12
Rに標準で搭載されているlm関数を利用する方法もある。
> r <- lm(y ~ 1 + x)
> summary(r)
Call:
lm(formula = y ~ 1 + x)
Residuals:
Min 1Q Median 3Q Max
-0.33649 -0.10850 -0.01256 0.10368 0.40749
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 7.5458427 0.0219747 343.387 < 2e-16 ***
x -0.0014480 0.0001975 -7.333 6.31e-12 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.1517 on 190 degrees of freedom
Multiple R-squared: 0.2206, Adjusted R-squared: 0.2165
F-statistic: 53.77 on 1 and 190 DF, p-value: 6.313e-12
> sum(residuals(r) ^ 2) / (n - 2)
[1] 0.02299806
> r2 <- summary(r)$r.squared
> r2
[1] 0.2205911
> fval <- r2 / (1 - r2) * (n - k - 1) / k
> fval
[1] 53.77447
> p <- pf(fval, k, n - k - 1, lower.tail = FALSE)
> p
[1] 6.313237e-12
> plot(x,y)
> lines(x, ye)

添付ファイル