White对R中的异方差性检验

机器算法验证 r 异方差 评论 白试
2022-03-25 09:18:26

我正在尝试估计 R 中的异方差性。我在大学的实验室中有 Eviews,但在家里没有。我一直在尝试使用“het.test”包,whites.htest但我得到的价值与我在 Eviews 中得到的不同。根据该软件包的作者的说法,它旨在进行与 Eviews 中相同的测试。

我的模型看起来像A~B+C请指导我做错了什么。

我第一次为方程式运行 ols A~B+C,得到结果后,我单击View>Residual diagnostics>Heteroscadicity tests>White's (with Include white cross terms)然后按确定。我得到的结果是Prob. F(5,27) = 0.2948

对于 R,我在此链接 [此链接] [1] 上尝试了代码,这是我使用的编辑后的代码。

library(vars) 
library(het.test)
dataset <- data.frame(A,B,C)) 
model1 <- VAR(dataset, p = 1) 
whites.htest(model1)

这给了我 0.63 的值。

我尝试搜索此论坛,但似乎没有任何问题相关。我不是程序员也不是统计学家,所以请原谅我的无知。

1个回答

whites.htest()函数实现了怀特对向量自回归 (VAR) 的异方差性检验。它需要一个varest对象作为输入。但是,根据您的描述,您的模型似乎不是 VAR(向量自回归),而是一个简单的线性模型。

因此,该模型应lm()按照先前在评论中建议的方式进行估计。然后你可以使用包中的bptest()函数lmtest来进行怀特的测试。后者要求您自己设置辅助模型中的项。它应该如下所示:

m <- lm(A ~ B + C, data = dataset)
bptest(m, ~ B*C + I(B^2) + I(C^2), data = dataset)

请注意,这B*C包括主要影响及其相互作用(= 产品)。等效地——也许更明确一点——我们也可以将辅助模型指定为~ A + B + I(A*B) + I(A^2) + I(B^2)

你也可以看看

help("CigarettesB", package = "AER")

对于一个工作的例子。