私はRで単純な線形回帰モデルを実行しようとしています。Rの線形回帰を行うとき、条件付きで因子のNA観測を落とす方法はありますか?
モデルに3つの要因変数があります。
モデルは「行使」は数値従属変数、時間の量、運動である
lm(Exercise ~ Econ + Job + Position)
です。
"Econ"、 "Job"、 "Position"はすべて要因変数です。
「Econ」は、雇用者であるかどうかを表します。 (レベル=雇用/未雇用)
「ジョブ」は、職種です。この変数には5つのレベルがあります。
「位置」とは、職場にいる人の位置です。この変数には5つのレベルもあります。
私がもし「イーコンは」「失業者」、「仕事に等しいため、このエラーは、要因のレベルにNAが原因だと思う線形回帰を実行しようとしましたとエラーを得た、
"contrasts can be applied only to factors with 2 or more levels"
「位置」にはNA値があります。 (明らかに、失業者には仕事の種類や仕事の位置がありません)
以下のように別々に2モデルを回帰すると、エラーは発生しません。
lm(Exercise ~ Econ)
lm(Exercise ~ Job + Position)
はしかし、私は必要に応じて自動的に変数を使用することができる一つのモデル、および1つの結果テーブルが欲しいです。したがって、「Econ」が「雇用」の場合、「ジョブ」、「位置」変数が回帰に使用されます。 "Econ"が "unemployed"の場合、 "Job"、 "Position"変数は自動的にモデルから削除されます。
代わりに2つのモデルの一つのモデルは、モデル内のすべての変数を入れている私が欲しい理由は、私が
場合は、「採用」している人々の間で「イーコン」(採用や失業者)の効果を見ることができますIただ回帰
lm(Exercise ~ Job + Position)
私は雇用の影響を知らない。
"Job"と "Position"のすべてのNA値に対して0 = '失業率'を設定する解決策を考えましたが、これが問題を解決するかどうかわからないので、これがマルチ共線性問題につながる可能性があります。
他の要因変数に基づいてNA観測値を自動的に/条件付きで削除する方法はありますか?
以下は私の再現可能な例です。私が欲しいもの
ここExercise <- c(50, 30, 25, 44, 32, 50 ,22, 14)
Econ <- as.factor(c(1, 0, 1, 1, 0, 0, 1, 1))
# 0 = unemployed, 1 = employed
Job <- as.factor(c("A", NA, "B", "B", NA, NA, "A", "C"))
Position <- as.factor(c("Owner", NA,"Employee", "Owner",
NA, NA, "Employee", "Director"))
data <- data.frame(Exercise, Econ, Job, Position)
str(data)
lm(Exercise ~ Econ + Job + Position)
lm(Exercise ~ Econ)
lm(Exercise ~ Job + Position)
は、最初のモデルのLM(運動〜イーコン+仕事+ポジション)ですが、すべてのイーコン= 0(無職)のために、仕事やポジション値がNAであるので、私は、エラーを取得します。
「lm_model < - lm(Exercise〜Econ + Job + Position)」のように間違って設定している可能性がありますか? –
ありがとうございました。それはちょうどここに書いて間違いだった..私は正しくRでコードを書いていたので、そうではない... –
再現可能な例を提供しようとする... – Christoph