Rでお絵かき

お題は「平成21年度全国学力・学習状況調査の得点」と「平成14年就業構造基本調査に基づく完全失業率」との関連.

データは一番下の添付ファイルを参照.

library(ggplot2)

x <- read.table("Gakuryoku.dat", header=T, sep="\t")

summary(x)

ggplot(x, aes(失業率, 国語A)) + geom_point()

#点の色を地域別にする.

ggplot(x, aes(失業率, 国語A)) + geom_point(aes(colour = 地域))

#自動で回帰直線を引いてくれないので係数を求めるために回帰分析

reg <- lm(国語A ~ 失業率, data = x)

ggplot(x, aes(失業率, 国語A)) + geom_point(aes(colour = 地域))+

geom_abline(intercept = coef(reg)[1], slope = coef(reg)[2])

#ちなみに標準化偏回帰係数は

coef(reg)[2]*sd(x$失業率)/sd(x$国語A)

失業率

-0.7477009

#もちろん単回帰分析なので,相関係数でもOK

cor(x$失業率, x$国語A)

[1] -0.7477009

#地域別に回帰直線を引く.マルチレベル分析をするときに使えそう.

#地域別に回帰係数を算出

coefs <- ddply(x, .(地域), function(df) {

m <- lm(国語A ~ 失業率, data=df)

data.frame(a = coef(m)[1], b = coef(m)[2])

})

#念のためにa(切片)とb(回帰係数)を確認.

coefs

地域 a b

1 関東 27.35543 -0.3643092

2 近畿 26.49927 -0.2101612

3 九州・沖縄 28.09240 -0.5171941

4 甲信越 26.26667 -0.1666667

5 四国 35.41308 -2.0280374

6 中国 27.31344 -0.3379447

7 中部 24.20000 0.3529412

8 北海道・東北 28.31998 -0.5326685

9 北陸 34.42857 -2.0714286

#プロット

ggplot(x, aes(失業率, 国語A)) + geom_point(aes(colour = 地域))+

geom_abline(data=coefs, aes(intercept = a, slope = b, colour = 地域))

#地域別に図を表示

ggplot(x, aes(失業率, 国語A)) + geom_point(aes(colour = 地域))+

geom_abline(data=coefs, aes(intercept = a, slope = b, colour = 地域))+

facet_wrap(~地域, ncol=3)

#点ではなく都道府県ラベルをプロット.

ggplot(x, aes(失業率, 国語A)) + geom_text(aes(label = 都道府県), size=3)+

geom_smooth(aes(group=地域, colour = 地域), method="lm") +

facet_wrap(~地域, ncol=3)+opts(legend.position = "none")