You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中用modelsummary报告MTS类VARX模型为LaTeX表格?

用modelsummary生成MTS包VARX模型的LaTeX表格

问题原因

你之前错误定义了tidy.mts和glance.mts方法,但MTS包拟合的VARX模型对象类为VARX而非mts,导致modelsummary无法识别对应的信息提取逻辑,需要针对VARX类实现broom风格的tidy和glance方法。

解决方案

1. 实现tidy.VARX函数(提取参数估计结果)

从VARX对象中提取每个方程的系数、标准误、t值和p值,整理为modelsummary兼容的数据框格式。

2. 实现glance.VARX函数(提取模型拟合统计量)

提取R²、AIC、BIC、样本量、残差标准差等常用统计量。

3. 调用modelsummary生成LaTeX表格

完整代码示例

library(tidyverse)
library(MTS)
library(modelsummary)
library(vars)
library(stats)

# 生成模拟数据
set.seed(10)
ts1 <- rnorm(200, mean = 10, sd = 3) %>% ts()
ts2 <- ts1 + rnorm(200, mean = 1, sd = 3) %>% ts()
exg1 <- rchisq(n = 200,df = 10) + ts1 %>% ts()
exg2 <- rf(n = 200,df1 = 20,df2 = 20) + ts2 %>% ts()

zt <- cbind(ts1, ts2)
xt <- cbind(exg1, exg2)
p = 1
m = 0

# 拟合VARX模型
varx <- VARX(zt = zt, p = p, xt = xt, m = m)

# 自定义tidy.VARX函数:提取参数信息
tidy.VARX <- function(x, ...) {
  coef_mat <- x$coef
  eq_names <- colnames(x$zt)
  var_names <- rownames(coef_mat)
  
  tidied <- coef_mat %>%
    as.data.frame() %>%
    rownames_to_column("term") %>%
    pivot_longer(cols = -term, names_to = "response", values_to = "estimate") %>%
    mutate(
      std.error = x$se[term, response],
      statistic = estimate / std.error,
      p.value = 2 * pt(abs(statistic), df = x$n - x$k, lower.tail = FALSE)
    )
  
  return(tidied)
}

# 自定义glance.VARX函数:提取拟合统计量
glance.VARX <- function(x, ...) {
  glance_df <- tibble(
    nobs = x$n,
    r.squared = mean(x$Rsq),
    adj.r.squared = mean(x$adjRsq),
    aic = x$AIC,
    bic = x$BIC,
    sigma = sqrt(mean(diag(x$Sigma)))
  )
  return(glance_df)
}

# 生成LaTeX表格
modelsummary(varx, output = "latex")

关键说明

  • VARX对象核心结构:$coef为系数矩阵,$se为标准误矩阵,$Rsq为各方程的R²,$AIC/$BIC为信息准则,$n为样本量,$k为单方程参数个数。
  • 若需按方程单独展示统计量,可修改glance函数,或在modelsummary中添加group = "response"参数。
  • 运行代码后会直接输出可插入LaTeX文档的表格代码。

内容的提问来源于stack exchange,提问作者Victor Hugo Schieck Terziani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 11:41:21