R:在多个子样本回归上的约束系数和误差方差

时间:2016-08-28 20:36:42

标签: r regression linear-regression lm

我正在与R一起研究145个观察样本。我创建了五个子样本,每个子样本有29个观察值,而响应变量q已经排序。因此,subset1包含具有最低输出的29行数据帧,subset2包含以下29行等。

我正在回归预测变量qx1 ans x2上的变量x3。我现在需要进行两个实验:

  1. 将误差方差约束在所有子样本上相同;
  2. 约束x2x3上的系数以及误差方差在5个OLS回归中相同。
  3. 到目前为止,我的方法是使用允许执行面板回归的包plm。但是,我不知道具体约束误差方差或特定系数。此外,我认为必须有一种方法可以使用R中包含的更基本的工具来做到这一点。

    请不要犹豫,提供替代方法。在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

看起来这就是你所需要的:

set.seed(0)
dat <- data.frame(q = sort(rnorm(145)), x1 = rnorm(145), x2 = rnorm(145),
                  x3 = rnorm(145), group = gl(5, 29))

fit <- lm(q ~ x1 * group + x2 + x3, data = dat)

#Coefficients:
#(Intercept)           x1       group2       group3       group4       group5  
#  -1.211435     0.049316     0.610405     1.128571     1.631891     2.502886  
#         x2           x3    x1:group2    x1:group3    x1:group4    x1:group5  
#  -0.027927    -0.015151    -0.004244    -0.074085    -0.044885    -0.074637

在这里,我介绍了一个分组因子变量group。所有五组的模型估计同时进行。用公式:

q ~ x1 * group + x2 + x3

我们所有组的x2x3系数相同。虽然互动x1*group表明我们对不同群体的x1有不同的拦截和斜率。

如果您不希望每组有不同的拦截,您可以使用公式:

q ~ x1 + x1 : group + x2 + x3