Kruskal-Wallis 或 Fligner 检验来检查方差的同质性?

机器算法验证 回归 异方差 克鲁斯卡尔-沃利斯测试
2022-04-07 00:25:36

我需要检查线性回归残差的方差同质性。我读到 Kruskal 在不假设正态分布的情况下也很好。但我不知道这是否适合我的情况。我正在对两个价格向量(股票价格)进行线性回归。我还使用 Anderson-Darling 正态性检验(ad.test of nortest 包)检查了正态性,残差似乎不是正态分布的,但也许我选择了错误的检验来检查它。

所以,我的目标是检查残差的方差是否均匀。显然,我将残差列表细分为两组:

res[1:300]
res[301:600]

我能做些什么?

2个回答

如果我理解正确,您在简单的线性回归中)和一个标准(预测变量显着性检验基于模型假设,即对于每个观察 其中是我们要估计和检验假设的参数,误差是均值为 0 且方差恒定的正态分布随机变量所有都被假定为彼此独立,并且与无关。x_xyi

yi=β0+β1xi+ϵi
β0,β1ϵiN(0,σ2)σ2ϵixixi假定它们本身没有错误。

您使用了术语“方差同质性”,通常在您有不同的组时使用(如在 ANOVA 中),即当仅采用几个不同的值时。在回归的上下文中,的假设称为同方差。这意味着所有条件误差分布具有相同的方差。这个假设不能用不同组的测试来测试(Fligner-Killeen,Levene)。xixσ2

下图试图说明相同条件误差分布的概念(此处为 R 代码)。

在此处输入图像描述

异方差检验是 Breusch-Pagan-Godfrey-Test(bptest()来自 packagelmtestncvTest()from package car)或 White-Test(white.test()来自 package tseries)。您还可以考虑仅使用异方差一致的标准误差(修改后的 White 估计器,请参阅hccm()packagecarvcovHC()from package 的函数sandwich)。然后可以将这些标准错误与coeftest()package中的函数结合使用lmtest(),如 Fox & Weisberg (2011), An R Companion to Applied Regression 中的第 184-186 页所述。

您也可以根据拟合值绘制经验残差(或其某种变换)。典型的变换是学生化残差(spread-level-plot)或绝对残差的平方根(scale-location-plot)。这些图不应显示依赖于预测的残差分布的明显趋势。

在此处输入图像描述

N <- 100                                  # number of observations
X <- seq(from=75, to=140, length.out=N)   # predictor
Y <- 0.6*X + 10 + rnorm(N, 0, 10)         # DV
fit   <- lm(Y ~ X)                        # regression
E     <- residuals(fit)                   # raw residuals
Estud <- rstudent(fit)                    # studentized residuals

plot(fitted(fit), Estud, pch=20, ylab="studentized residuals",
     xlab="prediction", main="Spread-Level-Plot")
abline(h=0, col="red", lwd=2)
plot(fitted(fit), sqrt(abs(E)), pch=20, ylab="sqrt(|residuals|)",
     xlab="prediction", main="Scale-Location-Plot")

直截了当的答案似乎是Levene's Test也在Wikipedia上进行了描述。Levene's 适用于您的情况,因为它对偏离常态的敏感性低于替代方法 Bartlett 检验。Levene's 是参数化的,但即使具有某种程度的非正态性也适用。如果分布从根本上偏离正态,就像极端异常值一样,你会想要使用非参数替代方案。

我认为这里没有任何适用的 Kruskal 测试。但是您还需要检查其他线程,例如这个线程。