SUR 回归:检验系数均值是否为零

SUR regression: Testing if means of coefficients are equal to zero or not

我是 运行 一个 SUR 回归,其中 returns 80 家不同的银行作为因变量。自变量总是相同的。如果需要回答我的问题,您应该能够使用下面的代码重新创建回归:

  1. 如何检验样本中所有 80 家银行的 "Event" 系数的平均值是否为零?

  2. 我如何检验样本中的子组,比如前 20 家银行和后 40 家银行,是否具有相似的 "Event" 平均系数,或者它们是否彼此显着不同?

    library("systemfit")
    library("plm")
    cyp3 <- read.table("https://pastebin.com/raw.php?i=/SpuUiaj7", sep=";", header=TRUE)
    cyp3panel<-pdata.frame(cyp3, c("id", "t"))
    cyp3sur<-systemfit(returns ~ Price + Pre + Event + Post + Zpre1 + Zevent1 + Zpost1 + Zpre2 + Zevent2 + Zpost2 + Zpre3 + Zevent3 + Zpost3, method = "SUR",data = cyp3panel)
    

感谢您的帮助。如果有什么遗漏,请告诉我!

为此我们可以直接使用linearHypothesis(参见?linearHypothesis.systemfit)。在第一种情况下,我们有

coefs <- coef(cyp3sur)
R1 <- matrix(0, nrow = 1, ncol = length(coefs))
R1[1, grep("Intercept", names(coefs))] <- 1
linearHypothesis(cyp3sur, R1)

其中 R1 只有一行,因为只有一个约束。请注意,我添加的系数是 1 而不是 1 / 80,因为它们是等价的(X + Y = 0 与 (X + Y) / 2 = 0 相同)。使用 grep 可以让我找到截距的位置。

同样,在第二种情况下我们有

R2 <- matrix(0, nrow = 1, ncol = length(coefs))
gr1 <- paste0("X", 1:20, "_Event")
gr2 <- paste0("X", 41:80, "_Event")
R2[1, names(coefs) %in% gr1] <- 1 / 20
R2[1, names(coefs) %in% gr2] <- -1 / 40
linearHypothesis(cyp3sur, R2)

现在我用 paste0 构建感兴趣的变量名,并使用 %in% 确定它们在 coefs 中的位置。