Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使R中不在扫帚中的模型的输出保持整洁_R_Ggplot2_Tidyr_Broom - Fatal编程技术网

如何使R中不在扫帚中的模型的输出保持整洁

如何使R中不在扫帚中的模型的输出保持整洁,r,ggplot2,tidyr,broom,R,Ggplot2,Tidyr,Broom,我一直在努力使wfe模型的输出整洁,以便可以轻松地将其合并到ggplot等中。这是我遇到的一个问题,其他包和统计模型没有包含在broom中 假设我创建了这样一个数据集:(取自wfe的文件): 我理解,但我不确定如何解决。我尝试将各个参数(系数、se等)映射到一个新的列表对象中,但没有成功,因此我希望这里的人知道一种更系统的方法。 如果有帮助,下面是输出的dput: 谢谢 这里是一个tidy方法的开始: 库(dplyr);图书馆(tibble) tidy.wfedd%集合名(c(“估计”、“标准错

我一直在努力使
wfe
模型的输出整洁,以便可以轻松地将其合并到ggplot等中。这是我遇到的一个问题,其他包和统计模型没有包含在broom中

假设我创建了这样一个数据集:(取自
wfe
的文件):

我理解,但我不确定如何解决。我尝试将各个参数(系数、se等)映射到一个新的列表对象中,但没有成功,因此我希望这里的人知道一种更系统的方法。 如果有帮助,下面是输出的dput:


谢谢

这里是一个
tidy
方法的开始:

库(dplyr);图书馆(tibble)
tidy.wfedd%集合名(c(“估计”、“标准错误”、“统计”、“p.value”))
%>%TIBLE::行名称到列(“术语”)
%>%作为_tible()
)
返回(cc)
}

请注意,(1)我还没有实现置信区间(您可以通过使用
mutate
来添加列
(conf.low,conf.high)
=
术语
±
std.error*qnorm((1+conf.level)/2)
;(2)这使标准变得“整洁”方法,它给出了一个系数表。如果您想要预测和预测的置信区间,您需要编写一个
增强
方法…

这里是一个
整洁
方法的开始:

library(dplyr);library(tibble)
tidy.wfedd%集合名(c(“估计”、“标准错误”、“统计”、“p.value”))
%>%TIBLE::行名称到列(“术语”)
%>%作为_tible()
)
返回(cc)
}

请注意,(1)我还没有实现置信区间(您可以通过使用
mutate
来添加列
(conf.low,conf.high)
=
术语
±
std.error*qnorm((1+conf.level)/2)
;(2)这使标准变得“整洁”方法,它给出了一个系数表。如果你想要预测和预测的置信区间,你需要写一个
augment
method…

免责声明-我还没有使用wfe软件包!通常,大多数统计软件包都会附带它们的预测方法。这意味着当你使用
predict(model)时
您将获得一个包含绘图所需数据的对象。例如@tjebo,我也不熟悉wfe包。提供来自
dput(mod.did)
的输出将帮助他和我这样的人帮助您。我的建议是编写您自己的
tidy()
函数(然后可能将其提交给
broom
)的维护人员。原则上这并不困难。在我之前的评论中添加-
wfe
,在这种情况下并不能为生成的
wfedid
类提供预测方法。可能直接询问包维护人员-谢谢-我为dput添加了一个pastebin链接(mod.did)输出。可能这有助于解释器-我还没有使用wfe软件包!通常,大多数统计软件包都会附带其预测方法。这意味着当您使用
predict(model)时
您将获得一个包含绘图所需数据的对象。例如@tjebo,我也不熟悉wfe包。提供来自
dput(mod.did)
的输出将帮助他和我这样的人帮助您。我的建议是编写您自己的
tidy()
函数(然后可能将其提交给
broom
)的维护人员。原则上这并不困难。在我之前的评论中添加-
wfe
,在这种情况下并不能为生成的
wfedid
类提供预测方法。可能直接询问包维护人员-谢谢-我为dput添加了一个pastebin链接(mod.did)输出。也许这有帮助。这很好。更重要的是,当这种情况再次发生时,iIalso也了解问题的原因。非常感谢!(请随意在此处添加:,它可能会帮助其他人)。这很好。更重要的是,iIalso也了解这种情况再次发生时问题的原因。非常感谢!(请随意在此处添加:,它可能会帮助其他人)
library (wfe)
        ## generate panel data with number of units = N, number of time = Time
    N <- 10 # number of distinct units
    Time <- 15 # number of distinct time
    
    ## treatment effect
    beta <- 1
    
    ## generate treatment variable
    treat <- matrix(rbinom(N*Time, size = 1, 0.25), ncol = N)
    ## make sure at least one observation is treated for each unit
    while ((sum(apply(treat, 2, mean) == 0) > 0) | (sum(apply(treat, 2, mean) == 1) > 0) |
           (sum(apply(treat, 1, mean) == 0) > 0) | (sum(apply(treat, 1, mean) == 1) > 0)) {
      treat <- matrix(rbinom(N*Time, size = 1, 0.25), ncol = N)
    }
    treat.vec <- c(treat)
    
    ## unit fixed effects
    alphai <- rnorm(N, mean = apply(treat, 2, mean))
        ## geneate two random covariates
    x1 <- matrix(rnorm(N*Time, 0.5,1), ncol=N)
    x2 <- matrix(rbeta(N*Time, 5,1), ncol=N)
    x1.vec <- c(x1)
    x2.vec <- c(x2)
    ## generate outcome variable
    y <- matrix(NA, ncol = N, nrow = Time)
    for (i in 1:N) {
      y[, i] <- alphai[i] + treat[, i] + x1[,i] + x2[,i] + rnorm(Time)
    }
    y.vec <- c(y)
    
    ## generate unit and time index
    unit.index <- rep(1:N, each = Time)
    time.index <- rep(1:Time, N)
    
    Data.obs <- as.data.frame(cbind(y.vec, treat.vec, unit.index, time.index, x1.vec, x2.vec))
    colnames(Data.obs) <- c("y", "tr", "unit", "time", "x1", "x2")
    mod.did <- wfe(y~ tr+x1+x2, data = Data.obs, treat = "tr",
               unit.index = "unit", time.index = "time", method = "unit",
               qoi = "ate", estimator ="did", hetero.se=TRUE, auto.se=TRUE,
               White = TRUE, White.alpha = 0.05, verbose = TRUE)

## summarize the results
summary(mod.did)
Error: No tidy method for objects of class wfedid