1

R で 'glm' を実行すると、'gender' 変数の末尾に M (男性) が付きます。それは特別な意味を持っていますか、それとも私のコードに何か問題がありますか

>as.formula('response ~ gender + age + var1 +var2+var3+var4')
  response ~ gender + age + var1 + var2 + var3 + var4
>model <- try(glm(formula = fmla,   na.action=na.exclude , data = tmpData));
>summary(model) 
>    

                           Estimate Std. Error t value Pr(>|t|)    
(Intercept)                   27.5192512  0.7215193  38.141  < 2e-16 ***
genderM                       -3.1572328  0.3952508  -7.988 1.87e-15 ***
age                            0.0078203  0.0139269   0.562   0.5745    
var1                          -0.0007449  0.0004484  -1.661   0.0968 .  
var2                           0.0284026  0.0017356  16.365  < 2e-16 ***
var3                           0.0007293  0.0005172   1.410   0.1586    
var4                           0.0854644  0.0418632   2.042   0.0413 *  
4

3 に答える 3

1

これは、性別を因子として定義したためです ( の出力を確認してくださいclass(gender))。glm()は、基準水準 ( の最初のもの) 以外の因子の各水準をlevels(gender)モデルのダミー二分変数 (0 または 1) として扱い、それぞれの回帰係数を出力します。

因子に n レベルがある場合、n-1 個のダミー変数があります。因子に 2 つのレベルしかない場合 (おそらくそうであるように)、ダミー変数は 1 つしか得られず、係数は数値の 0 または 1 変数がある場合と同じになります。

于 2013-01-16T22:59:50.900 に答える
0

あたかもダミーの 0-1 変数を持っているかのように、1 は存在を表しますgender(Mおそらく 0 は を表しますF)。つまり、他の変数を考慮に入れるとgender、値を取る場合の応答は、 を持つM 場合の応答の約 3 倍になるということFです。

この例を試してください

require(reshape)
mdata <- melt(UCBAdmissions) 
glm(mdata$value ~ mdata$Gender + mdata$Admit + mdata$Dept)

そして、あなたは似たようなものを手に入れるでしょう。mdata$DeptB およびその他の部門の値は、ベース ポジションの との差ですDeptA

于 2013-01-16T22:57:59.570 に答える
0

contrasts()線形モデルの各変数に使用されるコントラスト係数は、関数を使用して表示および変更できるコントラスト属性によって決定されます。

require(reshape)
mdata <- melt(UCBAdmissions)
contrasts(mdata$Gender)
glm(mdata$value ~ mdata$Gender + mdata$Admit + mdata$Dept)
contrasts(mdata$Gender) <- c(-0.5, 0.5) # Use "deviation coding" instead
glm(mdata$value ~ mdata$Gender + mdata$Admit + mdata$Dept)

順序付けられていない因子のデフォルトのコントラスト コーディングは、処理コントラスト/ダミー コーディングです。これらのタイプのコントラスト コーディングの違いがよくわからない場合は、stats.stackexchange.comを参照してください。

于 2013-01-16T23:12:18.490 に答える