2017-01-14 8 views
0

私はRでDiDモデルを設定しようとしています。私はベースラインフェーズと治療グループを持っています。私はモデルのベースラインと年齢のフルエンスを考慮しようとしています。そこで私は2つのダミー変数を作成しました。予想通り、年齢、すべてなしR - DiD(DIfferenceの相違)モデル

young <- Shower_data$Age %in% c("20-29", "30-39") 
old <- Shower_data$Age %in% c("40-49", "50-64", "65+") 

Shower_data$young_pos <- ifelse(Shower_data$young>0, 1, 0) 
Shower_data$young_neg <- ifelse(Shower_data$young<=0, 1, 0) 

Shower_data$young_pos <- 1 
Shower_data$young_pos [ old ] <- 0 
Shower_data$young_neg <- 0 
Shower_data$young_neg [ old ] <- 1 

#Create a model that considers the baseline and age 
model4 <- lm(Volume ~ (Shower + dummy_phase * dummy_exp_group) * (young_pos + young_neg), data = Shower_data) 
summary(model4) 

は行きましたが、私は年齢を追加するとき、私は唯一のyoung_pos変数のためではなくyoung_negの結果を取得します。あなたはここで見ることができるように:

#Coefficients: (5 not defined because of singularities) 
#            Estimate Std. Error t value Pr(>|t|)  
#(Intercept)         45.07006 1.65499 27.233 < 2e-16 *** 
#Shower           -0.04725 0.00819 -5.769 8.09e-09 *** 
#dummy_phase         -5.35647 1.72401 -3.107 0.00189 ** 
#dummy_exp_grouptreatment      -9.33660 1.95433 -4.777 1.79e-06 *** 
#young_pos          8.11264 2.78459 2.913 0.00358 ** 
#young_neg           NA   NA  NA  NA  
#dummy_phase:dummy_exp_grouptreatment   6.23700 2.06968 3.014 0.00259 ** 
#Shower:young_pos        0.07690 0.01361 5.652 1.61e-08 *** 
#Shower:young_neg          NA   NA  NA  NA  
#dummy_phase:young_pos       -1.38223 2.87629 -0.481 0.63084  
#dummy_phase:young_neg        NA   NA  NA  NA  
#dummy_exp_grouptreatment:young_pos    1.94658 3.19773 0.609 0.54271  
#dummy_exp_grouptreatment:young_neg     NA   NA  NA  NA  
#dummy_phase:dummy_exp_grouptreatment:young_pos 2.56634 3.39298 0.756 0.44944  
#dummy_phase:dummy_exp_grouptreatment:young_neg  NA   NA  NA  NA 

だけNAこの変数の中を見ることができるように。おかげ

+0

私の推測では、たくさんのデータ( '#...(特異点のために定義されていません)')...)... –

+0

あなたのデータを見ることなく伝えるのは難しいですが、 young_neg変数とyoung_pos変数が互いの画像を鏡像化しているので、1が1に等しいときはいつでも、もう1つはゼロであり、その逆もあります。これは、young_neg変数を含むパラメータを決して推測できないという事実と一貫しています。 – gfgm

答えて

1

はあなたのコードのこの部分を見てください:

Shower_data$young_pos <- 1 
Shower_data$young_pos [ old ] <- 0 
Shower_data$young_neg <- 0 
Shower_data$young_neg [ old ] <- 1 

ベクトルyoung_pos0 sおよび1秒を含んでいます。ベクトルyoung_neg0sと1も含みます。しかし、一方のベクトルは他方のベクトルと正反対です。従って、両方のベクトルはと同じの情報をコードし、モデルはそれらのうちの1つに対する効果しか推定することができない。

関連する問題