R

r中比例數據的GLM [關閉]

  • March 12, 2014

我有 500 個組織中女性員工比例的比例數據。我想使用 GLM 來使用其他自變量(例如公司規模、行業等)來解釋這個因變量。我在 Stata 中使用了 GLM 回歸,如此處推薦

stata 模型如下所示:

glm PercentageFemale othervariables, link(logit) family(binomial) robust nolog

但是,當我嘗試在 RI 中復制我的結果時,會得到不同的結果。我在 R 中的模型如下所示:

fitglm <- glm (formula = cbind(Successes, Failures) ~ other variables, family = binomial)

successes公司的女性人數和男性人數分別在哪裡failures。我知道我不能像在 Stata 中那樣直接在 R 中使用百分比,所以我使用了cbind. 我嘗試使用glmrobust,但出現錯誤說系統完全是單一的。

關於如何在 R 中復制我的 Stata 結果的任何想法?cbind當我在 R 中使用時,我做錯了什麼嗎?

Stata 命令將顯示錯誤,因為glm使用的語句指定了邏輯回歸,結果為 1/0。您應該會看到一條錯誤消息“注意:PercentageFemale 具有非整數值。 ”但是,您的 R 命令已正確指定。

由於您沒有提供數據,讓我們從 R 中的一個可複制示例開始:

library(MASS)
data(menarche)
out <- glm(cbind(Menarche, Total-Menarche) ~ Age,
          family=binomial(logit), data=menarche)
summary(out)

# Export into Stata data
library(foreign)
write.dta(menarche, "c:\\temp\\menarche.dta")

結果是:

[PRINTOUT SNIPPED FOR SPACE]

   Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept) -21.22639    0.77068  -27.54   <2e-16 ***
Age           1.63197    0.05895   27.68   <2e-16 ***
---

[PRINTOUT SNIPPED FOR SPACE]

現在,在 Stata 中復制它。首先讓我們得到錯誤:

gen pm = Menarche / Total
glm pm Age, link(logit) family(binomial)

結果:

. glm pm Age, link(logit) family(binomial)
note: pm has noninteger values  

[SNIPPED FOR SPACE]   
                                                  AIC             =  .5990425
Log likelihood   = -5.488031242                    BIC             = -73.81271

------------------------------------------------------------------------------
            |                 OIM
         pm |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
        Age |   1.608169   .6215021     2.59   0.010      .390047    2.826291
      _cons |  -20.91168   8.111063    -2.58   0.010    -36.80907   -5.014291
------------------------------------------------------------------------------

結果不同意。還要注意第 2 行的錯誤消息。

要讓 Stata 與您的數據集格式對話,請使用blogit. 請注意,在 R 中,它是yes 的數量和no 的數量;在Stata中,它是yes的數量,然後是總數:

blogit Menarche Total Age

以下是 R 的結果:

Logistic regression for grouped data              Number of obs   =       3918
                                                 LR chi2(1)      =    3667.18
                                                 Prob > chi2     =     0.0000
Log likelihood = -819.65237                       Pseudo R2       =     0.6911

------------------------------------------------------------------------------
   _outcome |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
        Age |   1.631968   .0589532    27.68   0.000     1.516422    1.747514
      _cons |  -21.22639   .7706859   -27.54   0.000    -22.73691   -19.71588
------------------------------------------------------------------------------

引用自:https://stats.stackexchange.com/questions/89734

comments powered by Disqus