Как запустить модель логита с фиксированными эффектами с кластерными стандартными ошибками и весами обследования в R? - PullRequest
0 голосов
/ 30 апреля 2019

Я использую данные опроса Афробарометр, используя 2 раунда данных для 10 стран. Мой DV является двоичной переменной 0-1. Мне нужно использовать логистическую регрессию, фиксированные эффекты, кластерные стандартные ошибки (в стране) и взвешенные данные опроса. Переменная для весов уже существует в кадре данных.

Я искал файлы справки для следующих пакетов: clogit, glm, pglm, glm2, zelig, bife и т. Д. К типичным ошибкам относятся: нельзя добавлять веса, нельзя делать фиксированные эффекты, не могу сделать ни то, ни другое или др.


#Glm 

t3c1.fixed <- glm(formula = ethnic ~ elec_prox + 
elec_comp + round + country, data=afb, 
weights = afb$survey_weight, 
index c("country", "round"), 
family=binomial(link='logit'))

#clogit 

t3c1.fixed2 <- clogit(formula = ethnic ~ elec_prox + 
elec_comp + round + country, data=afb, 
weights = afb$survey_weight, 
method=c("within"))


#bife attempt 

library(bife)
t3c1.fixed3 <- bife(ethnic ~ elec_prox + elec_comp + round + 
country, model = logit,data=afb, 
weights = afb$survey_weight, 
bias_corr = "ana")

Я либо получаю сообщения об ошибках, либо код не включает одно из условий, которое мне нужно включить, поэтому я не могу их использовать. В Stata кажется, что этот процесс очень прост, но в R он кажется довольно утомительным. Любая помощь будет оценена!

1 Ответ

0 голосов
/ 30 апреля 2019

Я бы посмотрел пакет survey, в котором есть все, о чем вы просите. Первым шагом является создание объекта опроса, указание веса опроса, а затем вы отправляетесь в гонки.

library(survey)
my_survey <- svydesign(ids= ~1, strata = ~country, wts = ~wts, data = your_data)

# Then you can use the survey glm to do what you want via

svy_fit <- svy_glm(ethnic ~ elec_prox + 
elec_comp + round + country, data = my_survey, family = binomial())

Или, по крайней мере, я бы пошел по этому пути, если вы используете данные опросов.

...