A way of thinking

筆者個人の思考過程です。意見には個人差があります。

回帰係数の大きさを比較する

異なるデータセットで,同じ説明変数の回帰係数の大きさを比べたい場合がある(以下は単回帰想定)。ただ,点推定値と標準誤差はRで出てくるだけど,そこからどうやって推定したら分からないとなる人が多いと思う*1。Canada is a beautiful countryのTさんからそういう相談を受けたので,メモとして以下。ただし,中身はちゃんと分かってないです*2。以下の例は,help(lsmeans)にあったものです。

# "lsmeans"というパッケージを使います
library(lsmeans)

# 単なる直線回帰:glmにも対応している
fiber.lm <- lm(strength ~ diameter*machine, data=fiber)
# machineが異なるデータセットを示すfactor。fiberの中身を見てみると一目瞭然かと思います。

machine strength diameter
1 A 36 20
2 A 41 25
3 A 39 24
4 A 42 25
5 A 49 32
6 B 40 22
7 B 48 28
8 B 39 22
9 B 45 30
(continued)

( fiber.lst <- lstrends(fiber.lm, "machine", var="diameter") )

machine diameter.trend SE df lower.CL upper.CL
A 1.1042781 0.1936634 9 0.6661810 1.542375
B 0.8571429 0.2238228 9 0.3508205 1.363465
C 0.8641975 0.2080707 9 0.3935090 1.334886

pairs(fiber.lst)

contrast estimate SE df t.ratio p.value
A - B 0.247135218 0.2959766 9 0.835 0.6919
A - C 0.240080544 0.2842515 9 0.845 0.6863
B - C -0.007054674 0.3055979 9 -0.023 0.9997

*1:特に自由度周りが!と個人的には思う

*2:大変無責任なのですが。。