您可以承担stargazer::.stargazer.wrap
任务并更改模型摘要的计算方式,但它大约有 8k 行。
作为一种解决方法,首先计算可以由表生成函数消化的较小回归,然后在编译之前替换系数和统计数据可能要容易得多。
我向您展示了使用texreg
包的方法,也可以使用stargazer
.
foo <- y ~ x
beta0 <- betareg::betareg(foo, data=df[sample(nrow(df), 1e3), ]) ## small version
beta <- betareg::betareg(foo, data=df) ## actual version
(beta.sum <- betareg:::summary.betareg(beta, type='pearson')$coe) ## actual summary
# $mean
# Estimate Std. Error z value Pr(>|z|)
# (Intercept) 0.007933124 0.006967576 1.1385773 0.2548795
# x -0.010845820 0.012080681 -0.8977822 0.3693017
#
# $precision
# Estimate Std. Error z value Pr(>|z|)
# (phi) 1.999218 0.007501926 266.494 0
桌子
屏幕:
texreg::screenreg(beta0,
digits=3,
override.coef=unlist(lapply(beta.sum, \(x) x[, 1])),
override.se=unlist(lapply(beta.sum, \(x) x[, 2])),
override.pvalues=unlist(lapply(beta.sum, \(x) x[, 4]))
)
# ==============================
# Model 1
# ------------------------------
# (Intercept) 0.008
# (0.007)
# x -0.011
# (0.012)
# Precision: (phi) 1.999 ***
# (0.008)
# ------------------------------
# Pseudo R^2 0.000
# Log Likelihood 2.137
# Num. obs. 1000
# ==============================
# *** p < 0.001; ** p < 0.01; * p < 0.05
乳胶:
texreg::texreg(beta0,
digits=3,
override.coef=unlist(lapply(beta.sum, \(x) x[, 1])),
override.se=unlist(lapply(beta.sum, \(x) x[, 2])),
override.pvalues=unlist(lapply(beta.sum, \(x) x[, 4]))
)
# \begin{table}
# \begin{center}
# \begin{tabular}{l c}
# \hline
# & Model 1 \\
# \hline
# (Intercept) & $0.008$ \\
# & $(0.007)$ \\
# x & $-0.011$ \\
# & $(0.012)$ \\
# Precision: (phi) & $1.999^{***}$ \\
# & $(0.008)$ \\
# \hline
# Pseudo R$^2$ & $0.000$ \\
# Log Likelihood & $2.137$ \\
# Num. obs. & $1000$ \\
# \hline
# \multicolumn{2}{l}{\scriptsize{$^{***}p<0.001$; $^{**}p<0.01$; $^{*}p<0.05$}}
# \end{tabular}
# \caption{Statistical models}
# \label{table:coefficients}
# \end{center}
# \end{table}
要获取 HTML 代码,请使用:
texreg::htmlreg
数据:
set.seed(1)
n <- 1e5
df <- data.frame(y=runif(n), x=runif(n))