Implementamos alguns tipos de teste estatístico de hipóteses, um dos quais é o teste do modelo adequado ao quadrado do qui - um teste do qui quadrado do número de amostras em caixas determinadas a partir do CDF inverso da distribuição de probabilidade fornecida. Por exemplo, para testar a geração de amostras de distribuição Cauchy, eu corro algo como
with(Statistics):
infolevel[Statistics] := 1:
distribution := CauchyDistribution(2, 3):
sample := Sample(distribution, 10^6):
ChiSquareSuitableModelTest(sample, distribution, 'bins' = 100, 'level' = 0.001);
Como posso gerar uma amostra tão grande quanto eu quiser, posso tornar bem pequeno.α
Para distribuições com momentos finitos, eu calculo, por um lado, vários momentos de amostra e, por outro lado, calculo simbolicamente os momentos de distribuição correspondentes e seu erro padrão. Então, por exemplo, a distribuição beta:
with(Statistics):
distribution := BetaDistribution(2, 3):
distributionMoments := Moment~(distribution, [seq(1 .. 10)]);
standardErrors := StandardError[10^6]~(Moment, distribution, [seq(1..10)]);
evalf(distributionMoments /~ standardErrors);
Isso mostra uma lista decrescente de números, o último dos quais é 255.1085766. Assim, mesmo no décimo momento, o valor do momento é mais de 250 vezes o valor do erro padrão do momento da amostra para uma amostra de tamanho . Isso significa que eu posso implementar um teste que seja executado mais ou menos da seguinte maneira: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;
Os números distributionMoments
e standardErrors
vêm da primeira execução acima. Agora, se a geração da amostra estiver correta, os números nos desvios devem ser relativamente pequenos. Suponho que eles sejam distribuídos aproximadamente normalmente (o que não é realmente, mas chega perto o suficiente - lembre-se de que são versões em escala de momentos de amostra, não as próprias amostras) e, portanto, posso, por exemplo, sinalizar um caso em que um desvio é maior que 4 - correspondendo a um momento de amostra que desvia mais de quatro vezes o erro padrão do momento de distribuição. É muito improvável que isso ocorra aleatoriamente se a geração da amostra for boa. Por outro lado, se os 10 primeiros momentos da amostra corresponderem aos momentos da distribuição em menos de meio por cento, teremos uma boa aproximação da distribuição.
Bruce McCullough tinha um pouco de uma indústria caseira na avaliação de software estatístico (no sentido mais amplo; ele também testou o Microsoft Excel. E achou isso necessário). Dois artigos que ilustram parte de sua abordagem estão aqui e aqui.
fonte
Muitos detalhes são dados pelo presidente da StataCorp, William Gould, neste artigo do Stata Journal. 1 É um artigo muito interessante sobre controle de qualidade de software estatístico.
fonte