Задание. Нарисовать графики выборочных плотностей статистик для критерия Пирсона, для случая нулевой гипотезы и альтернативной.

Пусть наша выборка из стандартного нормального распределения (среднее=0, дисперсия=1) \(\mathcal{N}(0, 1)\).

Гипотеза \(H_0\) будет состоять в том, что распределение \(\mathcal{N}(0, 1)\)

Альтернативная гипотеза \(H_1\) будет состоять в том, что распределение \(\mathcal{N}(0.2, 1)\)

Определим функцию chiStatisticGen, которая считает статистику \({\chi}^2\) для случайной выборки, полученной из генератора. Число карманов, при вычислении статистики, у нас будет равно 10.

DF <- 10
I_ERROR_P = 0.05
chiStatisticGen <- function(bins, mean, sd,  N = 1000){
  sample <- rnorm(N, mean=mean, sd=sd)
  breaks <- seq(min(sample), max(sample), length.out = bins + 1)
  hst <- hist(sample, breaks=breaks, plot=FALSE)
  breaks_cdf <- pnorm(hst$breaks, mean = 0, sd = 1)
  probs = rollapply(breaks_cdf, 2, function(x) x[2]-x[1])
  #chiTest <- chisq.test(hst$counts, p=probs)
  probsN <- probs * N
  ls <- mapply(function(a,b){ ((a - b) ^ 2) / b }, hst$counts, probsN)
  list(statistic = Reduce('+', ls), test = list())
}

Сгенерируем две выборки для статитстики, для случая \(H_0\) и \(H_1\)

ff1 <- function(n) chiStatisticGen(DF, 0, 1)$statistic
ff2 <- function(n) chiStatisticGen(DF, 0.2, 1)$statistic
h0_pdf = data.frame(unlist(Map(ff1, seq(1, 1000))))
h1_pdf = data.frame(unlist(Map(ff2, seq(1, 1000))))
colnames(h0_pdf) <- c('value')
colnames(h1_pdf) <- c('value')

Построим гистограммы выборочных плотностей ститистик в случае гипотез \(H_0\) (красным) и \(H_1\) (зеленым).

Синим цветом обозначена теоритическая плотность распределения \({\chi^2_{k-1}}\)

Синми закрашена критическая область для уровня значимости 0.05

s <- qchisq(1-I_ERROR_P, df = DF - 1)
chiValues <- data.frame(matrix(unlist(Map(function(x) c(x, dchisq(x,df=DF-1)), seq(s, 35))), byrow = TRUE, ncol = 2))
criticalArea <- rbind(c(s, 0), chiValues)
ggplot(data=h0_pdf) + geom_histogram(aes(x=value, y=..density..), col='red', alpha=0.5, fill='red', binwidth=2) + stat_function(size=1.3,fun=dchisq, col='blue', args=list(df=DF-1)) + geom_histogram(data=h1_pdf, aes(x=value, y=..density..), col='green', alpha=0.5, fill='green', binwidth=2) + xlim(c(0,100)) + geom_polygon(data=criticalArea, aes(X1,X2), fill='blue')

Определим мощность критерия. Мощность критерия - это вероятность отклонить гипотезу \(H_0\), если на самом деле верна алтернативная гипотеза \[ P(T \in \Omega_{\alpha} \mid H_1) \]

Графически, эта вероятность будет равна площади под зеленым графиком при \(x>=16.918\)

v <- qchisq(1 - I_ERROR_P, df=DF-1)
power = 1 - ecdf(h1_pdf$value)(v)

Получаем мощность критерия равна 0.996. Имея мощность, можем вычислить вероятность ошибки II рода, получаем 0.004

LS0tCnRpdGxlOiAi0JvQsNCx0L7RgNCw0YLQvtGA0L3QsNGPIOKEljUiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCmBgYHtyIGVjaG89RkFMU0V9CmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeSh6b28pCmBgYAoKCiMjIyDQl9Cw0LTQsNC90LjQtS4g0J3QsNGA0LjRgdC+0LLQsNGC0Ywg0LPRgNCw0YTQuNC60Lgg0LLRi9Cx0L7RgNC+0YfQvdGL0YUg0L/Qu9C+0YLQvdC+0YHRgtC10Lkg0YHRgtCw0YLQuNGB0YLQuNC6INC00LvRjyDQutGA0LjRgtC10YDQuNGPINCf0LjRgNGB0L7QvdCwLCDQtNC70Y8g0YHQu9GD0YfQsNGPINC90YPQu9C10LLQvtC5INCz0LjQv9C+0YLQtdC30Ysg0Lgg0LDQu9GM0YLQtdGA0L3QsNGC0LjQstC90L7QuS4KCgrQn9GD0YHRgtGMINC90LDRiNCwINCy0YvQsdC+0YDQutCwINC40Lcg0YHRgtCw0L3QtNCw0YDRgtC90L7Qs9C+INC90L7RgNC80LDQu9GM0L3QvtCz0L4g0YDQsNGB0L/RgNC10LTQtdC70LXQvdC40Y8gKNGB0YDQtdC00L3QtdC1PTAsINC00LjRgdC/0LXRgNGB0LjRjz0xKSAkXG1hdGhjYWx7Tn0oMCwgMSkkLgoK0JPQuNC/0L7RgtC10LfQsCAkSF8wJCDQsdGD0LTQtdGCINGB0L7RgdGC0L7Rj9GC0Ywg0LIg0YLQvtC8LCDRh9GC0L4g0YDQsNGB0L/RgNC10LTQtdC70LXQvdC40LUgJFxtYXRoY2Fse059KDAsIDEpJAoK0JDQu9GM0YLQtdGA0L3QsNGC0LjQstC90LDRjyDQs9C40L/QvtGC0LXQt9CwICRIXzEkINCx0YPQtNC10YIg0YHQvtGB0YLQvtGP0YLRjCDQsiDRgtC+0LwsINGH0YLQviDRgNCw0YHQv9GA0LXQtNC10LvQtdC90LjQtSAkXG1hdGhjYWx7Tn0oMC4yLCAxKSQKCgrQntC/0YDQtdC00LXQu9C40Lwg0YTRg9C90LrRhtC40Y4gY2hpU3RhdGlzdGljR2VuLCDQutC+0YLQvtGA0LDRjyDRgdGH0LjRgtCw0LXRgiDRgdGC0LDRgtC40YHRgtC40LrRgyAke1xjaGl9XjIkINC00LvRjyDRgdC70YPRh9Cw0LnQvdC+0Lkg0LLRi9Cx0L7RgNC60LgsINC/0L7Qu9GD0YfQtdC90L3QvtC5INC40Lcg0LPQtdC90LXRgNCw0YLQvtGA0LAuINCn0LjRgdC70L4g0LrQsNGA0LzQsNC90L7Qsiwg0L/RgNC4INCy0YvRh9C40YHQu9C10L3QuNC4INGB0YLQsNGC0LjRgdGC0LjQutC4LCDRgyDQvdCw0YEg0LHRg9C00LXRgiDRgNCw0LLQvdC+IDEwLgoKYGBge3J9CgpERiA8LSAxMApJX0VSUk9SX1AgPSAwLjA1CgpjaGlTdGF0aXN0aWNHZW4gPC0gZnVuY3Rpb24oYmlucywgbWVhbiwgc2QsICBOID0gMTAwMCl7CiAgc2FtcGxlIDwtIHJub3JtKE4sIG1lYW49bWVhbiwgc2Q9c2QpCiAgYnJlYWtzIDwtIHNlcShtaW4oc2FtcGxlKSwgbWF4KHNhbXBsZSksIGxlbmd0aC5vdXQgPSBiaW5zICsgMSkKICBoc3QgPC0gaGlzdChzYW1wbGUsIGJyZWFrcz1icmVha3MsIHBsb3Q9RkFMU0UpCiAgYnJlYWtzX2NkZiA8LSBwbm9ybShoc3QkYnJlYWtzLCBtZWFuID0gMCwgc2QgPSAxKQogIHByb2JzID0gcm9sbGFwcGx5KGJyZWFrc19jZGYsIDIsIGZ1bmN0aW9uKHgpIHhbMl0teFsxXSkKICAjY2hpVGVzdCA8LSBjaGlzcS50ZXN0KGhzdCRjb3VudHMsIHA9cHJvYnMpCiAgcHJvYnNOIDwtIHByb2JzICogTgogIGxzIDwtIG1hcHBseShmdW5jdGlvbihhLGIpeyAoKGEgLSBiKSBeIDIpIC8gYiB9LCBoc3QkY291bnRzLCBwcm9ic04pCiAgbGlzdChzdGF0aXN0aWMgPSBSZWR1Y2UoJysnLCBscyksIHRlc3QgPSBsaXN0KCkpCn0KCmBgYAoKCtCh0LPQtdC90LXRgNC40YDRg9C10Lwg0LTQstC1INCy0YvQsdC+0YDQutC4INC00LvRjyDRgdGC0LDRgtC40YLRgdGC0LjQutC4LCDQtNC70Y8g0YHQu9GD0YfQsNGPICRIXzAkINC4ICRIXzEkCmBgYHtyfQpmZjEgPC0gZnVuY3Rpb24obikgY2hpU3RhdGlzdGljR2VuKERGLCAwLCAxKSRzdGF0aXN0aWMKZmYyIDwtIGZ1bmN0aW9uKG4pIGNoaVN0YXRpc3RpY0dlbihERiwgMC4yLCAxKSRzdGF0aXN0aWMKCmgwX3BkZiA9IGRhdGEuZnJhbWUodW5saXN0KE1hcChmZjEsIHNlcSgxLCAxMDAwKSkpKQpoMV9wZGYgPSBkYXRhLmZyYW1lKHVubGlzdChNYXAoZmYyLCBzZXEoMSwgMTAwMCkpKSkKCmNvbG5hbWVzKGgwX3BkZikgPC0gYygndmFsdWUnKQpjb2xuYW1lcyhoMV9wZGYpIDwtIGMoJ3ZhbHVlJykKYGBgCgoK0J/QvtGB0YLRgNC+0LjQvCDQs9C40YHRgtC+0LPRgNCw0LzQvNGLINCy0YvQsdC+0YDQvtGH0L3Ri9GFINC/0LvQvtGC0L3QvtGB0YLQtdC5INGB0YLQuNGC0LjRgdGC0LjQuiDQsiDRgdC70YPRh9Cw0LUg0LPQuNC/0L7RgtC10LcgJEhfMCQgKNC60YDQsNGB0L3Ri9C8KSDQuCAkSF8xJCAo0LfQtdC70LXQvdGL0LwpLgoK0KHQuNC90LjQvCDRhtCy0LXRgtC+0Lwg0L7QsdC+0LfQvdCw0YfQtdC90LAg0YLQtdC+0YDQuNGC0LjRh9C10YHQutCw0Y8g0L/Qu9C+0YLQvdC+0YHRgtGMINGA0LDRgdC/0YDQtdC00LXQu9C10L3QuNGPICR7XGNoaV4yX3trLTF9fSQKCtCh0LjQvdC80Lgg0LfQsNC60YDQsNGI0LXQvdCwINC60YDQuNGC0LjRh9C10YHQutCw0Y8g0L7QsdC70LDRgdGC0Ywg0LTQu9GPINGD0YDQvtCy0L3RjyDQt9C90LDRh9C40LzQvtGB0YLQuCBgciBJX0VSUk9SX1BgCgpgYGB7cn0KCnMgPC0gcWNoaXNxKDEtSV9FUlJPUl9QLCBkZiA9IERGIC0gMSkKY2hpVmFsdWVzIDwtIGRhdGEuZnJhbWUobWF0cml4KHVubGlzdChNYXAoZnVuY3Rpb24oeCkgYyh4LCBkY2hpc3EoeCxkZj1ERi0xKSksIHNlcShzLCAzNSkpKSwgYnlyb3cgPSBUUlVFLCBuY29sID0gMikpCmNyaXRpY2FsQXJlYSA8LSByYmluZChjKHMsIDApLCBjaGlWYWx1ZXMpCgoKZ2dwbG90KGRhdGE9aDBfcGRmKSArIGdlb21faGlzdG9ncmFtKGFlcyh4PXZhbHVlLCB5PS4uZGVuc2l0eS4uKSwgY29sPSdyZWQnLCBhbHBoYT0wLjUsIGZpbGw9J3JlZCcsIGJpbndpZHRoPTIpICsgc3RhdF9mdW5jdGlvbihzaXplPTEuMyxmdW49ZGNoaXNxLCBjb2w9J2JsdWUnLCBhcmdzPWxpc3QoZGY9REYtMSkpICsgZ2VvbV9oaXN0b2dyYW0oZGF0YT1oMV9wZGYsIGFlcyh4PXZhbHVlLCB5PS4uZGVuc2l0eS4uKSwgY29sPSdncmVlbicsIGFscGhhPTAuNSwgZmlsbD0nZ3JlZW4nLCBiaW53aWR0aD0yKSArIHhsaW0oYygwLDEwMCkpICsgZ2VvbV9wb2x5Z29uKGRhdGE9Y3JpdGljYWxBcmVhLCBhZXMoWDEsWDIpLCBmaWxsPSdibHVlJykKYGBgCgrQntC/0YDQtdC00LXQu9C40Lwg0LzQvtGJ0L3QvtGB0YLRjCDQutGA0LjRgtC10YDQuNGPLiDQnNC+0YnQvdC+0YHRgtGMINC60YDQuNGC0LXRgNC40Y8gLSDRjdGC0L4g0LLQtdGA0L7Rj9GC0L3QvtGB0YLRjCDQvtGC0LrQu9C+0L3QuNGC0Ywg0LPQuNC/0L7RgtC10LfRgyAkSF8wJCwg0LXRgdC70Lgg0L3QsCDRgdCw0LzQvtC8INC00LXQu9C1INCy0LXRgNC90LAg0LDQu9GC0LXRgNC90LDRgtC40LLQvdCw0Y8g0LPQuNC/0L7RgtC10LfQsAokJApQKFQgXGluIFxPbWVnYV97XGFscGhhfSBcbWlkIEhfMSkKJCQKCtCT0YDQsNGE0LjRh9C10YHQutC4LCDRjdGC0LAg0LLQtdGA0L7Rj9GC0L3QvtGB0YLRjCDQsdGD0LTQtdGCINGA0LDQstC90LAg0L/Qu9C+0YnQsNC00Lgg0L/QvtC0INC30LXQu9C10L3Ri9C8INCz0YDQsNGE0LjQutC+0Lwg0L/RgNC4ICR4Pj0xNi45MTgkCgpgYGB7cn0KdiA8LSBxY2hpc3EoMSAtIElfRVJST1JfUCwgZGY9REYtMSkKcG93ZXIgPSAxIC0gZWNkZihoMV9wZGYkdmFsdWUpKHYpCmBgYAoK0J/QvtC70YPRh9Cw0LXQvCDQvNC+0YnQvdC+0YHRgtGMINC60YDQuNGC0LXRgNC40Y8g0YDQsNCy0L3QsCBgciBwb3dlcmAuINCY0LzQtdGPINC80L7RidC90L7RgdGC0YwsINC80L7QttC10Lwg0LLRi9GH0LjRgdC70LjRgtGMINCy0LXRgNC+0Y/RgtC90L7RgdGC0Ywg0L7RiNC40LHQutC4IElJINGA0L7QtNCwLCDQv9C+0LvRg9GH0LDQtdC8IGByIDEgLSBwb3dlcmAgCg==