Posso testar a hipótese para inclinar dados normais?

11

Eu tenho uma coleção de dados, que originalmente pensei que eram normalmente distribuídos. Na verdade, eu olhei para ele e percebi que não era, principalmente porque os dados estão distorcidos e também fiz um teste de shapiro-wilks.

Eu ainda gostaria de analisá-lo usando métodos estatísticos e, portanto, gostaria de testar a hipótese de normalidade de inclinação.

Então, eu gostaria de saber se há uma maneira de testar a normalidade de inclinação e, se possível, uma biblioteca para fazer o teste para mim.

Squidly
fonte

Respostas:

8

Sobre como ajustar dados a uma distribuição normal de inclinação Você pode calcular o estimador de probabilidade máxima a partir dos primeiros princípios. Observe primeiro que a função densidade de probabilidade para a distribuição normal de inclinação com o parâmetro de localização , parâmetro de escala ω e parâmetro de forma α éξωα

2ωϕ(xξω)Φ(α(xξω))

onde é a função de densidade normal padrão e Φ ( ) é o CDF normal padrão. Observe que essa densidade é um membro da classe descrita na minha resposta a esta pergunta .ϕ()Φ()

A probabilidade de log com base em uma amostra de observações independentes dessa distribuição é:n

nlog(ω)+i=1nlogϕ(xξω)+logΦ(α(xξω))

É fato que não há solução de formulário fechado para este MLE. Mas, pode ser resolvido numericamente. Por exemplo, em R, você pode codificar a função de probabilidade como (observe, eu a tornei menos compacta / eficiente que possível para torná-la completamente transparente como isso calcula a função de probabilidade acima):

set.seed(2345)

# generate standard normal data, which is a special case
n = 100 
X = rnorm(n) 

# Calculate (negative) log likelihood for minimization
# P[1] is omega, P[2] is xi and P[3] is alpha
L = function(P)
{

    # positivity constraint on omega
    if( P[1] <= 0 ) return(Inf)

    S = 0
    for(i in 1:n) 
    {
        S = S - log( dnorm( (X[i] - P[2])/P[1] ) ) 
        S = S - log( pnorm( P[3]*(X[i] - P[2])/P[1] ) ) 
    }


    return(S + n*log(P[1]))
}

Agora, apenas minimizamos numericamente essa função (ou seja, maximizamos a probabilidade). Você pode fazer isso sem ter que calcular derivados usando o algoritmo simplex , que é a implementação padrão no optim()pacote no R.

Sobre como testar a assimetria: Podemos testar explicitamente a normalidade de inclinação versus normal (já que normal é um submodelo) restringindo e fazendo um teste de razão de verossimilhança .α=0

# log likelihood constraining alpha=0. 
L2 = function(Q) L(c(Q[1],Q[2],0))

# log likelihood from the constrained model
-optim(c(1,1),L2)$value
[1] -202.8816

# log likelihood from the full model
-optim(c(1,1,1),L)$value
[1] -202.0064

# likelihood ratio test statistic
LRT = 2*(202.8816-202.0064)

# p-value under the null distribution (chi square 1)
1-pchisq(LRT,1)
[1] 0.1858265

Portanto, não rejeitamos a hipótese nula de que (ou seja, sem inclinação).α=0

Aqui a comparação foi simples, uma vez que a distribuição normal era um submodelo. Em outros casos mais gerais, você pode comparar o desvio normal com outras distribuições de referência comparando, por exemplo, os AICs (conforme feito aqui ) se estiver usando estimadores de probabilidade máxima em todos os ajustes concorrentes. Por exemplo, você pode ajustar os dados pela máxima probabilidade em uma distribuição gama e sob a inclinação normal e ver se a probabilidade adicionada justifica a complexidade adicional da inclinação normal (3 parâmetros em vez de 2). Você também pode considerar usar o teste de Kolmogorov Smirnov de uma amostra para comparar seus dados com a estimativa de melhor ajuste da família de inclinação normal.

Macro
fonte
1
+1, acho que essa é uma resposta clara, completa e construtiva. Eu tenho 1 nitpick / preocupação no parágrafo final sobre o uso da AIC. Um problema que tenho com os vários critérios de informação é que eles assumem que todos os parâmetros contribuem igualmente para a capacidade do modelo de ajustar os dados. Ao avaliar diferentes modelos de regressão múltipla, acho que está bem; no entanto, se examinar diferentes tipos de distribuições, não está claro para mim a priori que todos os parâmetros oferecem flexibilidade igual. Assim, estou desconfortável com isso. Qual a sua posição sobre esse assunto?
gung - Restabelece Monica
αα=0α(μ,σ,α)
@ Gung, este é um bom ponto. Eu estava usando o AIC como um exemplo mais do que tudo - algo mais poderia ser usado -, mas vi pessoas usarem o AIC para comparar modelos com diferentes distribuições de erros, o que efetivamente faz a mesma suposição de que todos os parâmetros são "criados iguais". Você já viu alguma literatura sobre esse assunto? Eu estaria interessado.
Macro
α=0±.9α±αα
1
α
5

Eu sou um estatístico que trabalha nesta profissão há mais de 30 anos e antes de ler este post eu nunca tinha ouvido falar da distribuição normal distorcida. Se você possui dados altamente inclinados, por que deseja analisar especificamente a inclinação normal em oposição a lognormal ou gama? Sempre que houver uma família paramétrica de distribuições, como gama, lognormal ou inclinação normal, você poderá aplicar um teste de ajuste de qualidade, como qui-quadrado ou Kolmogorov-Smirnov.

Michael R. Chernick
fonte
5
A inclinação normal de Azzalini é uma distribuição popular proposta em 1985. Ela tem suporte em toda a linha real.
1
@ Procrastinator Eu sei disso agora e provavelmente deveria ter ouvido falar disso antes. Mas acho que meu argumento é que, como nunca ouvi falar, talvez seja um pouco mais obscuro do que outras distribuições distorcidas. Eu entendi o suporte sobre toda a linha real, em oposição aos meus exemplos, que têm suporte apenas em [0.∞) ou {a, ∞) se um parâmetro shift for adicionado. Essas distribuições são apenas aproximações para descrever como os dados são distribuídos. Realmente sabemos que todos os valores negativos são possíveis? Em casos práticos, os dados provavelmente têm limites inferior e superior.
Michael R. Chernick 28/05
1
@ Procrastinator Isso não tem nada a ver com o meu comentário. Estou dizendo que os dados reais geralmente são realmente limitados, mesmo quando podem ser bem aproximados com distribuições ilimitadas.
Michael R. Chernick
1
@ Procrastinator Não é bem assim. Se você receber um conjunto finito de números, não poderá saber pelos dados se eles vêm ou não de uma distribuição discreta ou contínua. O mesmo vale para os limites. Estou dizendo que, além dos dados, você saberia estritamente com base no que está medindo, se é limitado ou não, contínuo ou discreto. Se, por exemplo, você está medindo o peso de uma pessoa, sabe que o peso é maior que 0 e limitado acima por limitações físicas, diga 5000 libras.
Michael R. Chernick 28/05
1
Além disso, embora as medições de peso possam ser determinadas apenas para um determinado número de casas decimais, é razoável tratar o peso como contínuo. Agora, se você vai jogar uma moeda 10 vezes, sabe que o número de caras que receberá terá de ser um número inteiro entre 0 e 10 (tão discreto e limitado). Meu argumento é que os limites na distribuição geralmente são muito aparentes. Não é tão claro ao decidir entre distribuições contínuas e discretas.
Michael R. Chernick 28/05
1

Portanto, minha solução no final foi baixar o pacote fGarch , e snormFitfornecido pelo fGarch para obter MLEs para os parâmetros em um Skewed-Normal.

Em seguida, liguei esses parâmetros, com a dsnormfunção fornecida pelo fGarch, em um teste de Kolmogorov-Smirnov.

Squidly
fonte
Como você pode combinar o MLE e o teste de Kolmogorov-Smirnov, que é um teste não paramétrico?
Gostaria de salientar que não tenho ideia do que estou fazendo, e apenas vagando cegamente. Supus que o KS funcionasse como um qui-quadrado e analisasse as diferenças entre quais dados de amostra eu tenho e qual deveria ser a distribuição em si. O ks.test de R aceita primeiro os dados da amostra e, em seguida, uma distribuição, juntamente com os parâmetros para essa distribuição. Eu usei os MLEs como parâmetros. Além disso, a minha suposição / remberance de como qui-quadrado obras também poderia ter sido errado ...
squidly
H0:λ=0
H0=λ=0H0
1
@ Procrastinator Existem muitos testes de ajuste de qualidade com base no cdf empírico. Kolmogorov Smirnov é um deles. Esses testes podem ser usados ​​para comparar o cdf empírico a qualquer distribuição específica (e com ajustes quando parâmetros desconhecidos são estimados antes do teste. Você está absolutamente certo que rejeitar uma distribuição por normalidade, por exemplo, não diz como as distribuições diferem. Mas MrBones se ele quer fazer isso formalmente ele pode testar a assimetria significativa e depois fazer um KS ou o teste do qui-quadrado para a inclinação normal de Ajustes podem ser feitos para testes de múltipla por ser complacente com o OP..?
Michael R. Chernick
0

Confira http://www.egyankosh.ac.in/bitstream/123456789/25807/1/Unit6.pdf e http://en.wikipedia.org/wiki/Skewness

Você pode usar o teste de Karl Pearson para distorção. A razão do terceiro momento para o cubo do desvio padrão é chamada de coeficiente de assimetria. Distribuições simétricas teriam assimetria = 0

NaN
fonte
2
Não estou querendo descobrir a inclinação dos meus dados. Eu sei que é distorcido. Quero saber se meus dados seguem uma distribuição normal de inclinação.
Squidly
2
Qual software você está usando, o R possui um pacote 'sn' (skew normal) que contém funções que calculam as estimativas de ML. Porém, não tenho certeza das funções exatas - consulte este site azzalini.stat.unipd.it/SN para obter detalhes sobre o pacote R
NaN
0

no SPSS, é possível obter uma estimativa da assimetria (analisando e, em seguida, descritivos e, em seguida, marcar a assimetria); em seguida, você obtém uma pontuação da assimetria e SE (erro padrão) da assimetria. Divida a assimetria pelo seu SE e, se sua pontuação estiver entre + -1,96, é normalmente distorcida. Se não for assimétrico, existem muitos testes não paramétricos por aí! Boa sorte e tudo de bom!

uri
fonte