【问题标题】:Compute the difference between two different regressions in R计算 R 中两个不同回归之间的差异
【发布时间】:2020-10-12 17:01:19
【问题描述】:

我正在尝试计算 2014 年至 2011 年间变量“效率比”(ER)的变化系数和相应的 p 值(即 Δ=2014-2011)。我已经使用汇总 OLS 计算了 2011 年和 2014 年的个别回归。我不知道下一步来计算这种变化的结果(估计系数和 p 值)。我试图得出结论,因变量与 ER 变量相关的敏感性是否呈正相关。

下面,我介绍了 2011 年和 2014 年的个别回归,以及我的数据库的一部分。 我将不胜感激有关如何在 R 中执行此操作的任何见解。谢谢。


pdata2011<-pdata.frame(paneldata2011, index = c("BANKS","YEARS"))

pooled2011<-plm(VCTC ~ ER + log(TA) + log(GDP), data = pdata2011,  model = "pooling")


pdata2014<-pdata.frame(paneldata2014, index = c("BANKS","YEARS"))

pooled2014<-plm(VCTC ~ ER + log(TA) + log(GDP), data = pdata2014, model = "pooling")
  BANKS YEARS    VCTC         ER           TA         GDP
    1   2014    0.00000000  0.8559100   235193.8    534678.1
    1   2011    0.16887878  1.5123620   301355.0    522645.5
    2   2014    0.87297022  0.6225519   809343.3    1801480.1
    2   2011    0.85148515  0.6321466   777083.1    1789140.7
    3   2014    0.24422236  0.4315355   2573915.1   10438529.2
    3   2011    0.24970615  0.4156023   1853465.0   7551500.4
    4   2014    0.33174224  0.3927662   2457455.2   10438529.2
    4   2011    0.28012834  0.4291702   1877624.1   7551500.4
    5   2014    0.31638913  0.3525573   2697975.7   10438529.2
    5   2011    0.32945877  0.3633482   1949372.7   7551500.4
    6   2014    0.22575998  0.3450020   3320881.7   10438529.2
    6   2011    0.21708543  0.3596391   2456488.5   7551500.4
...
    34  2014    0.94692763  0.7477073   274119.0    17521746.5
    34  2011    0.93822571  0.7259823   216827.0    15542581.1
    35  2014    0.86932004  0.5752208   1687155.0   17521746.5
    35  2011    0.85889245  0.6049802   1313867.0   15542581.1

【问题讨论】:

  • 很难比较两个完全独立的回归方程。如果您将 2011 年和 2014 年的数据结合起来,并使用年份(作为一个因素)作为您的一个预测变量,会怎样?然后,您可以查看年份的影响是否显着,或者年份与 ER 之间是否存在显着的交互作用。
  • 我试图得出结论,因变量与 ER 变量相关的敏感性是否呈正相关。有可能这样做吗?
  • 这似乎不是适合 Stack Overflow 的特定编程问题。如果您对适当使用各种统计方法来检验某些假设有一般性问题,那么您应该通过Cross Validated 询问此类问题。你更有可能在那里得到更好的答案。

标签: r regression difference panel-data


【解决方案1】:

您可以按照@LynnL 的建议进行操作,即包含一个交互项。如果 ER 的影响之间存在显着差异(即不为零),则该项将为您提供一个小的 p 值。

理想情况下下次提供数据,因为我们不知道什么是 YEARS 等以及两个 data.frames 是否可以组合。下面我建议使用 zscore 来查看 2 个系数之间的差异:

library(plm)

使用数据的前 12 行,假设这是组合数据集:

    df = structure(list(BANKS = c(1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L, 5L, 
5L, 6L, 6L), YEARS = c(2014L, 2011L, 2014L, 2011L, 2014L, 2011L, 
2014L, 2011L, 2014L, 2011L, 2014L, 2011L), VCTC = c(0, 0.16887878, 
0.87297022, 0.85148515, 0.24422236, 0.24970615, 0.33174224, 0.28012834, 
0.31638913, 0.32945877, 0.22575998, 0.21708543), ER = c(0.85591, 
1.512362, 0.6225519, 0.6321466, 0.4315355, 0.4156023, 0.3927662, 
0.4291702, 0.3525573, 0.3633482, 0.345002, 0.3596391), TA = c(235193.8, 
301355, 809343.3, 777083.1, 2573915.1, 1853465, 2457455.2, 1877624.1, 
2697975.7, 1949372.7, 3320881.7, 2456488.5), GDP = c(534678.1, 
522645.5, 1801480.1, 1789140.7, 10438529.2, 7551500.4, 10438529.2, 
7551500.4, 10438529.2, 7551500.4, 10438529.2, 7551500.4)), class = "data.frame", row.names = c(NA, 
-12L))

你从这里开始,用交互项运行回归:

df$YEARS = factor(df$YEARS)
pooled2011<-plm(VCTC ~ ER + log(TA) + log(GDP),model = "pooling",data=pdata.frame(subset(df,YEARS==2011),index=c("BANKS","YEARS")))

pooled2014<-plm(VCTC ~ ER + log(TA) + log(GDP),model = "pooling",data=pdata.frame(subset(df,YEARS==2014),index=c("BANKS","YEARS")))

在基于 6 个数据点的回归中。为您的整个数据集运行它。

b1 <- summary(pooled2011)$coefficients["ER",1]
se1 <- summary(pooled2011)$coefficients["ER",2]
b2 <- summary(pooled2014)$coefficients["ER",1]
se2 <- summary(pooled2014)$coefficients["ER",2]

差异只是两个回归系数之间的差异(假设所有变量在同一尺度上),您可以报告标准误差:

compare.coeff <- function(b1,se1,b2,se2){
delta = b1-b2
se = sqrt(se1^2+se2^2)
Zscore = (delta)/se
p_value = 2*pnorm(-abs(Zscore))
c(delta=delta,se=se,Zscore=Zscore,p_value=p_value)
}

compare.coeff(b1,se1,b2,se2)
     delta         se     Zscore    p_value 
-1.7461849  7.4390338 -0.2347328  0.8144162 

您还可以查看books or chapters like this,基本上是任何描述交互术语使用的内容。我也回复了类似的question before,你也可以查一下。

【讨论】:

  • 感谢您的帮助。以下是对我的数据的简要说明:我正在尝试研究总资产 (TA)、效率比 (ER) 和国内生产总值 (GDP) 对薪酬(可变薪酬对总薪酬 - VCTC)的影响。 N=35(35 家银行)年份= 2011 年和 2014 年
  • 我已将部分数据添加到问题中。
  • 好的,你可以合并两个数据框,使用“BANK”作为索引,不要使用“YEAR”。将 YEAR 作为因子并使用交互项拟合回归
  • 为什么要考虑 rnorm(100) 和 rpois(100,10)?是因为 TA 和 GDP 的对数值吗? 10 代表 rpois() 什么?它是否正确? paneldata2011 = data.frame( YEARS=rep(1:35,each=2), BANKS = rep(letters[1:2],35), VCTC = rnorm(35), ER = rnorm(35), TA = rpois(35,10), GDP = rpois(35,10)) paneldata2014 = data.frame( YEARS=rep(1:35,each=2), BANKS = rep(letters[1:2],35), VCTC = rnorm(35), ER = rnorm(35), TA = rpois(35,10), GDP = rpois(35,10)) paneldata2014$VCTC = paneldata2014$ER*-0.1184329 + paneldata2014$VCTC
  • 我的 delta 值已经与我之前计算的一致(减去 2011 年到 2014 年)。 Coef2014 = -0,118 和 Coef2011 = -0.121(δ 的 R 输出约为 = 0.003)。所以一切正常!最后一件事:在你写delta = b1-b2 的那一行,我认为它是倒置的。非常感谢您的帮助和耐心!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多