No.08952 Rで重回帰  【saita】 2009/01/19(Mon) 18:33

お世話になります.
Rを用いて重回帰分析を行おうと考えましたが,用いたいデータの従属変数は連続変数である一方,独立変数は連続変数とカテゴリ変数が混在しております.
このような場合,一般線形モデルの共分散分析モデルを用いると一般的な教科書には書いてありますが,glm()関数を用いて分析することはできないのでしょうか.
また,それができた時,glm()関数ではfamilyというところで,poisson, gaussian, binomialなどを指定することができますが,同じように独立変数の一部がカテゴリカルデータだということを指定するには,どうしたらよいのでしょうか.
Rは,R version 2.8.0 Patchedを用いております.

No.08954 Re: Rで重回帰  【青木繁伸】 2009/01/19(Mon) 18:42

> glm()関数を用いて分析することはできないのでしょうか.

できますよ。というか,その方がよいでしょう。

> 独立変数の一部がカテゴリカルデータだということを指定するには,どうしたらよいのでしょうか

カテゴリーデータを factor にすればよいだけです。
glm のオンラインヘルプ(? glm)の最初のexample で,utcome, counts は gl で作られていますけど,できるのは factor です。
> gl(3,1,9)
[1] 1 2 3 1 2 3 1 2 3
Levels: 1 2 3
は,以下と同じ結果を与えます。
> factor(rep(1:3, 3))
[1] 1 2 3 1 2 3 1 2 3
Levels: 1 2 3

No.08957 Re: Rで重回帰  【saita】 2009/01/19(Mon) 19:15

早速のお返事ありがとうございます.
Factorに直せばよいということで,この分析方法が使えそうで安心しました.

例えばテキストファイルでデータセット準備して以下のように読み込んだ場合,カテゴリーデータである性別と数学の好き嫌いをfactorにするには,どうしたら良いのでしょうか.
この場合,既にデータセットがダミー変数に変換されているので,factorに変換する必要はないのかとも思いますが,そうすると0と1という数字を連続変数と認識してしまわないのかな?と思うのですが.
>data
性別 数学の好き嫌い 統計テスト1 統計テスト2 心理学テスト
1 0 1 6 10 13
2 0 1 10 13 14
3 0 0 6 8 7
4 0 0 10 15 12
5 0 1 5 8 10
6 0 1 3 6 6
7 0 1 5 9 8
8 0 1 9 10 15
9 0 1 3 7 4
10 0 0 3 3 14
11 1 0 11 18 9
12 1 1 6 14 6
13 1 0 11 18 10
14 1 1 9 11 12
15 1 1 7 12 5
16 1 0 5 5 12
17 1 1 8 7 8
18 1 1 7 12 8
19 1 0 7 7 12
20 1 1 9 7 15

No.08959 Re: Rで重回帰  【青木繁伸】 2009/01/19(Mon) 19:47

data$性別 <- factor(data$性別, levels=0:1, labels=c("男", "女"))
のようにします。? factor でオンラインヘルプを見てください。

今回の場合は 0/1 データになっているので,factor にする必要はないですね。同じ結果になるでしょう。
一般的には,カテゴリーが3個以上のときなどは factor にすれば,自分でダミー変数を作る必要はないし,変数選択のときにも適切に扱ってくれます。

No.08960 Re: Rで重回帰  【saita】 2009/01/19(Mon) 20:04

Rでのやり方もわかりました.
これなら,いちいち自分で入力しながらダミー変数を作る必要もないですね.間違いも減りそうです.
変数選択の時にも適切に扱ってくれる=連続変数と扱われることはないということで,安心しました!
迅速な対応,ありがとうございました.

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