我发现某处提到了使用虚拟变量而不是 Chow 测试来测试不同数据集上的两个线性回归中的系数是否相等的可能性。
有人可以指导我参考可以研究详细信息的参考吗?
我发现某处提到了使用虚拟变量而不是 Chow 测试来测试不同数据集上的两个线性回归中的系数是否相等的可能性。
有人可以指导我参考可以研究详细信息的参考吗?
让我们首先创建一个断点为 3 的假数据。
> x=seq(1,5,length=100)
> y=numeric(100)
> y[1:50]=2*x[1:50]
> y[51:100]=rep(2*x[51],50)
> z=rnorm(100,0,.15)
> y=y+z
> plot(x,y)

现在我将使用strucchangeR 中的包执行 Chow 测试,以测试 3 是否是断点。
> require(strucchange)
> sctest(y ~ x, type = "Chow", point = 3)
Chow test
data: y ~ x
F = 3.4086, p-value = 0.03714
所以基于这个测试,点x=3就是一个断点。现在我将创建一个虚拟变量dum.x时将其定义为 0,否则将其定义为 1。
> dum.x=rep(1,100)
> dum.x[x>=3]=0
接下来,我使用我创建的带有交互项的虚拟变量拟合线性回归并进行总结。所以我在这里拟合的模型是。
> M=lm(y~x*dum.x)
> summary(M)
Call:
lm(formula = y ~ x * dum.x)
Residuals:
Min 1Q Median 3Q Max
-0.35089 -0.09929 -0.01161 0.08907 0.40424
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 6.32411 0.14728 42.94 <2e-16 ***
x -0.07234 0.03634 -1.99 0.0494 *
dum.x -6.32203 0.16544 -38.21 <2e-16 ***
x:dum.x 2.06979 0.05140 40.27 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.1498 on 96 degrees of freedom
Multiple R-squared: 0.9877, Adjusted R-squared: 0.9874
F-statistic: 2579 on 3 and 96 DF, p-value: < 2.2e-16
请注意,当时,则而当dum.x=0
dum.x=1如此> y=2*x+rnorm(100)
> plot(x,y)

再次使用 Chow 测试,我们有:
> sctest(y ~ x, type = "Chow", point = 3)
Chow test
data: y ~ x
F = 2.1406, p-value = 0.1232
因此,x=3 并不是预期的断点。让我们使用我们的虚拟变量拟合一个线性模型:
> M2=lm(y~x*dum.x)
> summary(M2)
Call:
lm(formula = y ~ x * dum.x)
Residuals:
Min 1Q Median 3Q Max
-2.50938 -0.64484 -0.03025 0.67947 2.21949
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.1014 0.9875 1.115 0.267
x 1.7388 0.2437 7.135 1.83e-10 ***
dum.x -1.5082 1.1093 -1.360 0.177
x:dum.x 0.3508 0.3446 1.018 0.311
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.005 on 96 degrees of freedom
Multiple R-squared: 0.8595, Adjusted R-squared: 0.8551
F-statistic: 195.8 on 3 and 96 DF, p-value: < 2.2e-16
正如您从摘要输出中看到的那样,斜率和截距都没有在 3 处发生变化,并再次确认了 Chow 测试。