異なるデータセットで,同じ説明変数の回帰係数の大きさを比べたい場合がある(以下は単回帰想定)。ただ,点推定値と標準誤差は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.334886pairs(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