Чуть меньше месяца назад в R появился пакет SHT, в котором реализованы несколько интересных видов статистических тестов (если точнее, там реализовано 53 теста). Данная статья – краткий обзор этих тестов и гипотез, проверяемых с их помощью.
Группа тестов № 1
Тест Фишера, тест Ву и Ли на равенство ковариационной матрицы определенному значению.
Нулевая гипотеза: ковариационная матрица равна данной.
library(tidyverse) library(AER) library(SHT) # Группа тестов 1 data(Electricity1970) S <- matrix(data = c(1,0.2,0.6,0.2,1,0.3,0.6,0.3,1), nrow = 3, ncol = 3) # Проверяемая гипотеза: ковариационная матрица между величинами общих затрат, произведенной продукции и заработной платы равна матрице S cov1.2012Fisher(as.matrix(Electricity1970[,1:3]),Sigma0 = S) # Тест Фишера # р-значение меньше 0.05, гипотеза отклоняется cov1.2015WL(as.matrix(Electricity1970[,1:3]),Sigma0 = S, m = 25) # Тест Ву и Ли # р-значение меньше 0.05, гипотеза отклоняется # Проверяемая гипотеза: ковариационная матрица между величинами общих затрат, произведенной продукции и заработной платы равна единичной матрице cov1.2015WL(as.matrix(Electricity1970), m = 25) # Проверяемая гипотеза: ковариационная матрица между величинами общих затрат, произведенной продукции и заработной платы равна единичной матрице
Группа тестов № 2
Тест Ли и Чена, тест Цая, Лю и Ся, тест Ву и Ли, байесовский тест на равенство ковариационных матриц.
Нулевая гипотеза: ковариационные матрицы двух групп, взятых из одной выборки, равны.
data(CreditCard) S1 <- as.matrix(CreditCard[CreditCard$card=="yes",c(3,4,6)]) S2 <- as.matrix(CreditCard[CreditCard$card=="no",c(3,4,6)]) # Проверяемая гипотеза: ковариационные матрицы между величинами возраста, дохода и расходов по кредитной карте для тех, кому одобрили / не одобрили кредитку, одинаковы cov2.2012LC(S1, S2, use.unbiased = FALSE) # Тест Ли и Чен # р-значение меньше 0.05, гипотеза отклоняется cov2.2013CLX(S1, S2) # Тест Цая, Лю и Ся, тест Ву и Ли # р-значение меньше 0.05, гипотеза отклоняется cov2.2015WL(S1, S2, m = 5) # Тест Ву и Ли # р-значение меньше 0.05, гипотеза отклоняется cov2.mxPBF(S1, S2, a0 = 3, b0 = 3, gamma = 2, nthreads = 3) # Байесовский тест # А тут, видимо, где-то что-то не считается
Группа тестов № 3
Тест Скотта (две вариации) на равенство многих ковариационных матрицы.
Нулевая гипотеза: ковариационные матрицы нескольких групп, взятых из одной выборки, равны.
# Группа тестов 3 AA <- list() AA[[1]] <- as.matrix(Electricity1970[1:30,1:3]) AA[[2]] <- as.matrix(Electricity1970[31:75,1:3]) AA[[3]] <- as.matrix(Electricity1970[76:90,1:3]) AA[[4]] <- as.matrix(Electricity1970[91:158,1:3]) # Проверяемая гипотеза: ковариационная матрица между величинами общих затрат, произведенной продукции и заработной платы в 4 разных группах равны covk.2001Schott(AA) # Версия 2001 года # р-значение меньше 0.05, гипотеза отклоняется covk.2007Schott(AA) # Версия 2007 года # р-значение меньше 0.05, гипотеза отклоняется
Группа тестов № 4
Тест Бисваса и Гоша на равенство распределений.
Нулевая гипотеза: закон распределения в двух группах, взятых из одной выборки, одинаков.
# Группа тестов 4 # Проверяемая гипотеза: закон распределения величин возраста, дохода и расходов по кредитной карте для тех, кому одобрили / не одобрили кредитку, одинаков eqdist.2014BG(S1, S2, method = c("asymptotic"), nreps = 9) #многомерный случай # р-значение меньше 0.05, гипотеза отклоняется eqdist.2014BG(S1[,1], S2[,1], method = c("asymptotic"), nreps = 9) #одномерный случай для распределения возраста # р-значение больше 0.05, гипотеза не может быть отклонена
Группа тестов № 5
Тест Хотеллинга, Демпстера, тест Бая и Саранадасы, тест Сриваставы и Ду на равенство средних значений многомерной переменной определенному вектору средних значений.
Нулевая гипотеза: средние значения многомерной переменных равны определенному вектору значений.
# Группа тестов 5 data(Equipment) # Проверяемая гипотеза: среднее значение добавленной стоимости равно 120, среднее значение # капитала равно 30, среднее значение трудоемкости равно 100, среднее количество фирм равно 400 mean1.1931Hotelling(as.matrix(Equipment),mu0 = c(120,30,100,400)) # р-значение меньше 0.05, гипотеза отклоняется mean1.1958Dempster(as.matrix(Equipment),mu0 = c(120,30,100,400)) # р-значение меньше 0.05, гипотеза отклоняется mean1.1996BS(as.matrix(Equipment),mu0 = c(120,30,100,400)) # р-значение меньше 0.05, гипотеза отклоняется mean1.2008SD(as.matrix(Equipment)) # Проверка о равенстве нулевому вектору # р-значение меньше 0.05, гипотеза отклоняется mean1.2008SD(as.matrix(Equipment),mu0 = c(120,30,100,400)) # р-значение меньше 0.05, гипотеза отклоняется
Группа тестов № 6
Тест Хотеллинга, тест Демпстера, тест Яо, тест Йохансена, тест Неля и ван дер Мерве, тест Бая и Саранадасы, тест Кришнамурти и Ю, тест Сриваставы и Ду, тест Лопеза, Якоба и Ванрайта, тест Цая, Лю и Ся, тест Тюлина, байесовский тест на равенство средних значений многомерной переменной в двух группах, взятых из одной выборки.
Нулевая гипотеза: вектора средних значений многомерной переменной в двух разных группах равны.
# Группа тестов 6 # Проверяемая гипотеза: вектора средних значений величин возраста, дохода и расходов по кредитной карте для тех, кому одобрили / не одобрили кредитку, одинаковы mean2.1931Hotelling(S1, S2, paired = FALSE, var.equal = TRUE) #Тест Хотеллинга # р-значение меньше 0.05, гипотеза отклоняется mean2.1958Dempster(S1, S2)#тест Демпстера # р-значение меньше 0.05, гипотеза отклоняется mean2.1965Yao(S1, S2) #тест Яо # р-значение меньше 0.05, гипотеза отклоняется mean2.1980Johansen(S1, S2) #тест Йохансена # р-значение меньше 0.05, гипотеза отклоняется mean2.1986NVM(S1, S2) #тест Неля и ван дер Мерве # р-значение меньше 0.05, гипотеза отклоняется mean2.1996BS(S1, S2) #тест Бая и Саранадасы # р-значение меньше 0.05, гипотеза отклоняется mean2.2004KY(S1, S2) #тест Кришнамурти и Ю # р-значение меньше 0.05, гипотеза отклоняется mean2.2008SD(S1, S2) #тест Сриваставы и Ду # р-значение меньше 0.05, гипотеза отклоняется mean2.2011LJW(S1, S2) #тест Лопеза, Якоба и Ванрайта # не работает # тест 24 mean2.2014CLX(S1, S2, precision="unknown") #тест Цая, Лю и Ся # р-значение меньше 0.05, гипотеза отклоняется # тест 25 mean2.2014Thulin(S1, S2, nreps = 10) #тест Тюлина # не работает # тест 26 mean2.mxPBF(S1,S2) #байесовский тест # р-значение не считается
Группа тестов № 7
Тест Скотта, тест Чжана и Сюя, тест Цао, Парка и Хэ, АНОВА-тест на равенство средних значений в нескольких группах, взятых из одной выборки.
Нулевая гипотеза: средние значения одной переменной в нескольких группах, взятых из одной выборки, равны.
data(Fatalities) A <- list() A[[1]] <- as.matrix(Fatalities[1:30,4]) A[[2]] <- as.matrix(Fatalities[31:70,4]) A[[3]] <- as.matrix(Fatalities[71:80,4]) A[[4]] <- as.matrix(Fatalities[81:150,4]) A2 <- list() A2[[1]] <- as.vector(Fatalities[1:30,4]) A2[[2]] <- as.vector(Fatalities[31:70,4]) A2[[3]] <- as.vector(Fatalities[71:80,4]) A2[[4]] <- as.vector(Fatalities[81:150,4]) # Проверяемая гипотеза: средние значения уровня безработицы в 4 разных группах равны meank.2007Schott(A) #Тест Скотта # р-значение меньше 0.05, гипотеза отклоняется # Проверяемая гипотеза: вектора средних значений общих затрат, произведенной продукции и заработной платы в 4 разных группах равны meank.2009ZX(AA, method = "L") #тест Чжана и Сюя meank.2009ZX(AA, method = "T") # р-значение меньше 0.05, гипотеза отклоняется meank.2019CPH(AA, method = "original") #тест Цао, Парка и Хэ meank.2019CPH(AA, method = "Hu") # р-значение больше 0.05, гипотеза не отклоняется meank.anova(A2) #АНОВА-тест # р-значение меньше 0.05, гипотеза отклоняется
Группа тестов № 8
Тест Арнольда и Шавела, тест отношения правдоподобий на одновременное равенство среднего значения и дисперсии двум заданным числовым значениям.
Нулевая гипотеза: одновременно среднее значение равно заданному числу 1, а дисперсия – заданному числу 2.
# Группа тестов 8 # Проверяемая гипотеза: среднее значение уровня дохода равно 100000, а дисперсия - 200000 mvar1.1998AS(Fatalities$income, mu0 = 100000, var0 = 200000)# Тест Арнольда и Шавела # р-значение меньше 0.05, гипотеза отклоняется mvar1.LRT(Fatalities$income, mu0 = 100000, var0 = 200000)# Тест отношения правдоподобий # р-значение меньше 0.05, гипотеза отклоняется
Группа тестов № 9
Тест Пирсона и Неймана, тест Пернга и Литтела, тест Мюрхеда, тест Чжана, Сюя, Чэня, тест отношения правдоподобия одновременного равенства среднего значения и дисперсии в двух группах, взятых из одной выборки.
Нулевая гипотеза: одновременно средние значения и дисперсия одной переменной в двух группах, взятых из одной выборки, равны.
# Группа тестов 9 SS1 <- as.vector(CreditCard[CreditCard$card=="yes",4]) SS2 <- as.vector(CreditCard[CreditCard$card=="no",4]) # Проверяемая гипотеза: значения среднего дохода и дисперсии дохода для тех, кому одобрили / не одобрили кредитку, одинаковы mvar2.1930PN(SS1, SS2) #тест Пирсона и Неймана # р-значение больше 0.05, гипотеза не отклоняется mvar2.1976PL(SS1, SS2) #тест Пернга и Литтела # р-значение меньше 0.05, гипотеза отклоняется mvar2.1982Muirhead(SS1, SS2) #тест Мюрхеда # р-значение больше 0.05, гипотеза не отклоняется mvar2.2012ZXC(SS1, SS2) #тест Чжана, Сюя, Чэня # р-значение меньше 0.05, гипотеза отклоняется mvar2.LRT(SS1, SS2) #тест отношения правдоподобия # р-значение меньше 0.05, гипотеза отклоняется
Группа тестов № 10
Тест Шапиро-Уилка, тест Шапиро-Франка, тест Жарке и Бера, расширенный тест Жарке и Бера, устойчивый тест Жарке и Бера на соответствие нормальному распределению.
Нулевая гипотеза: переменная распределена по нормальному закону.
# Группа тестов 10 # Проверяемая гипотеза: распределение значений капитала подчинено нормальному закону norm.1965SW(Equipment$capital) #Тест Шапиро-Уилка # р-значение меньше 0.05, гипотеза отклоняется norm.1972SF(Equipment$capital) #тест Шапиро-Франка # р-значение меньше 0.05, гипотеза отклоняется norm.1980JB(Equipment$capital, method = "asymptotic", nreps = 2000) #тест Жарке и Бера norm.1980JB(Equipment$capital, method = "MC", nreps = 2000) # р-значение меньше 0.05, гипотеза отклоняется norm.1996AJB(Equipment$capital, method = "asymptotic", nreps = 2000) #расширенный тест Жарке и Бера norm.1996AJB(Equipment$capital, method = "MC", nreps = 2000) # р-значение меньше 0.05, гипотеза отклоняется norm.2008RJB(Equipment$capital, C1 = 6, C2 = 24, method = "asymptotic", nreps = 2000) #устойчивый тест Жарке и Бера norm.2008RJB(Equipment$capital, C1 = 6, C2 = 24, method = "MC", nreps = 2000) # р-значение меньше 0.05, гипотеза отклоняется
Группа тестов № 11
Тест Лю и тест отношения правдоподобия на одновременное равенство вектора средних значений и ковариационной матрицы установленным значениям.
Нулевая гипотеза: одновременно вектора средних значений многомерной переменной равны данным значениям и ковариационная матрица равна данной.
# Группа тестов 11 S <- matrix(data = c(1,0.2,0.6,0.2,1,0.3,0.6,0.3,1), nrow = 3, ncol = 3) # Проверяемая гипотеза: одновременно вектор средних значений равен установленным значениям и ковариационная матрица между величинами общих затрат, произведенной продукции и заработной платы равна матрице S sim1.2017Liu(as.matrix(Electricity1970[,1:3]), mu0 = c(10,40,60), Sigma0 = S) # Тест Лю # р-значение меньше 0.05, гипотеза отклоняется sim1.LRT(as.matrix(Electricity1970[,1:3]), mu0 = c(10,40,60), Sigma0 = S) # Тест отношения правдоподобий # р-значение меньше 0.05, гипотеза отклоняется
Группа тестов № 12
Тест Хиодо и Хишиямы одновременного равенства средних и ковариационных матриц.
Нулевая гипотеза: одновременно вектора средних значений многомерной переменной и ковариационные матрицы в двух группах, взятых из одной выборки, равны.
# Группа тестов 12 # Проверяемая гипотеза: одновременно вектора средних значений и ковариационные матрицы между величинами возраста, дохода и расходов по кредитной карте для тех, кому одобрили / не одобрили кредитку, равны sim2.2018HN(S1, S2) #Тест Хиодо и Хишиямы # р-значение меньше 0.05, гипотеза отклоняется
Группа тестов № 13
Тест Яна и Модареса однородности ковариационных матриц.
Нулевая гипотеза: ковариационная матрица однородна в некотором гиперпрямоугольнике.
# Группа тестов 13 SS <- as.matrix(cbind(Electricity1970[,1]/max(Electricity1970[,1]),Electricity1970[,2]/max(Electricity1970[,2]),Electricity1970[,3]/max(Electricity1970[,3]))) # Проверяемая гипотеза: ковариационная матрицы между величинами возраста, дохода и расходов равномерно распределена в 3-х мерном прямоугольнике unif.2017YMi(as.matrix(Electricity1970[,1:3])) #Тест Яна и Модареса на основе межточечного расстояния # р-значение меньше 0.05, гипотеза отклоняется # Проверяемая гипотеза: ковариационная матрицы между величинами возраста, дохода и расходов равномерно распределена в 3-х мерном прямоугольнике # Обязательно нормирование в диапазоне 0-1 unif.2017YMq(SS) #Тест Яна и Модареса на основе квантилей # р-значение меньше 0.05, гипотеза отклоняется
Группа тестов № 14
Хи-квадрат тест значения дисперсии.
Нулевая гипотеза: дисперсия равна (больше/меньше) определенного значения.
# Группа тестов 14 # Проверяемая гипотеза: дисперсия уровня дохода равна 1 var1.chisq(Fatalities$income, alternative="g") # Хи-квадрат тест # р-значение меньше 0.05, гипотеза отклоняется # Проверяемая гипотеза: дисперсия уровня дохода больше 1 var1.chisq(Fatalities$income, alternative="l") # Хи-квадрат тест # р-значение больше 0.05, гипотеза не отклоняется # Проверяемая гипотеза: дисперсия уровня дохода меньше 1 var1.chisq(Fatalities$income, alternative="t") # Хи-квадрат тест # р-значение меньше 0.05, гипотеза отклоняется
Группа тестов № 15
F-тест сравнения дисперсий значений в двух группах.
Нулевая гипотеза: дисперсия в первой группе равна (больше/меньше) дисперсии во второй группе.
# Группа тестов 15 S3 <- as.vector(CreditCard[CreditCard$card=="yes",3]) S4 <- as.vector(CreditCard[CreditCard$card=="no",3]) # Проверяемая гипотеза: дисперсия уровня дохода для тех, кому одобрили / не одобрили кредитку, одинакова var2.F(S3,S4, alternative = "two.sided") # F-тест # р-значение больше 0.05, гипотеза не отклоняется # Проверяемая гипотеза: дисперсия уровня дохода для тех, кому одобрили кредитку, больше, чем для тех, кому не одобрили var2.F(S3,S4, alternative = "less") # F-тест # р-значение больше 0.05, гипотеза не отклоняется # Проверяемая гипотеза: дисперсия уровня дохода для тех, кому одобрили кредитку, меньше, чем для тех, кому не одобрили var2.F(S3,S4, alternative = "greater") # F-тест # р-значение больше 0.05, гипотеза не отклоняется
Группа тестов № 16
Тест Бартлетта, тест Левена, тест Брауна-Форсайта равенства значений во многих группах.
Нулевая гипотеза: дисперсия в нескольких группах, взятых из одной выборки, одинакова.
# Группа тестов 16 # Проверяемая гипотеза: дисперсия уровня безработицы в 4 разных группах одинакова vark.1937Bartlett(A2) #Тест Бартлетта # р-значение меньше 0.05, гипотеза отклоняется vark.1960Levene(A2) # тест Левена # р-значение меньше 0.05, гипотеза отклоняется vark.1974BF(A2) #тест Брауна-Форсайта # р-значение меньше 0.05, гипотеза отклоняется
Все материалы (справка к пакету + код), а также оригинальные статьи, в которых более подробно рассмотрены математические и статистические основы (номер в названии статьи равен номеру теста по порядку в пакете) есть на https://github.com/acheremuhin/advance_tests.
