Come creare un grafico qq in sas


Un grafico QQ, abbreviazione di “quantile-quantile”, viene utilizzato per valutare se un set di dati proviene potenzialmente da una distribuzione teorica.

Nella maggior parte dei casi, questo tipo di grafico viene utilizzato per determinare se un set di dati segue o meno una distribuzione normale.

Se i dati sono distribuiti normalmente, i punti su un grafico QQ giacciono su una linea diagonale retta.

Al contrario, quanto più i punti sul grafico si discostano da una linea diagonale retta, tanto meno è probabile che il set di dati segua una distribuzione normale.

Il modo più semplice per creare un grafico QQ in SAS è utilizzare l’istruzione PROC UNIVARIATE con l’istruzione QQPLOT :

 proc univariate data =my_data noprint ;
   qqplot my_variable;
run ;

Gli esempi seguenti mostrano come utilizzare questa sintassi nella pratica.

Nota : utilizziamo l’istruzione NOPRINT per rimuovere tutte le altre statistiche e tabelle di riepilogo generate automaticamente dall’istruzione PROC UNIVARIATE .

Esempio 1: creare un grafico QQ in SAS per dati normali

Il codice seguente mostra come creare un grafico QQ per un set di dati contenente 1000 osservazioni generate da una distribuzione normale con una media di 10 e una deviazione standard di 2:

 /*generate 1000 values that follow normal distribution with mean 10 and sd 2 */
data normal_data;
    do i = 1 to 1000;
	x = 10 + 2* rannor (1);
        output ;
    end ;
run ;

/*create some plot*/
proc univariate data =normal_data noprint ;
   qqplot x;
run ; 

Grafico QQ in SAS

Possiamo vedere che i punti giacciono per lo più lungo una linea diagonale retta con alcune deviazioni minori lungo ciascuna delle code.

Sulla base di questo grafico, possiamo tranquillamente supporre che questo set di dati sia distribuito normalmente.

Esempio 2: grafico QQ per dati non normali

Il codice seguente mostra come creare un grafico QQ per un set di dati contenente 1000 osservazioni generate da una distribuzione esponenziale :

 /*generate 1000 values that follow an exponential distribution*/
data exp_data;
    do i = 1 to 1000;
	x = ranexp (1);
        output ;
    end ;
run ;

/*create some plot*/
proc univariate data =exp_data noprint ;
   qqplot x;
run ; 

Vedo che i punti si discostano notevolmente da una linea diagonale retta. Ciò indica chiaramente che il set di dati non è distribuito normalmente.

Ciò dovrebbe avere senso dato che abbiamo specificato che i dati dovrebbero seguire una distribuzione esponenziale.

Risorse addizionali

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

Come utilizzare Proc univariato per i test di normalità in SAS
Come eseguire una trasformazione del registro in SAS
Come identificare i valori anomali in SAS

Aggiungi un commento

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