• 締切済み

ダミー変数

エクセルでダミー変数を含んだデータをつくりました。 例えば、以下のようにです。 ABCD 0013 0109 1002 0106 A、B、Cがダミー変数です。Dはそのまま普通に数値として読ませたいです。 これをCSVファイルにしてRにインポートしたんですが、 そのまま統計分析するとエラーが出てしまいます。 ABC列がダミー変数だと認識していないからじゃないかと思ってるんですが(違うかもしれません)どうすればダミー変数と認識してくれるでしょうか。 (「数値変数を因子に変換」かと思ったんですが、 ABCを変換したい変数に選択すると、統計量の分析で選択できる変数から消えてしまってDしか出てこないんですがどうなってるんでしょう・・・あと水準名と数値のどちらを選べばいいかもよくわかりません・・) 基本的な質問ですみません。誰か助けてください。。

みんなの回答

noname#227064
noname#227064
回答No.2

No.1の方の回答にもありますが、もう少し説明が必要と思います。 おそらく、「Rコマンダーを利用していて、AからCの全てを説明変数にして統計量-モデルへの適合-線形回帰をしてみたら、一つの変数でNAが出てしまった」と思いますが…… ダミー変数の数はカテゴリー数-1、質問の例ですと2つあれば十分なので、余計な1つはNAになります。 > ABCを変換したい変数に選択すると、統計量の分析で選択できる変数から消えてしまってDしか出てこないんですがどうなってるんでしょう・・・ 統計量-モデルへの適合-線形回帰は、因子が含められないようですね。 線形モデルなら因子を含められるようです。 (Rコマンダー(Version:1.4-10 Date:2009/04/26)で確認)

  • backs
  • ベストアンサー率50% (410/818)
回答No.1

実行例を載せてください。そうでないと、あなたが何をやったのか、それに対してどういうエラーが出たのかも分からないでしょう? とりあえず、インポートはできたとするなら: > A <- c(0, 0, 1, 0) > B <- c(0, 1, 0, 1) > C <- c(1, 0, 0, 0) > D <- c(3, 9, 2, 6) > result1 <- lm(D ~ B + C) > summary(result1) とすればできるでしょう(私は手入力しましたが)。もっとも、Rではダミー変数を自分で用意する必要などなく: > group <- c(3, 2, 1, 2) > group <- as.factor(group) > result2 <- lm(D ~ group) > summary(result2) とすれば、これは全く同じ結果が得られることが確認できるでしょう。 ちなみにですが、Rは別に「ダミー変数であると認識する」のではなく、numeric型として読み込まれます。 > class(A) [1] "numeric" > ABCを変換したい変数に選択すると、・・・ 意味が分かりません(^_^;)

関連するQ&A