gpt4 book ai didi

r - 使用 texreg (或类似的)为聚类标准误差函数 (cl) 输出生成回归表

转载 作者:行者123 更新时间:2023-12-02 08:14:29 24 4
gpt4 key购买 nike

我一直在使用优秀的包texreg从拟合模型对象生成LaTeX就绪回归表,但它似乎与调整聚类标准误差的各种函数不兼容。下面给出了一些虚假数据和代码的示例和错误消息。

关于如何获得我想要的输出(类似于我从 texreg 获得的输出)有什么想法吗?

x  = rnorm(1000)
IDs = ceiling(seq(from = .1, to = 10,length.out=1000))
s = c(rep(rnorm(1),100),rep(rnorm(1),100),rep(rnorm(1),100),rep(rnorm(1),100),rep(rnorm(1),100),rep(rnorm(1),100),rep(rnorm(1),100),rep(rnorm(1),100),rep(rnorm(1),100),rep(rnorm(1),100))
y = 3*x + 1.5^(IDs)*rnorm(n=1000,sd=s^2)*x + rnorm(1000)*.3
IDs = as.factor(IDs)
d = data.frame(x,IDs,y)
m = lm(y~IDs+x,data=d)
summary(m)

library(texreg)
texreg(m,omit.coef="IDs")

\begin{table}
\begin{center}
\begin{tabular}{l c }
\hline
& Model 1 \\
\hline
(Intercept) & $0.12$ \\
& $(4.50)$ \\
x & $5.28^{***}$ \\
& $(1.41)$ \\
\hline
R$^2$ & 0.02 \\
Adj. R$^2$ & 0.01 \\
Num. obs. & 1000 \\
\hline
\multicolumn{2}{l}{\scriptsize{\textsuperscript{***}$p<0.001$,
\textsuperscript{**}$p<0.01$,
\textsuperscript{*}$p<0.05$}}
\end{tabular}
\caption{Statistical models}
\label{table:coefficients}
\end{center}
\end{table}

cl <- function(dat,fm, cluster){
cluster = as.numeric(cluster)
attach(dat, warn.conflicts = F)
library(sandwich)
library(lmtest)
M <- length(unique(cluster))
N <- length(cluster)
K <- fm$rank
dfc <- (M/(M-1))*((N-1)/(N-K))
uj <- apply(estfun(fm),2, function(x) tapply(x, cluster, sum));
vcovCL <- dfc*sandwich(fm, meat=crossprod(uj)/N)
coeftest(fm, vcovCL) }

result = cl(d,m,IDs)
texreg(result,omit.coef="IDs")

Error in (function (classes, fdef, mtable) : unable to find an inherited method for function ‘extract’ for signature ‘"coeftest"’

最佳答案

软件包 vignette 的第 5.5 节提供了一个解决方案。该包 vignette 作为文章发表在《统计软件杂志》上。可以在这里找到:http://www.jstatsoft.org/v55/i08/ .

更具体地说,必须从结果矩阵中提取稳健的标准误差和p值,并通过override.se移交给texreg code> 和 override.pval 参数:

se <- result[, 2]
pval <- result[, 4]
screenreg( # display the results in the R console
m,
omit.coef = "IDs",
override.se = se,
override.pval = pval
)
texreg( # for LaTeX output
m,
omit.coef = "IDs",
override.se = se,
override.pval = pval
)

另一种方法是从原始模型中提取系数,将它们保存到 texreg 对象中,操作该对象,然后将其交给 texreg功能:

tr <- extract(m)
tr@pvalues <- result[, 4]
tr@se <- result[, 2]
screenreg(tr) # or texreg including your original arguments...

关于r - 使用 texreg (或类似的)为聚类标准误差函数 (cl) 输出生成回归表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19418774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com