Come eseguire una trasformazione del registro in sas

Molti test statistici presuppongono che i valori di una particolare variabile siano distribuiti normalmente .

Tuttavia, i valori spesso non sono distribuiti normalmente. Un modo per risolvere questo problema è trasformare la variabile prendendo il logaritmo di ciascun valore.

Eseguendo questa trasformazione, una variabile generalmente si avvicina alla distribuzione normale.

L’esempio seguente mostra come eseguire una trasformazione del log su una variabile in SAS.

Esempio: trasformazione del registro in SAS

Supponiamo di avere il seguente set di dati in SAS:

 /*create dataset*/
data my_data;
    input x;
    datalines ;
1
1
1
2
2
2
2
2
2
3
3
3
6
7
8
;
run ;

/*view dataset*/
proc print data =my_data;

Possiamo usare PROC UNIVARIATE per eseguire test di normalità sulla variabile x per determinare se è distribuita normalmente e anche creare un istogramma per visualizzare la distribuzione dei valori:

 /*create histogram and perform normality tests*/
proc univariate data =my_data normal ; 
histogram x;
run ; 

Nell’ultima tabella intitolata Test di normalità , possiamo vedere che il valore p del test di Shapiro-Wilk è inferiore a 0,05, il che fornisce una forte prova che la variabile x non è distribuita normalmente.

L’istogramma mostra anche che la distribuzione dei valori non sembra essere distribuita normalmente:

Possiamo tentare una trasformazione del registro sul set di dati originale per vedere se possiamo produrre un set di dati distribuito in modo più normale.

Possiamo utilizzare il codice seguente per creare un nuovo set di dati in SAS in cui prendiamo il registro di ciascuno dei valori x originali:

 /*use log transformation to create new dataset*/
data log_data;
    set my_data;
    x = log (x);
run ;

/*view log transformed data*/
proc print data =log_data; 

Possiamo quindi utilizzare nuovamente PROC UNIVARIATE per eseguire test di normalità sulla variabile trasformata e produrre anche un istogramma:

 /*create histogram and perform normality tests*/
proc univariate data =log_data normal ; 
histogram x;
run ; 

Nell’ultima tabella intitolata Test di normalità, possiamo vedere che il valore p per il test di Shapiro-Wilk è ora maggiore di 0,05.

L’istogramma mostra anche che la distribuzione dei valori è leggermente più normale rispetto a prima della trasformazione:

Sulla base dei risultati del test di Shapiro-Wilk e dell’istogramma presentato sopra, concluderemmo che la trasformazione logaritmica ha creato una variabile distribuita molto più normalmente rispetto alla variabile originale.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in SAS:

Come identificare i valori anomali in SAS
Come calcolare la distanza di cottura in SAS
Come creare istogrammi in SAS

Aggiungi un commento

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