簡體   English   中英

用Stargazer或其他包裝在Knitr中呈現Zelig Logistic回歸

[英]Presenting Zelig Logistic Regression in Knitr with Stargazer or Other Package

除了邏輯回歸之外,Stargazer似乎占用了大多數Zelig模型對象:

m1 <- zelig(voted ~ . - weight_full - by,
        weights = mydata$weight_full,
        data=mydata,
        model="logit",
        cite = FALSE)

我從以上代碼收到以下警告:

# Error in envRefInferField(x, what, getClass(class(x)), selfEnv)  
# ‘result’ is not a valid field or method name for reference class “Zelig-logit”

任何人都可以使用Knitr在回歸輸出表中顯示這樣的模型來生成.tex / .Rnw文件嗎?

這可能為時已晚,但解決方案是使用來自基礎R的glm()重新估計模型。以下代碼適用於我,使用Zelig的新引用類語法估計的邏輯回歸。

mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")
model1 <- zlogit$new()
model1$zelig(admit ~ gpa,
             data=mydata)
library(stargazer)
stargazer(glm(model1$zelig.out$z.out[[1]], family=binomial(link = "logit")))

使用Zelig估計線性回歸時,相同的策略也可行。

基於Constantin的有用答案,我創建了一個簡單的函數unzelig來獲取glm zelig對象並返回一個傳統的glm對象:

# extract data + model + family zelig object, return glm object
unzelig <- function(zelig_model) {
  z_out <- zelig_model$zelig.out$z.out[[1]]
  z_family <- z_out[["family"]][["family"]]

  # when zelig(model = 'ls') assign family <- "gaussian"
  if(is.null(z_family)) {z_family <- "gaussian"}

  glm(z_out, 
      family = z_family) 
  }

# simple example
z1 <- zelig(mpg ~ cyl, model = 'ls', data = mtcars, cite = FALSE)
z2 <- zelig(I(mpg > 15) ~ cyl, model = 'logit', data = mtcars, cite = FALSE)
z3 <- zelig(as.integer(mpg) ~ cyl, model = 'poisson', data = mtcars, cite = FALSE)

g1 <- unzelig(z1)
g2 <- unzelig(z2)
g3 <- unzelig(z3)

stargazer(g1, g2, g3, type = 'text')  

# error check 
g1 <- glm(mpg ~ cyl, data = mtcars)
g2 <- glm(I(mpg > 15) ~ cyl, family = binomial, data = mtcars)
g3 <- glm(as.integer(mpg) ~ cyl, family = poisson, data = mtcars)

stargazer(g1, g2, g3, type = 'text')  

此外,還有一個開發中的函數,可以使用命令to_zelig將一些非Zelig對象轉換為Zelig友好對象。 這將允許使用標准R函數(如lmglm估計模型,使用stargazer或其他包生成表,然后將對象轉換為使用像setxsim這樣的Zelig函數。 在此處查看更多信息: http//docs.zeligproject.org/reference/to_zelig.html

Zelig軟件包現在包含一個便利功能,可以輕松提取適合的模型對象:

stargazer(from_zelig_model(m1))

應該產生預期的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM