从 R 中的 ca.jo 中的 Johannsen 协整方法估计 t 统计量

2024-03-27

我正在研究 R 中“vars”库中的小插图工作示例。我了解小插图中的大部分示例,除了小插图的表 5here https://cran.r-project.org/web/packages/vars/vignettes/vars.pdf

运行以下代码,我看到协整向量和载荷点估计是从哪里导出的,但我不明白 t 统计量是从哪里导出的。

我运行了这段代码:

library("vars") data("Canada") Canada <- Canada[, c("prod", "e", "U", "rw")] vecm <- ca.jo(Canada[, c("rw", "prod", "e", "U")], type = "trace", ecdet = "trend", K = 3, spec = "transitory") vecm.r1 <- cajorls(vecm, r = 1)

并得到这些特征向量和权重,

    Eigenvectors, normalised to first column:
(These are the cointegration relations)

               rw.l1     prod.l1       e.l1       U.l1   trend.l1
rw.l1     1.00000000   1.0000000  1.0000000   1.000000  1.0000000
prod.l1   0.54487553  -3.0021508  0.7153696  -7.173608  0.4087221
e.l1     -0.01299605  -3.8867890 -2.0625220 -30.429074 -3.3884676
U.l1      1.72657188 -10.2183404 -5.3124427 -49.077209 -5.1326687
trend.l1 -0.70918872   0.6913363 -0.3643533  11.424630  0.1157125

Weights W:
(This is the loading matrix)

              rw.l1      prod.l1        e.l1          U.l1      trend.l1
rw.d   -0.084814510  0.048563997 -0.02368720 -0.0016583069  5.722004e-12
prod.d -0.011994081  0.009204887 -0.09921487  0.0020567547 -7.478364e-12
e.d    -0.015606039 -0.038019447 -0.01140202 -0.0005559337 -1.229460e-11
U.d    -0.008659911  0.020499657  0.02896325  0.0009140795  1.103862e-11

这给了我表 5 中正确的 alpha 和 beta 值。

但我不知道表 5 中的 t 统计量是在代码中从哪里导出的。有人能指出我正确的方向吗?

Regards,

James


我最大的抱怨是urca:它不计算 beta 向量的 t 统计量。看起来作者可能在某个时候想要包含该功能(因此上面引用的小插图中的表 5),但没有抽出时间实际执行它。

好消息:对于一个协整向量 (r=1) 的情况,有示例代码可用于获取标准误差。看到这个讨论话题 http://r.789695.n4.nabble.com/How-to-retrieve-standard-errors-of-cointegrating-vector-from-vars-urca-td4655136.html

当存在单个协整向量时,与 urca 的长期协整关系的标准误

继续上面的示例,上面讨论的 nabble 线程给出的代码是:

 alpha <- coef(vecm.r1$rlm)[1, ]  # the coefficients on ecm1
 beta <- vecm.r1$beta  # the point estimates of beta

 resids <- resid(vecm.r1$rlm) 
 N <- nrow(resids) 
 sigma <- crossprod(resids) / N 

 ## t-stats for beta 
 beta.se <- sqrt(diag(kronecker(solve(crossprod(vecm@RK[, -1])), 
                                solve(t(alpha) %*% solve(sigma) %*% alpha)))) 
 beta.t <- c(NA, beta[-1] / beta.se) 
 names(beta.t) <- rownames(vecm.r1$beta) 
 beta.t 

这准确地再现了小插图给出的标准误差。

与格雷特尔比较

如果我们使用 gretl 运行相同的模型,我们会得到完全相同的 beta 点估计,但标准误差大致一致:

额外奖励:使用 urca 和 texreg 创建具有标准误差的协整向量的 LaTeX 表

您需要编写一个稍微笨拙的“提取”函数来将标准误差和点估计组装在一起,形成以下形式:texreg likes:

 extract.cajo_beta <- function(cajo, orls) {
   alpha <- coef(orls$rlm)[1, ];
   resids <- resid(orls$rlm);
   N <- nrow(resids);
   sigma <- crossprod(resids) / N;

   # get standard errors and p-values
   beta <- orls$beta
   beta.se <- sqrt(diag(kronecker(solve(crossprod(cajo@RK[, -1])), 
                                  solve(t(alpha) %*% solve(sigma) %*% alpha))));
   beta.se2 <- c(NA, beta.se);
   beta.t <- c(NA, beta[-1] / beta.se);
   beta.pval <- dt(beta.t, df= orls$rlm$df.residual)

   tr <- createTexreg(coef.names = as.character(rownames(beta)), coef = as.numeric(beta), se = beta.se2, 
         pvalues = beta.pval,
         # remove this goodness of fit measure afterwards from the table
         gof.names = c('Dummy'), gof = c(1), gof.decimal = c(FALSE)
   );
   return(tr);
 }

然后运行:

 > screenreg(extract.cajo_beta(vecm, vecm.r1))

 =================
           Model 1
 -----------------
 rw.l1      1.00  

 prod.l1    0.54  
           (0.61) 
 e.l1      -0.01  
           (0.68) 
 U.l1       1.73  
           (1.45) 
 trend.l1  -0.71 *
           (0.28) 
 -----------------
 Dummy      1     
 =================
 *** p < 0.001, ** p < 0.01, * p < 0.05
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 R 中的 ca.jo 中的 Johannsen 协整方法估计 t 统计量 的相关文章

  • R foreach问题(某些进程返回NULL)

    我遇到了问题foreach我正在 R 中使用的程序的一部分 该程序用于运行不同参数的模拟 然后将结果返回到单个列表 然后用于生成报告 当并非所有分配的模拟运行都在报告上实际可见时 就会出现问题 从各方面来看 似乎只有分配的运行的一个子集实际
  • 在 R 中向散点图添加线条

    如何向图表添加线条 我做了以下 dat lt data frame xvar 1 20 rnorm 20 sd 10 yvar 1 20 rnorm 20 sd 10 zvar 1 20 rnorm 20 sd 10 plot dat 1
  • R - Plm 和 lm - 固定效应

    我有一个平衡面板数据集 df 本质上由三个变量组成 A B and Y 对于一堆独特识别的区域来说 它会随着时间的推移而变化 我想运行一个回归 其中包括区域 下面等式中的区域 和时间 年份 固定效应 如果我没记错的话 我可以通过不同的方式来
  • 如何计算R中移动窗口内的平均斜率

    我的数据集包含2个变量y 和 t 05s y 每 05 秒测量一次 我正在尝试计算移动中的平均坡度20秒窗口 即计算第一个 20 秒斜率值后 窗口向前移动一个时间单位 05 秒 并计算下一个 20 秒窗口 在以下位置生成连续 20 秒斜率值
  • 在 R 中绘制 Likert 变量的堆积条形图

    假设我有一个如下所示的数据框 P Q1 Q2 1 1 4 1 2 2 3 4 3 1 1 4 其中的列告诉我哪个人相应地回答了问题 q1 q2 中的哪一个 这些问题需要按照 4 分李克特量表进行回答 例如 批准 表示 1 稍微批准 表示 2
  • 以引用透明的方式从函数的省略号参数中提取符号

    事情又发生了 我正要按下发布答案按钮的问题被删除了 我正在寻找一种方法来从函数的省略号参数中提取绑定到符号的对象的值以及符号 也就是说 我试图以引用透明的方式从省略号中提取符号 我尝试过使用替代品和lazy dots 但没有成功 funct
  • 使用 R 选择第一个非 NA 值

    df lt data frame ID c 1 1 1 2 3 3 3 test c NA 5 5 6 4 NA 7 3 NA 10 9 我想创建一个名为 value 的变量 它是每个单独 ID 测试的第一个非 NA 值 对于只有NA的个体
  • ggplot2 geom_密度和geom_histogram在一个图中

    如何制作一个所有条形加起来为 1 的直方图 并在适合的上方添加一个密度层 set seed 1234 df lt data frame sex factor rep c F M each 200 weight round c rnorm 2
  • 使用 Shiny 发布平行坐标图表时出现“错误:路径[1]="”:没有这样的文件或目录”

    我有一个似乎很常见但我还没有找到解决方案的问题 当尝试使用 rCharts Parcoords 发布 Web 应用程序时 出现以下错误 错误 路径 1 没有这样的文件或目录 奇怪的是 该应用程序在我的笔记本电脑上运行得很好 下面是我正在使用
  • 相当于 min() 的 rowMeans()

    我在 R 邮件列表上多次看到这个问题 但仍然找不到满意的答案 假设我有一个矩阵m m lt matrix rnorm 10000000 ncol 10 我可以通过以下方式获得每行的平均值 system time rowMeans m use
  • 如何仅删除单括号并保留配对的括号

    你好 我亲爱的老师 R 用户朋友们 我最近开始认真学习正则表达式 最近我遇到了一种情况 我们只想保留配对括号 并省略未配对的 这是我的样本数据 structure list t1 c Book Pg 1 Website Online Jou
  • 所有 x 轴标签未以 45 度显示

    I m having the code as like below But I m not getting all the x axis labels and it is not displaying in 45 degree when I
  • ggplot2:如何标记事件发生的日期

    我想从第二个情节中获取第一个情节的信息 第二张图表示事件发生的天数 它看起来更宽 因为它没有图例 但它是相同的时间尺度 我选择在第一个图中手动分配颜色 I would like to overlay the second plot dots
  • 如何使用 SparkR 1.6.0 写入 JDBC 源?

    使用 SparkR 1 6 0 我可以使用以下代码从 JDBC 源读取数据 jdbc url lt jdbc mysql localhost 3306 dashboard user
  • R“错误:“}”中出现意外的“}”[重复]

    这个问题在这里已经有答案了 我有一个字符串变量 对于缺少数据的情况 它具有 空值 我想将 空值 重新编码为缺失 而不是说 空值 我正在尝试编写一个循环来删除这些 空值 条目 但我不断收到错误 错误 中出现意外的 for row in dat
  • python 相当于 R 中的 get() (= 使用字符串检索符号的值)

    在 R 中 get s 函数检索名称存储在字符变量 向量 中的符号的值s e g X lt 10 r lt XVI s lt substr r 1 1 X get s 10 取罗马数字的第一个符号r并将其转换为其等效整数 尽管花了一些时间翻
  • applyStrategy 错误

    我是R新手 最近运行后遇到以下错误applyStrategy函数来自quantstrat包裹 Error in eval expr envir enclos object signal not found Error in colnames
  • 实三次多项式的最快数值解?

    R 问题 寻找最快的方法来数值求解一堆已知具有实系数和三个实根的任意三次方程 据报道 R 中的 polyroot 函数对复杂多项式使用 Jenkins Traub 算法 419 但对于实多项式 作者参考了他们早期的工作 对于实三次或更一般的
  • 如何修复 R 中 Kaplan Meier 图的风险表计算错误

    以下是一个数据帧 其中 6 个参与者中的每一个都有唯一的 record ID 我想绘制一个生存分析图 其中包含感兴趣事件的复发以及在时间间隔 tstart 到 tstop 内 暴露 药物剂量 数值变量 的时间依赖性协变量 每个参与者的最大
  • 如何使用 dplyr 独立过滤每列的行

    我有以下内容 library tidyverse df lt tibble tribble gene colB colC a 1 2 b 2 3 c 3 4 d 1 1 df gt A tibble 4 x 3 gt gene colB c

随机推荐