2013-10-24 16 views
5

stargazer kullanarak çok değişkenli bir lojistik regresyon modeli tablosu oluşturmaya çalışıyorum. Model katsayıları yerine oranlarını ve güven aralıklarını dahil etmek istiyorum.Stargazer tablosundaki oran oranlarına nasıl güven aralığı ekleyebilirim?

Katsayıları oranlarla nasıl değiştirebileceğimi anladım, bu link sayesinde CI ile aynı sorunları yapıyor. se = *a list of the standard errors or exp(standard errors)* gibi bir stargazer argümanı verirse, CI değerini bu listeden OR +/- 1,96 kez kullanarak hesaplar.

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) 

cevap

6

İlk sütun alt sınır, ikinci sütun ise (stargazer özel güven aralıkları ile bir liste beslemek için ci.custom argüman kullanabilirsiniz üst sınır: İşte

UCLA DAE bazı örnek kod, ilk parçası). Eğer (argümanları kullanarak apply.coef ve apply.ci) değerleri exponentiate ve basitçe katsayıları ve/veya güven aralıkları için bu işlevi uygulamak için kendi fonksiyonunu tanımlayabilirsiniz, Alternatif

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

: senin örnekte, tüm yapmanız gereken çağrıdır :

exponentiate <- function(x) exp(x) 

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

Teşekkürler! 'Stargazer'ın eski bir sürümünü kullanıyordum, bu yüzden' ci.custom' argümanını kaçırdım. Bir tane daha biçimlendirme sorusu sorabilirsem - ci.custom' kullanarak çıktıda, "yıldızlar" standart çıktıyla aynı değildir. Yani, bazı "önemli" sonuçlar yıldızlı değildir. Yıldız argümanlarına baktım ama bu meseleyi ele almıyorlar. Kaybettiğim bir şey mi var? – MC808

+0

Özel p değerleri belirtmek için 'p' argümanını kullanabilirsiniz. İstatistiksel anlamlılık yıldızları hakkındaki kararlar bu değerlere dayanarak yapılır. (Onların yokluğunda, anlamlı yıldızlar mevcut veya örtülü veya açık olarak katsayılar ve standart hatalardan hesaplanacaktır.) Lütfen benim cevabımı 'apply.coef' kullanarak aynı sonucu elde etmenin alternatif bir yolunu içerecek şekilde düzenlediğimi ve 'apply.ci'. – Marek

+1

Bu harika! Örnek kodu cevabınıza ekledim. Ben 'exponentiate' yardımcısını çağırmaktan hoşlanıyorum ama kodunuz bir sebepten dolayı aynı CI'leri üretmiyor. Stargazer (mylogit, coef = liste (OR.vector), ci = T, single.row = T, type = "text") olarak aynı CI'leri üretir. – MC808

8

Bu soruyla ilgili yardım için Marek'e teşekkür ederiz. İşte bu örnekte benim için çalışan kod:

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")