No.04630 Rによる重回帰分析について  【SK】 2007/11/06(Tue) 21:11

初めましてSKと申します。
統計ソフトRを使用して重回帰を行うにあたって質問があります。
現在,欠損値の扱いで困っており,普通にglm()等を使用すると欠損値のある行がまるごと削除され解析されてしまいます。
私としては少なくとも一つ欠損値を持つ行をまるごと削除せずに,欠損部分だけを削除して(抜かして)重回帰をしたいのですが,そのようなことは可能でしょうか?また独立変数の中にはカテゴリカル変数も混ざっています。

どなたか助けていただけると幸いです。よろしくお願いします。

No.04631 Re: Rによる重回帰分析について  【青木繁伸】 2007/11/06(Tue) 21:50

> 少なくとも一つ欠損値を持つ行をまるごと削除せずに,欠損部分だけを削除して(抜かして)重回帰をしたいのですが,そのようなことは可能でしょうか?

できないことはないですが,そのようなことをしている例はみたことがないです。
欠損値を補完して分析することを考える方が良いかも(しかしそれも程度問題)

> また独立変数の中にはカテゴリカル変数も混ざっています。

カテゴリー変数をfactorにしておけば,lm は自動的に処理してくれます。

以下を参照
AirPassengers <- as.vector(AirPassengers) # 旅客数
Month=factor(month.abb,levels=month.abb) # 月
x=seq(length(AirPassengers)) # 時間変数
df <- data.frame(AirPassengers, Month, x) # データフレーム
ans <- lm(AirPassengers ~ Month+x, df) # 重回帰分析
summary(ans) # 結果の表示

No.04632 Re: Rによる重回帰分析について  【SK】 2007/11/06(Tue) 23:30

青木様

早い回答ありがとうございます。

>カテゴリー変数をfactorにしておけば,lm は自動的に処理してくれます。

カ テゴリー変数をfactorで置き換えるという作業はできています。すいません言葉足らずでした。つまりカテゴリー変数だと,多重代入法等で欠損値を埋め るということができないのかな,と思ったため文末に書かせていただきました。誤解を招いてしまい申し訳ありません。また多重代入法についても最近知ったば かりですので間違った捉え方をしていたらすいません。


>できないことはないですが,そのようなことをしている例はみたことがないです。

確かに,調べた限りでは私も見つけることができませんでした。
た だ今のところ唯一,「RとS-PLUSによる多変量解析 B.エヴェリット著」という本で欠損値だけを削除して(抜いて),行まるごとは削除しない,ということをやろうとしていたので(ただし,本のとおりにやっ ても行ごと削除されるため筆者のミスの可能性があります…?na.action=na.omitで欠損値だけ削除はできませんよね?),そういう発想自体 は間違ってないのかなぁ,と。

>欠損値を補完して分析することを考える方が良いかも(しかしそれも程度問題)

補完かどう かわかりませんが,今欠損値になっている欄にはNAの代わりに適当なカテゴリー変数を与えて,重回帰はやってみました。ただやはり欠損値が多すぎる項目に ついてはNA値の代わりに与えたカテゴリー変数が邪魔でクリアな結果になっていない気もするので…。ちなみにデータ数はエクセルの下限65000個くらい は超えてしまいますので,欠損値も膨大な数です…。かといって欠損値を持つ行をまるごと削除はしたくないので…。

もし欠損値だけを抜く方法を知っておいででしたらご教授願えないでしょうか?

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