« [R]単回帰分析(入門 統計解析 医学・自然科学編、東京書籍、pp.236-237) | トップページ | [R]数値を文字列に変換する »

2022年5月17日 (火)

[R]最小二乗法による回帰直線の傾き、切片、決定係数、自由度調整済み決定係数を求める(44の例題で学ぶ計量経済学、オーム社、pp.96-108)

データは以下のとおり(p.97)。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 <- length(xxi)
> ssxy <- sum((xxi - mean(xxi)) * (yyi - mean(yyi)))
> ssxx <- sum((xxi - mean(xxi)) ^ 2)
> b <- ssxy / ssxx
> xxm <- mean(xxi)
> yym <- mean(yyi)
> a <- yym - b * xxm
> yyei <- a + b * xxi
> ui <- yyi - yyei
> ssu2 <- sum(ui ^ 2)
> ssyy <- sum((yyi - yym) ^ 2)
> ssyeye <- sum((yyei - yym) ^ 2)
> rr2 <- ssyeye / ssyy
> sig2 <- ssu2 / (n - 2)
> sy2 <- ssyy / (n - 1)
> arr2 <- 1 - sig2 / sy2
> cat(sprintf("傾き β=%.2f\n", b))
傾き β=1.10
> cat(sprintf("切片 α=%.2f\n", a))
切片 α=0.50
> cat(sprintf("決定係数 R^2=%.3f\n", rr2))
決定係数 R^2=0.931
> cat(sprintf("自由度調整済み決定係数 adj.R^2=%.3f\n", arr2))
自由度調整済み決定係数 adj.R^2=0.896

« [R]単回帰分析(入門 統計解析 医学・自然科学編、東京書籍、pp.236-237) | トップページ | [R]数値を文字列に変換する »

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

コメント

コメントを書く

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

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

« [R]単回帰分析(入門 統計解析 医学・自然科学編、東京書籍、pp.236-237) | トップページ | [R]数値を文字列に変換する »

無料ブログはココログ

■■

■■■