No.01272 Rでglm,独立変数の係数は?  【もも】 2006/10/10(Tue) 12:33

初心者です。
ちょっとよくわからないので,どなたか教えて頂けないでしょうか。お願いします。
独立変数がカテゴリー変数であるモデルに対して,Rでglm解析を行った場合,出力されるEstimateの値は,「独立変数の最も小さい値の水準に対する相対値」ということなのでしょうか。
各独立変数の係数の絶対値は分からないのでしょうか。
独立変数の係数はどのようにして求めればよいのでしょうか。

No.01273 Re: Rでglm,独立変数の係数は?  【青木繁伸】 2006/10/10(Tue) 12:51

ベースラインにされたダミー変数に対する重みが0ということで,他のダミー変数に対する重みも相対値なんかではないですが?
> x <- as.factor(c(3,2,1,3,1,2,3))
> y <- c(3,2,1,4,5,6,4)
> ans <- glm(formula=y ~ x, family=gaussian)
> ans

Call: glm(formula = y ~ x, family = gaussian)

Coefficients:
(Intercept) x2 x3
3.0000 1.0000 0.6667

Degrees of Freedom: 6 Total (i.e. Null); 4 Residual
Null Deviance: 17.71
Residual Deviance: 16.67 AIC: 33.94
> ans$fitted.values
1 2 3 4 5 6 7
3.666667 4.000000 3.000000 3.666667 3.000000 4.000000 3.666667

予測値は,
xが1のときは,3(+0)
xが2のときは,3+1.0
xが3のときは,3+0.6667
となっているでしょう?

No.01274 Re: Rでglm,独立変数の係数は?  【もも】 2006/10/10(Tue) 13:40

青木先生ありがとうございました。
ベースラインにされたX1の係数がInterceptに示された3で,x2の係数が4,X3の係数が3.6667ということなのですね。
やっと分かりました。もやもやがとれました。
ありがとうございました。

No.01275 Re: Rでglm,独立変数の係数は?  【青木繁伸】 2006/10/10(Tue) 13:42

> ベースラインにされたX1の係数がInterceptに示された3で,x2の係数が4,X3の係数が3.6667ということなのですね。

違いますよ!!

3は定数項(切片,って書いてあるでしょ)
x2 の係数は1,x3の係数は0.6667
x1 はベースラインにされたので出力には現れていないが,係数は0ということ何に0を掛けても結果は0なので,ベースライン。

No.01276 Re: Rでglm,独立変数の係数は?  【もも】 2006/10/10(Tue) 14:09

ご面倒おかけして申し訳ありません。よく理解できていないようです。
x1の係数が0ということは,x1はこのモデルに影響を及ぼしていないということなのでしょうか。。

No.01277 Re: Rでglm,独立変数の係数は?  【青木繁伸】 2006/10/10(Tue) 14:15

ダミー変数については
http://aoki2.si.gunma-u.ac.jp/lecture/Regression/mreg/dummy-variable/dummy.html
をご覧ください。

> x1の係数が0ということは,x1はこのモデルに影響を及ぼしていないということなのでしょうか

そういう意味では,貴方の言うところの「相対的」ということでしょう。
x1を基準にすると,x2はそれよりも1大きい効果を及ぼし,x3 はx1より0.6667大きい効果を及ぼすということですね。

No.01278 Re: Rでglm,独立変数の係数は?  【もも】 2006/10/10(Tue) 14:29

> x1を基準にすると,x2はそれよりも1大きい効果を及ぼし,x3 はx1より0.6667大きい効果を及ぼすということですね

そういう解釈をしておりましたが,間違っているようですね。ダミー変数についてもう少し勉強し直してみます。ありがとうございました。

No.01289 Re: Rでglm,独立変数の係数は?  【マスオ】 2006/10/11(Wed) 00:02

Rであれば,切片=0 のモデルで回帰すればよいでしょう.
青木先生の例を拝借すれば,

> ans0 <- glm(formula=y ~ x + 0, family=gaussian)
> ans0

Call: glm(formula = y ~ x + 0, family = gaussian)

Coefficients:
x1 x2 x3
3.000 4.000 3.667

Degrees of Freedom: 7 Total (i.e. Null); 4 Residual
Null Deviance: 107
Residual Deviance: 16.67 AIC: 33.94

このときのダミー変数は,

> model.matrix(ans0)
x1 x2 x3
1 0 0 1
2 0 1 0
3 1 0 0
4 0 0 1
5 1 0 0
6 0 1 0
7 0 0 1
attr(,"assign")
[1] 1 1 1
attr(,"contrasts")
attr(,"contrasts")$x
[1] "contr.treatment"

また,lm関数や glm関数では,contrasts引数で様々なダミー変数を使うことができて,それに応じて回帰係数が変わります.

No.01301 Re: Rでglm,独立変数の係数は?  【もも】 2006/10/11(Wed) 20:21

マスオさま
ありがとうございました。
なるほど,切片を0にしてやれば,x1がベースとならずに,3つの係数が出てくるのですね。少し分かってきました。
そもそも,ダミー変数の考え方を少し間違って解釈していたようです。
青木先生のページで理解が深まりました。

● 「統計学関連なんでもあり」の過去ログ--- 039 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る