Come eseguire un test di cramer-von mises in r (con esempi)


Il test di Cramer-Von Mises viene utilizzato per determinare se un campione proviene o meno da una distribuzione normale .

Questo tipo di test è utile per determinare se un determinato set di dati proviene o meno da una distribuzione normale, che è un presupposto comunemente utilizzato in molti test statistici, tra cui regressione , ANOVA , test t e molti altri. ‘altri.

Possiamo eseguire facilmente un test di Cramer-Von Mises utilizzando la funzione cvm.test() dal pacchetto goftest in R.

L’esempio seguente mostra come utilizzare questa funzione nella pratica.

Esempio 1: test di Cramer-Von Mises su dati normali

Il codice seguente mostra come eseguire un test di Cramer-Von Mises su un set di dati con dimensione del campione n=100:

 library (goftest)

#make this example reproducible
set. seeds (0)

#create dataset of 100 random values generated from a normal distribution
data <- rnorm(100)

#perform Cramer-Von Mises test for normality
cvm. test (data, ' pnorm ')

	Cramer-von Mises test of goodness-of-fit
	Null hypothesis: Normal distribution
	Parameters assumed to be fixed

data:data
omega2 = 0.078666, p-value = 0.7007

Il valore p del test risulta essere 0,7007 .

Poiché questo valore non è inferiore a 0,05, possiamo supporre che i dati del campione provengano da una popolazione distribuita normalmente.

Questo risultato non dovrebbe sorprendere poiché abbiamo generato i dati di esempio utilizzando la funzione rnorm() , che genera valori casuali da una distribuzione normale standard .

Correlato: Una guida a dnorm, pnorm, qnorm e rnorm in R

Possiamo anche produrre un istogramma per verificare visivamente che i dati del campione siano distribuiti normalmente:

 hist(data, col=' steelblue ') 

Test di Shapiro-Wilk per la normalità in R

Possiamo vedere che la distribuzione è piuttosto a campana con un picco al centro della distribuzione, tipico dei dati distribuiti normalmente.

Esempio 2: test di Cramer-Von Mises su dati non normali

Il codice seguente mostra come eseguire un test di Cramer-Von Mises su un set di dati con una dimensione campionaria pari a 100 in cui i valori sono generati casualmente da una distribuzione di Poisson :

 library (goftest)

#make this example reproducible
set. seeds (0)

#create dataset of 100 random values generated from a Poisson distribution
data <- rpois(n=100, lambda=3)

#perform Cramer-Von Mises test for normality
cvm. test (data, ' pnorm ')

	Cramer-von Mises test of goodness-of-fit
	Null hypothesis: Normal distribution
	Parameters assumed to be fixed

data:data
omega2 = 27.96, p-value < 2.2e-16

Il valore p del test risulta essere estremamente basso.

Poiché questo valore è inferiore a 0,05, abbiamo prove sufficienti per affermare che i dati del campione non provengono da una popolazione distribuita normalmente.

Questo risultato non dovrebbe sorprendere poiché abbiamo generato i dati campione utilizzando la funzione rpois() , che genera valori casuali da una distribuzione di Poisson.

Correlati: una guida a dpois, ppois, qpois e rpois in R

Possiamo anche produrre un istogramma per vedere visivamente che i dati del campione non sono distribuiti normalmente:

 hist(data, col=' coral2 ') 

Istogramma del test di Shapiro-Wilk in R

Possiamo vedere che la distribuzione è distorta a destra e non ha la tipica “forma a campana” associata ad una distribuzione normale.

Pertanto, il nostro istogramma corrisponde ai risultati del test di Cramer-Von Mises e conferma che i dati del nostro campione non provengono da una distribuzione normale.

Cosa fare con i dati non normali

Se un dato set di dati non è distribuito normalmente, spesso possiamo eseguire una delle seguenti trasformazioni per renderlo più normale:

1. Trasformazione del log: trasforma la variabile di risposta da y a log(y) .

2. Trasformazione della radice quadrata: trasforma la variabile di risposta da y a √y .

3. Trasformazione della radice del cubo: trasforma la variabile di risposta da y a y 1/3 .

Eseguendo queste trasformazioni, la variabile di risposta generalmente si avvicina alla distribuzione normale.

Fare riferimento a questo tutorial per vedere come eseguire queste trasformazioni nella pratica.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altri test di normalità in R:

Come eseguire un test di Shapiro-Wilk in R
Come eseguire un test di Anderson-Darling in R
Come eseguire un test di Kolmogorov-Smirnov in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *