如何使用Stata的默认设置获得R中的预测概率?

时间:2019-04-29 02:26:37

标签: r stata

我一直在使用glm()predict()函数来获取每个受访者的预计概率。我想知道如何才能将Stata的默认设置用于平均边际效应(AME)而不是平均值来获得概率。

具体来说,我正在尝试复制另一位研究人员获得的百分比值,但他使用的是Stata而不是 R 。 他在一封电子邮件中回答:

  

...这些模型使用默认的Loga Stata设置运行(其他变量设置为AME而不是平均值)。估计的概率来自使用Stata的margins命令的相同模型 ...”

这是我尝试过的代码:

mylogit3<-glm(candidatebinary~educated+partybinary+marriagebianry+age+gender+childscaler+domscale+imscale+rrscale+econscale+ideologyscale,data=informedvoters,family="binomial")  

prob=predict(mylogit3,informedvoters,type="response")

我还尝试了margins软件包中的margins(),该软件包将Stata的独特功能导入到 R 中。我想我的问题确实是如何像我通常使用margins()一样,使用 R 中的predict()函数来获得概率。

1 个答案:

答案 0 :(得分:1)

margins命令的状态默认值是使用协变量的实际值进行预测,然后取平均值。例如:

/* Stata Code */

sysuse auto, clear
(1978 Automobile Data)

export delimited mpg foreign using "~/Desktop/cars.csv", replace
file /Users/dimitriy/Desktop/cars.csv saved

// Logit and predictions

quietly logit foreign mpg, nolog

margins

Predictive margins                              Number of obs     =         74
Model VCE    : OIM

Expression   : Pr(foreign), predict()

------------------------------------------------------------------------------
             |            Delta-method
             |     Margin   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
       _cons |   .2972973   .0487662     6.10   0.000     .2017172    .3928773
------------------------------------------------------------------------------

/* R equivalent */

rsource, terminator(END_OF_R)
Assumed R program path: "/usr/local/bin/R"

Beginning of R output
>         library(foreign)
>         cars<-read.csv("~/Desktop/cars.csv")
>         logit<-glm(foreign~mpg,data=cars, family="binomial")
>         (margins<-mean(logit$fit))
[1] 0.2972973

请注意,此处使用了社区贡献命令rsource,该命令可以使用 R 从Stata内部运行 R 源文件和/或内联 R 代码。