2013-10-24 12 views
5

Próbuję utworzyć tabelę wielowymiarowego modelu regresji logistycznej, używając stargazer. Chciałbym włączyć współczynniki prawdopodobieństwa i ich przedziały ufności zamiast współczynników modelu.Jak dodać przedziały ufności do ilorazów szans w tabeli wróżb?

Wymyśliłem, jak zastąpić współczynniki z ilorazami szans, dzięki temu link, ale robi to samo z CI tworzy problemy. Jeśli podam stargazer, taki argument jak se = *a list of the standard errors or exp(standard errors)*, oblicza CI za pomocą OR +/- 1,96 razy tej listy, co jest nieprawidłowe.

Oto niektóre przykładowy kod, pierwsza część z UCLA DAE:

library(stargazer) 
mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv") 
mydata$rank <- factor(mydata$rank) 
mylogit <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial") 
summary(mylogit) 

# Table with coefficients 
stargazer(mylogit, ci = T, single.row = T, type = "text") 

# Table with Odds Ratios, but the CI is not right 
OR.vector <- exp(mylogit$coef) 
stargazer(mylogit, coef = list(OR.vector), ci = T, single.row = T, type = "text") 

# Correct CIs 
CI.vector <- exp(confint(mylogit)) 
cbind(OR = OR.vector, CI.vector) 

Odpowiedz

6

Można użyć ci.custom argumentu karmić stargazer listę z przerwami zwyczaj ufności (pierwsza kolumna jest dolna granica, druga kolumna jest górna granica). W przykładzie, wszystko co musisz zrobić to zadzwonić:

stargazer(mylogit, coef = list(OR.vector), ci = T, 
ci.custom = list(CI.vector), single.row = T, type = "text") 

Alternatywnie, można zdefiniować własną funkcję do exponentiate wartości i po prostu zastosować tę funkcję do swoich współczynników i/lub przedziałów ufności (używając argumentów apply.coef i apply.ci) :

exponentiate <- function(x) exp(x) 

stargazer(mylogit, ci=T, apply.coef=exponentiate, apply.ci=exponentiate, 
single.row = T, type="text") 
+0

Dzięki! Używałem starej wersji 'stargazer', więc przegapiłem argument' ci.custom'. Jeśli mogę zadać jeszcze jedno pytanie o formatowanie - w wyjściu za pomocą 'ci.custom'," gwiazdki "nie są takie same jak dla standardowego wyjścia. Oznacza to, że niektóre "znaczące" wyniki nie są oznaczone gwiazdką. Spojrzałem na argumenty gwiazdy, ale wydaje się, że nie rozwiązują tego problemu. Czy jest coś, czego mi brakuje? – MC808

+0

Możesz użyć argumentu 'p', aby określić niestandardowe wartości p. Decyzje o gwiazdach istotności statystycznej są podejmowane na podstawie tych wartości. (W przypadku ich braku, gwiazdy znaczenia będą obliczane na podstawie dostępnych - pośrednio lub bezpośrednio - współczynników i błędów standardowych.) Należy zauważyć, że zredagowałem swoją odpowiedź, aby objąć alternatywny sposób osiągnięcia tego samego wyniku za pomocą 'apply.coef' oraz 'apply.ci'. – Marek

+1

To jest wspaniałe! Dodałem przykładowy kod do twojej odpowiedzi. Naprawdę lubię wywoływać pomocnik 'potęgowania ', ale z jakiegoś powodu twój kod nie tworzy tych samych elementów CI. Tworzy te same elementy CI co 'stargazer (mylogit, coef = list (OR.vector), ci = T, single.row = T, type =" text ")' – MC808

8

Dziękuję Markowi za pomoc w tym pytaniu. Oto kod, który zadziałał dla mnie w tym przykładzie:

library(stargazer) 
mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv") 
mydata$rank <- factor(mydata$rank) 
mylogit <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial") 
summary(mylogit) 

# Table with coefficients 
stargazer(mylogit, ci = T, single.row = T, type = "text") 

OR.vector <- exp(mylogit$coef) 
CI.vector <- exp(confint(mylogit)) 
p.values <- summary(mylogit)$coefficients[, 4] 

# Table with ORs and CIs 
stargazer(mylogit, coef = list(OR.vector), ci = T, 
      ci.custom = list(CI.vector), p = list(p.values), 
      single.row = T, type = "text") 
Powiązane problemy