Posso testare l'ipotesi per dati normali obliqui?


11

Ho una raccolta di dati, che inizialmente pensavo fossero normalmente distribuiti. Poi l'ho effettivamente guardato, e ho capito che non lo era, principalmente perché i dati sono distorti, e ho anche fatto un test su shapiro-wilks.

Mi piacerebbe ancora analizzarlo usando metodi statistici, e quindi mi piacerebbe testare l'ipotesi di skew-normalità.

Quindi mi piacerebbe sapere se c'è un modo per testare la normalità distorta e, se possibile, una biblioteca per fare il test per me.

Risposte:


8

Informazioni su come adattare i dati a una distribuzione normale obliqua È possibile calcolare lo stimatore della massima verosimiglianza dai primi principi. Prima nota che la funzione di densità di probabilità per la distribuzione normale inclinata con il parametro di posizione , il parametro di scala ω e il parametro di forma α èξωα

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

dove è la funzione di densità normale standard e Φ ( ) è la CDF normale standard. Nota che questa densità è un membro della classe descritta nella mia risposta a questa domanda .ϕ()Φ()

La probabilità logaritmica basata su un campione di osservazioni indipendenti da questa distribuzione è:n

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

È un dato di fatto che non esiste una soluzione a forma chiusa per questo MLE. Ma può essere risolto numericamente. Ad esempio, in R, potresti codificare la funzione di verosimiglianza come (nota, l'ho resa meno compatta / efficiente del possibile per renderla completamente trasparente come questo calcola la funzione di verosimiglianza sopra):

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]))
}

Ora minimizziamo numericamente questa funzione (cioè massimizziamo la probabilità). Puoi farlo senza dover calcolare le derivate usando l' algoritmo Simplex , che è l'implementazione predefinita nel optim()pacchetto in R.

α=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

α=0

Qui il confronto era semplice, poiché la distribuzione normale era un modello secondario. In altri casi più generali, è possibile confrontare lo skew-normal con altre distribuzioni di riferimento confrontando, ad esempio, AIC (come fatto qui ) se si utilizzano gli stimatori della massima probabilità in tutti gli adattamenti concorrenti. Ad esempio, è possibile adattare i dati con la massima verosimiglianza a una distribuzione gamma e al disallineamento normale e vedere se la verosimiglianza aggiunta giustifica la complessità aggiunta del disallineamento normale (3 parametri anziché 2). Potresti anche prendere in considerazione l'utilizzo del test di Kolmogorov Smirnov per un campione per confrontare i tuoi dati con la migliore stima della famiglia normale inclinata.


1
+1, penso che questa sia una risposta chiara, completa e costruttiva. Ho 1 nitpick / preoccupazione nel paragrafo finale sull'uso dell'AIC. Un problema che ho con i vari criteri di informazione è che presuppongono che tutti i parametri contribuiscano in modo uguale alla capacità del modello di adattarsi ai dati. Nel valutare diversi modelli di regressione multipla, penso che vada bene; tuttavia, se si esaminano diversi tipi di distribuzioni, non mi è chiaro a priori che tutti i parametri offrono pari flessibilità. Quindi, mi sento a disagio con quello. Qual è la tua posizione su questo problema?
gung - Ripristina Monica

αα=0α(μ,σ,α)

@gung, questo è un buon punto. Stavo usando AIC come esempio più di ogni altra cosa - si potrebbe usare qualcos'altro - ma ho visto le persone usare AIC per confrontare i modelli con diverse distribuzioni di errori, il che sta effettivamente facendo lo stesso presupposto che tutti i parametri siano "creati uguali". Hai visto qualche letteratura su questo argomento? Sarei interessato
Macro,

α=0±.9α±αα

1
α

5

Sono uno statistico che lavora in questa professione da oltre 30 anni e prima di leggere questo post non avevo mai sentito parlare della normale distribuzione distorta. Se si dispone di dati altamente distorti, perché si desidera in particolare guardare l'inclinazione normale rispetto a lognormale o gamma? Ogni volta che si dispone di una famiglia parametrica di distribuzioni come gamma, lognormale o inclinazione normale, è possibile applicare un test di bontà di adattamento come chi-quadrato o Kolmogorov-Smirnov.


5
L'Azzalini skew normal è una distribuzione popolare proposta nel 1985. Ha il supporto su tutta la linea reale.

1
@Procrastinator Lo so che ora e probabilmente avrei dovuto sentirne parlare prima. Ma suppongo che il mio punto sia che, poiché non ne avevo sentito parlare, forse è un po 'più oscuro di altre distribuzioni distorte. Ottengo il punto sul supporto su tutta la linea reale al contrario dei miei esempi che hanno supporto solo su [0.∞) o {a, ∞) se viene aggiunto un parametro shift. Queste distribuzioni sono solo approssimazioni per descrivere come sono distribuiti i dati. Sappiamo davvero che sono possibili tutti i valori negativi? In casi pratici i dati hanno probabilmente limiti inferiori e superiori.
Michael R. Chernick,

1
@Procrastinator Questo non ha nulla a che fare con il mio commento. Sto dicendo che i dati reali sono spesso veramente limitati anche quando possono essere ben approssimati con distribuzioni illimitate.
Michael R. Chernick,

1
@Procrastinator Non proprio. Se ti viene dato un numero finito di numeri, non puoi dire dai dati se provengono o meno da una distribuzione discreta o continua. Lo stesso vale per il limite. Sto dicendo che, a parte i dati, lo sapresti rigorosamente sulla base di ciò che stai misurando, indipendentemente dal fatto che sia limitato o continuo o discreto. Se per esempio stai misurando il peso di una persona, sai che il peso è maggiore di 0 e limitato da limiti fisici, diciamo 5000 sterline.
Michael R. Chernick,

1
Inoltre, anche se le misurazioni del peso possono essere determinate solo con un determinato numero di cifre decimali, è ragionevole considerare il peso come continuo. Ora, se lancerai una moneta 10 volte, sai che il numero di teste che otterrai sarà un numero intero compreso tra 0 e 10 (quindi discreto e limitato). Il mio punto è che i limiti della distribuzione sono generalmente molto evidenti. Non è chiaro quando si decide tra distribuzioni continue e discrete.
Michael R. Chernick,

1

Quindi la mia soluzione alla fine è stata quella di scaricare il pacchetto fGarch e snormFitfornito da fGarch per ottenere gli MLE per i parametri in un Skewed-Normal.

Quindi ho inserito quei parametri, con la dsnormfunzione fornita da fGarch, in un test di Kolmogorov-Smirnov.


Come puoi combinare MLE e il test di Kolmogorov-Smirnov, che è un test non parametrico?

Vorrei sottolineare che non ho idea di cosa sto facendo e che vaga solo alla cieca. Ho pensato che KS funzionasse come il chi-quadrato, e ha esaminato le differenze tra quali dati campione ho e quale dovrebbe essere la distribuzione stessa. R's ks.test accetta innanzitutto i dati di esempio, quindi una distribuzione, insieme ai parametri di tale distribuzione. Ho usato gli MLE come parametri. Inoltre, la mia ipotesi / ricordo di come funziona il Chi-quadrato potrebbe anche essere stata sbagliata ...
Squidly,

H0:λ=0

H0=λ=0H0

1
@Procrastinator Esistono molti test di idoneità basati sul cdf empirico. Kolmogorov Smirnov è uno. Questi test possono essere usati per confrontare il cdf empirico con qualsiasi distribuzione specifica (e con aggiustamenti quando vengono stimati parametri sconosciuti prima del test. Hai assolutamente ragione nel rifiutare una distribuzione per normalità, ad esempio, non dice in che modo differiscono le distribuzioni. Ma MrBones se lui vuole farlo formalmente, può testare una significativa asimmetria e quindi fare un test KS o chi quadrato per inclinazione normale. È possibile effettuare regolazioni per più test. Perché essere compiaciuto con l'OP?
Michael R. Chernick,

0

Dai un'occhiata a http://www.egyankosh.ac.in/bitstream/123456789/25807/1/Unit6.pdf e http://en.wikipedia.org/wiki/Skewness

Puoi usare il test di Karl Pearson per l'asimmetria. Il rapporto tra il terzo momento e il cubo della deviazione standard è chiamato coefficiente di asimmetria. Le distribuzioni simmetriche avrebbero asimmetria = 0


2
Non voglio risolvere l'inclinazione dei miei dati. So che è distorto. Voglio sapere se i miei dati seguono una distribuzione normale obliqua.
Squidly,

2
Quale software stai usando, R ha un pacchetto 'sn' (skew normal) che contiene funzioni che calcolano le stime ML. Non sono sicuro delle esatte funzioni però - controlla questo sito azzalini.stat.unipd.it/SN per i dettagli sul pacchetto R
NaN,

0

in SPSS è possibile ottenere una stima dell'asimmetria (andando ad analizzare e quindi i descrittivi e quindi contrassegnare l'asimmetria) quindi si ottiene un punteggio di asimmetria e SE (errore standard) di asimmetria. Dividi l'asimmetria per la sua SE e se il tuo punteggio è compreso tra + -1,96 è normalmente obliqua. Se non è inclinato, allora ci sono molti test non parametrici là fuori! Buona fortuna e tutto il meglio!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.