当使用线性模型进行数据分析后,应该检测其残差方差是否同质。
同样也因为我们常常假设方差的误差具有恒定的方差,这样可以检测使用模型内的因素是否对y数据进行了和理解解释。
对其进行检测的算法有:
两个变量: F-test
多个变量: Bartlet's test, Levene's test ( modified后则成为Brown-Forsythe test),Breusch-Pagan Test, Filigner-Killen's, test.
统计假设。对于随后的所有这些检验,零假设是所有总体方差均相等,替代假设是其中至少有两个不同。因此,小于0.05的p值表明方差显着不同,并且违反了方差假设的同质性。
最常用的为Levene's test. 因为它对偏离正态性不敏感。
讲解原理见:
https://online.stat.psu.edu/stat501/lesson/7/7.6#paragraph--792
在R中实现:
https://www.datanovia.com/en/lessons/homogeneity-of-variance-test-in-r/
F-test: Compare two variances
res <- var.test(len ~ supp, data = ToothGrowth)
res
Compare multiple variances
Bartlett’s test
res <- bartlett.test(weight ~ group, data = PlantGrowth) # 单变量
res
bartlett.test(len ~ interaction(supp,dose), data=ToothGrowth) # 多个变量
Levene’s test
library(car)
leveneTest(weight ~ group, data = PlantGrowth)
leveneTest(len ~ supp*dose, data = ToothGrowth)
Fligner-Killeen’s test
fligner.test(weight ~ group, data = PlantGrowth)
R中还提供了两个函数:
ncvTest()函数
spreadLevelPlot()