首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用投影因子和聚类标准误差对R中的SUR模型进行估计?

如何用投影因子和聚类标准误差对R中的SUR模型进行估计?
EN

Stack Overflow用户
提问于 2021-07-27 08:41:18
回答 1查看 517关注 0票数 0

我想估计一个SUR (看似无关的回归)模型。

我尝试使用systemfit及其包装器Zelig。但是,我无法理解如何指定要投影的因素(即添加固定效果)并对标准错误进行聚类,就像我们在felm()中所做的那样。

此外,如果我简单地将固定效应变量添加到回归方程中,则会得到以下错误:

代码语言:javascript
复制
Error in LU.dgC(a) : cs_lu(A) failed: near-singular A (or out of memory)

非常感谢你的帮助!

我正在从我的数据中添加一个数据示例:

代码语言:javascript
复制
Y_var1 <- c(0.45, 0.40, 0.30, 0.40, 0.15, 0.35, 0.50, 0.55, 0.10, 0.15, 0.30, 0.10)
Y_var2 <- c(0.40, 0.25, 0.45, 0.30, 0.35, 0.25, 0.15, 0.25, 0.35, 0.30, 0.20, 0.15)
X_var1 <- c(0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0)
X_var2 <- c(0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0)
X_var3 <- c(0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1)
X_var4 <- c(0.18, 0.18, 0.18, 0.20, 0.20, 0.20, 0.22, 0.22, 0.22, 0.24, 0.24, 0.24)
X_var5 <- c(0.08, 0.08, 0.08, 0.06, 0.06, 0.06, 0.04, 0.04, 0.04, 0.02, 0.02, 0.02)
X_var6 <- c(-0.25, -0.25, -0.25, 1.30, 1.30, 1.30, 1.80, 1.80, 1.80, 2.25, 2.25, 2.25)
X_var7 <- c(1000, 1000, 1000, 1500, 1500, 1500, 2000, 2000, 2000, 2500, 2500, 2500)
X_var8 <- c('ABC', 'ABC', 'ABC', 'MNO', 'MNO', 'MNO', 'DEF', 'DEF', 'DEF', 'XYZ', 'XYZ', 'XYZ')
X_var9 <- c(2000, 2010, 2020, 2000, 2010, 2020, 2000, 2010, 2020, 2000, 2010, 2020)

sample_data <- data.frame(Y_var1, Y_var2, X_var1, X_var2, X_var3, X_var4, X_var5, X_var6, X_var7, X_var8, X_var9)

library(systemfit)
formula <- list(mu1 = Y_var1 ~ X_var1*X_var3 + X_var2*X_var3 + X_var4 + X_var5 + X_var6 + log(X_var7), 
                mu2 = Y_var2 ~ X_var1*X_var3 + X_var2*X_var3 + X_var4 + X_var5 + X_var6 + log(X_var7))

fitsur <- systemfit(formula = formula, data=sample_data, method = "SUR")
fitols <- systemfit(formula = formula, data=sample_data, method = "OLS")

(由于这是一个样本数据集,因此,上述两个回归将给出我前面提到的一个错误,但在实际数据上运行良好。)

然而,我感兴趣的是使用SUR估计上述公式,X_var8X_var9固定的效应和标准误差聚集在X_var8水平。

如果我们使用felm(),规范是

代码语言:javascript
复制
felm(mu1 = Y_var1 ~ X_var1*X_var3 + X_var2*X_var3 + X_var4 + X_var5 + X_var6 + log(X_var7) | X_var8 + X_var9 | 0 | X_var8)

然而,由于我的标准误差是相互关联的方程,我需要使用SUR。

任何帮助都将不胜感激。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-28 07:05:25

我想现在我明白了如何正确地实现固定效应的SUR模型,

  1. 我们需要首先用one热编码X_var8转换为数字,并根据上面的交互公式创建新变量。

library(mltools)

sample_data2 <- as.data.frame(one_hot(as.data.table(sample_data)))

sample_data2$X_var13 <- sample_data2$X_var1 * sample_data2$X_var3

sample_data2$X_var23 <- sample_data2$X_var2 * sample_data2$X_var3

  1. 密切检查sample_data2$X_var13和sample_data2$X_var23的值。

sample_data2$X_var13

10 0 0 0

sample_data2$X_var23

1 0 0 0 1 0 0 0

因为对于所需的示例数据,所有的sample_data2$X_var13都是0,它也会影响Error in LU.dgC(a) : cs_lu(A) failed: near-singular A (or out of memory)的错误,因为它没有任何有意义的值,所以我们可以放弃它,但是可以随意地将它用于实际数据。

添加固定效果的

  1. Make公式:

formula <- list(mu1 = Y_var1 ~ X_var23 + X_var4 + X_var5 + X_var6 + log(X_var7) + X_var8_ABC + X_var8_DEF + X_var8_MNO + X_var8_XYZ + X_var9, mu2 = Y_var2 ~ X_var23 + X_var4 + X_var5 + X_var6 + log(X_var7) + X_var8_ABC + X_var8_DEF + X_var8_MNO + X_var8_XYZ + X_var9)

  1. 符合SUR模型并进行总结:

fitsur <- systemfit(formula = formula, data=sample_data2, method = "SUR")

summary(fitsur)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68541626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档