Как получить прогнозируемую вероятность в R, но используя настройки Stata по умолчанию? - PullRequest
0 голосов
/ 29 апреля 2019

Я использовал функции glm() и predict(), чтобы получить прогнозируемую вероятность для каждого респондента. Мне было интересно, как вместо этого использовать стандартную настройку Stata для среднего предельного эффекта (AME), а не среднее значение для получения вероятности.

В частности, я пытаюсь воспроизвести процентное значение, полученное другим исследователем, но он использует Stata вместо R . Он ответил по электронной почте:

" ... Модели запускались с настройками Stata по умолчанию для logit (другие переменные были установлены на AME, а не на средние значения). Оценочные вероятности были получены из тех же моделей с использованием команды margins Stata ... "

Вот код, который я пробовал:

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() из пакета полей, который импортирует уникальные функции Stata в R . Я предполагаю, что мой вопрос на самом деле заключается в том, как использовать функцию margins() в R , чтобы получить вероятность так же, как я обычно использовал бы predict().

1 Ответ

1 голос
/ 29 апреля 2019

По умолчанию Stata для команды 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

Обратите внимание, что здесь используется команда *1009*, внесенная сообществом rsource, которая может запускать R из Stata, используя исходный файл R и / или встроенный код R .

...