2017-03-27 3 views
-1

私はこの質問を前に投稿しましたが、私は問題をうまく説明していないと思っていました。私はこれを代わりに掲示しています。これがご迷惑をおかけして申し訳ございません。R:glm(multiple linear regression)はいくつかのプレディクタ変数を無視/削除します

私はあまりにも大きなテーブルを使用していますが、例のデータを提供できないということについて事前にお詫びします。これまで私はいつも私のために働いてきました。だから、私はちょうどあなたのアイデアを問題になるものにしようとしています。しかし、もっと情報を提供できる方法があれば、教えてください。

私は、応答変数と予測変数のテーブルに対応するベクトルを持っています。応答ベクトルは数値で、予測変数(表の列)はバイナリ形式(0と1)です。

私は応答ベクトルと予測因子のテーブルを使用してGLM機能(多変量線形回帰)を実行しています:

fit <- glm(response ~ as.matrix(predictors), na.action=na.exclude) 
coeff <- as.vector(coef(summary(fit))[,4])[-1] 

私は過去に、私は回帰係数のベクトルを抽出することをやっているときそれをさらなる分析に使用する。

回帰は、いくつかの値が欠けている係数のベクトルを返します。本質的に、いくつかの予測変数は、glmによって係数に帰するものではない。しかし、エラーメッセージはありません。

モデルの要約は正常ですが、私が言及したようにいくつかの予測変数がありません。他のほとんどの予測変数にはデータ(係数、p値など)が割り当てられています。行方不明の予測因子は、応答ベクトルによって異なりますが、...

を、 30についての予測は、私は別の応答変数(ベクトル)を使用して試してみました

200上に、モデルから欠落しているが、私は同じ問題を取得しています

何が起こっているかについてのアイデアはありますか?私はこれは、いくつかの変数に0の分散がある場合に起こると思いますが、私はそれをチェックしました。 NA値も欠損値もありません。

glmがいくつかのプレディクタ変数を無視/削除する原因は何ですか?

ご提案は大歓迎です!

編集:削除された予測子は別の予測子と同じ値を持つことがわかりました。それらを保持する方法が残っていなければならず、同じ回帰係数を得る例があります。

+2

同じ値を持つ2つの予測変数がある場合、モデルは複数共線性に悩まされ、推定できません。モデルに適合させる前に、予測子が独立していることを確認する必要があります。 – MrFlick

答えて

1

あなたの編集で、なぜそれらの変数が得られないのかが説明されています。それが私の最初の質問になるだろう。 (この問題は、Rエラーではないため、Cross Validatedの方が良いでしょう。モデルに問題があります)

これらの係数は同じ係数を得ることはできません.1:1の関係を持っていれば、Y = X + e、次に、簡単なモデルY ~ X + Xを適合させます。各Xには、合計が1になるようなANY値が割り当てられます。解決策はありません。 Y = 0.5X + 0.5Xが最もわかりやすいかもしれませんが、Y = 100X -99Xも有効です。

同じ理由で他のプレディクタの線形合計であるプレディクタを持つこともできません。

これらの値が本当に必要な場合は、自分の持つ値から生成できます。しかし、仮定は非常に薄い氷の上にあるので、私はそれをお勧めしません。

+0

ありがとう!それは私の問題を説明します。 – arielle

+0

失われた予測子のほとんどは重複しているようですが、いくつかは重複していません。 「他の予測変数の線形和である予測変数」とはどういう意味ですか? – arielle

+0

X行列のその列は、他の列の線形和によって生成することができます。例えば、ベクトル '(1 1 0)'はベクトル '(1 0 1)'と '(0 -1 1)'で生成できます。 3つすべてが技術的に異なっていても、モデルは3つすべての予測を思いつくことはできません。 (線形モデルは、データを部分空間に効果的に投影しているので、予測子はその部分空間の基礎を形成する必要があります。線形代数) –

関連する問題