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.