R:多个子样本回归的约束系数和误差方差
R : constraining coefficients and error variance over multiple subsample regressions
我正在使用 R 处理包含 145 个观测值的样本。我创建了五个子样本,每个子样本有 29 个观察值,而响应变量 q
已经排序。结果,subset1 包含输出最低的数据框的 29 行,subset2 包含以下 29 行,依此类推
我正在对预测变量 x1
、x2
和 x3
回归变量 q
。我现在需要进行两个实验:
- 限制所有子样本的误差方差相同;
- 约束
x2
和 x3
的系数以及误差方差在 5 个 OLS 回归中相同。
到目前为止,我的方法是使用允许执行面板回归的包 plm
。但是,我不知道要具体限制误差方差或特定系数。此外,我认为必须有一种方法可以使用 R 中包含的更基本的工具来做到这一点。
请不要犹豫,提供替代方法。预先感谢您的帮助!
看起来这就是您所需要的:
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
我们的 x2
和 x3
的系数对于所有组都是相同的。虽然交互 x1*group
表明我们对不同组的 x1
有不同的截距和斜率。
如果不希望每组截距不同,可以使用公式:
q ~ x1 + x1 : group + x2 + x3
我正在使用 R 处理包含 145 个观测值的样本。我创建了五个子样本,每个子样本有 29 个观察值,而响应变量 q
已经排序。结果,subset1 包含输出最低的数据框的 29 行,subset2 包含以下 29 行,依此类推
我正在对预测变量 x1
、x2
和 x3
回归变量 q
。我现在需要进行两个实验:
- 限制所有子样本的误差方差相同;
- 约束
x2
和x3
的系数以及误差方差在 5 个 OLS 回归中相同。
到目前为止,我的方法是使用允许执行面板回归的包 plm
。但是,我不知道要具体限制误差方差或特定系数。此外,我认为必须有一种方法可以使用 R 中包含的更基本的工具来做到这一点。
请不要犹豫,提供替代方法。预先感谢您的帮助!
看起来这就是您所需要的:
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
我们的 x2
和 x3
的系数对于所有组都是相同的。虽然交互 x1*group
表明我们对不同组的 x1
有不同的截距和斜率。
如果不希望每组截距不同,可以使用公式:
q ~ x1 + x1 : group + x2 + x3