Мы внедрили несколько типов статистических проверок гипотез, одним из которых является критерий подходящей модели хи-квадрат - критерий хи-квадрат числа выборок в бинах, определенных по обратному CDF заданного распределения вероятностей. Так, например, чтобы проверить генерацию образца распределения Коши, я запускаю что-то вроде
with(Statistics):
infolevel[Statistics] := 1:
distribution := CauchyDistribution(2, 3):
sample := Sample(distribution, 10^6):
ChiSquareSuitableModelTest(sample, distribution, 'bins' = 100, 'level' = 0.001);
Поскольку я могу генерировать настолько большие сэмплы, насколько мне нравится, я могу сделать довольно маленьким.α
Для распределений с конечными моментами я вычисляю, с одной стороны, количество выборочных моментов, а с другой стороны, я символически вычисляю соответствующие моменты распределения и их стандартную ошибку. Например, для бета-дистрибутива:
with(Statistics):
distribution := BetaDistribution(2, 3):
distributionMoments := Moment~(distribution, [seq(1 .. 10)]);
standardErrors := StandardError[10^6]~(Moment, distribution, [seq(1..10)]);
evalf(distributionMoments /~ standardErrors);
Это показывает уменьшающийся список чисел, последний из которых 255.1085766. Таким образом, даже для 10-го момента значение момента более чем в 250 раз превышает значение стандартной ошибки момента выборки для выборки размером . Это означает, что я могу реализовать тест, который выполняется более или менее следующим образом:106
with(Statistics):
sample := Sample(BetaDistribution(2, 3), 10^6):
sampleMoments := map2(Moment, sample, [seq(1 .. 10)]);
distributionMoments := [2/5, 1/5, 4/35, 1/14, 1/21, 1/30, 4/165, 1/55, 2/143, 1/91];
standardErrors :=
[1/5000, 1/70000*154^(1/2), 1/210000*894^(1/2), 1/770000*7755^(1/2),
1/54600*26^(1/2), 1/210000*266^(1/2), 7/5610000*2771^(1/2),
1/1567500*7809^(1/2), 3/5005000*6685^(1/2), 1/9209200*157366^(1/2)];
deviations := abs~(sampleMoments - distributionMoments) /~ standardErrors;
Числа в distributionMoments
и standardErrors
приходят с первого запуска выше. Теперь, если генерация выборки правильная, числа в отклонениях должны быть относительно небольшими. Я предполагаю, что они приблизительно нормально распределены (что на самом деле не так, но это достаточно близко - вспомните, что это масштабированные версии моментов сэмплов, а не сами сэмплы), и, таким образом, я могу, например, отметить случай, когда отклонение больше 4 - соответствует моменту выборки, который отклоняется более чем в четыре раза от стандартной ошибки от момента распределения. Это вряд ли произойдет случайным образом, если выборка будет хорошей. С другой стороны, если первые 10 моментов выборки соответствуют моментам распределения с точностью до половины процента, мы имеем достаточно хорошее приближение распределения.