« [R]単回帰モデルにおけるt分布による切片の仮説検定(両側検定)を行う(44の例題で学ぶ計量経済学、オーム社、p.181) | トップページ | [R]旧エクセルのファイル(.xls)を読み込む »

2022年5月24日 (火)

[R]単回帰モデルにおける回帰係数のp値を求める(44の例題で学ぶ計量経済学、オーム社、p.181)

データは以下のとおり(p.97の表3.2)。xxiは説明変数、yyiは目的変数(被説明変数)。これをメモ帳に貼り付けて「table3_2.csv」というテキストファイルで保存をして、カレントディレクトリに置いておく。

i, xxi, yyi
1, 2, 3
2, 4, 5
3, 6, 6
4, 8, 10

以下、計算。

> dtf <- read.csv("table3_2.csv", header = TRUE)
> xxi <- dtf$xxi
> yyi <- dtf$yyi
> n <- nrow(dtf)
> k <- 2
> degf <- n - k
> mxy <- matrix(yyi, ncol = 1)
> mxxx <- matrix(c(rep(1.0, n), xxi), ncol = 2)
> mxb <- solve(t(mxxx) %*% mxxx) %*% t(mxxx) %*% mxy
> b <- as.vector(mxb)
> yyhi <- mxxx %*% mxb
> sssse <- sum((yyi - yyhi) ^ 2)
> sh2 <- sssse / degf
> mxcc <- sh2 * solve(t(mxxx) %*% mxxx)
> seb <- sqrt(diag(mxcc))
> tb <- b / seb
> pb <- 2 * pt(abs(tb), degf, lower.tail = FALSE)
> rr2 <- sum((yyhi - mean(yyi)) ^ 2) / sum((yyi - mean(yyi)) ^ 2)
> arr2 <- 1 - (sssse / (n - k)) / (sum((yyi - mean(yyi)) ^ 2) / (n - 1))
> cat(sprintf("回帰式 Y^i = %.1f + %.1f Xi\n", b[1], b[2]))
回帰式 Y^i = 0.5 + 1.1 Xi
> cat(sprintf(" (%.3f) (%.3f)\n", tb[1], tb[2]))
(0.430) (5.185)
> cat(sprintf("αの推定値の t値 tα = %.3f\n", tb[1]))
αの推定値の t値 tα = 0.430
> cat(sprintf("αの推定値の p値 pα = %.3f\n", pb[1]))
αの推定値の p値 pα = 0.709
> cat(sprintf("βの推定値の t値 tβ = %.3f\n", tb[2]))
βの推定値の t値 tβ = 5.185
> cat(sprintf("βの推定値の p値 pβ = %.3f\n", pb[2]))
βの推定値の p値 pβ = 0.035

« [R]単回帰モデルにおけるt分布による切片の仮説検定(両側検定)を行う(44の例題で学ぶ計量経済学、オーム社、p.181) | トップページ | [R]旧エクセルのファイル(.xls)を読み込む »

R(本の計算を再現)」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« [R]単回帰モデルにおけるt分布による切片の仮説検定(両側検定)を行う(44の例題で学ぶ計量経済学、オーム社、p.181) | トップページ | [R]旧エクセルのファイル(.xls)を読み込む »