Referalni centar za analizu podataka i statistiku za potrebe akademske i istraživačke zajednice (RC APIS) Testiranje multivarijatnog normaliteta %MULTNORM macro Autor: Nataša Tepić, NCVVO e-mail: [email protected] Varijante programa.

Download Report

Transcript Referalni centar za analizu podataka i statistiku za potrebe akademske i istraživačke zajednice (RC APIS) Testiranje multivarijatnog normaliteta %MULTNORM macro Autor: Nataša Tepić, NCVVO e-mail: [email protected] Varijante programa.

Referalni centar za analizu podataka i statistiku za potrebe akademske i istraživačke zajednice (RC APIS)

Testiranje multivarijatnog normaliteta

%MULTNORM macro Autor: Nataša Tepić, NCVVO e-mail: [email protected]

Varijante programa za test multivarijatnog normaliteta

1.

2.

3.

SAS macro Mardia-ev koeficijent asimetrije (

skewness

) i koeficijent zaobljenosti (

kurtosis

), Henze-Zirklerov test i  2 kvantil-kvantil graf Khattree-Naikov program Mardia-ev koeficijent asimetrije (

skewness

) i koeficijent zaobljenosti (

kurtosis

) SAS/CALIS procedura Izabrani koeficijenti koeficijenti zaobljenosti (

kurtosis

)

Uvod

 ako su podaci multivarijatno normalno distribuirani, onda su i sve varijable univarijatno normalno distribuirane   obrat ne vrijedi pa nije dovoljno testirati podatke samo za univarijatni normalitet razvijene su različite metode za testiranje multivarijatnog normaliteta

Mardia-evi koeficijenti

 u Mardia “Applications of some measures of multivariate skewness and kurtosis in testing normality and robustness studies ”, Sankhya B. 1974; 36, 115 128 predloženo je testiranje multivarijatnog normaliteta na temelju koeficijenta asimetrije (

skewness

) i koeficijenta zaobljenosti (

kurtosis

) dobivenih na uzorku  za multivarijatno normalno distribuirane podatke, očekivana vrijednost multivarijatnog koeficijenta asimetrije je  p(p+2)[(n+1)(p+1)-6] / (n+1)(n+3) očekivana vrijednost multivarijatnog koeficijenta zaobljenosti je p(p+2)(n-1)/(n+1)

Henze-Zirklerov test

   drugi test je Henze-Zirklerov; on se temelji na nenegativoj funkciji koja mjeri udaljenost između dvije funkcije distribucija njime se procjenjuje udaljenost između funkcije distribucije podataka i funkcije multivarijatne normale distribucije pojedinosti o ovom testu mogu se naći u SAS dokumentaciji (

SAS/ETS User's Guide

)

Henze-Zirklerov test

 Henze-Zirklerov test izvodi se s %MULTNORM macro programom   hipoteza H 0 o multivarijatnom normalitetu se odbacuje ako je

p

-vrijednost H-Z test-statistike manje od praga značajnosti  ako je

p

-vrijednost H-Z test statistike veća od praga značajnosti  , hipoteza se ne odbacuje te se na tom setu podataka smiju koristiti metode koje zahtijevaju multivarijatni normalitet

Kvantil-kvantil graf

   grubi indikator multivarijatnog normaliteta je i  2 kvantil-kvantil graf (

Q-Q plot

) na grafu su prikazane točke definirane kvadratima Mahalanobisovih udaljenosti pojedinih opservacija od vektora sredina i pripadnim  2 kvantilima graf je osjetljiv na atipične vrijednosti (

outlier

)

Univarijatni normalitet

  univarijatni normalitet testira se s: - Shapiro-Wilkovim W testom ili - Kolmogorov-Smirnovim testom (veliki uzorci) pojedinosti o ovim testovima mogu se naći u SAS dokumentaciji (

Tests for Normality

u

The UNIVARIATE Procedure

)  Shapiro-Wilkov W test za univarijatni normalitet je vrlo snažan test sposoban otkriti odstupanje od univarijatnog normaliteta u uzorcima malih veličina

%MULTNORM macro program

Mardia-evi koeficijenti, Henze-Zirklerov test i  2 kvantil-kvantil graf

   %MULTNORM macro pro gram služi za testiranje i grafičko prikazivanje multivarijatnog normaliteta također testira i univarijatni normalitet za svaku varijablu grafički prikaz je  2 kvantil-kvantil graf (

Q-Q plot

) koji prikazuje kvadrate Mahalanobisovih udaljenosti pojedinih opservacija

Zahtjevi

  za testiranje multivarijatnog normaliteta potreban je SAS/IML modul inačice 7 ili novije; umjesto tog modula može se rabiti i SAS/ETS modul inačice 8 ili novije za grafički prikaz niske rezolucije potreban je SAS/STAT modul inačice 7 ili novije, a za grafički prikaz visoke rezolucije potreban je SAS/GRAPH modul  svi navedeni moduli dostupni su korisnicima SAS AAS  Academic Analysis Suite

Uporaba

 potrebno je samo pokrenuti program nakon njegove prilagodbe i odabira opcija

Program

%inc "<

lokacija datoteke s %MULTNORM macro programom

>"; %multnorm(data=

biblioteka.datoteka-s podacima

, var=

popis-varijabli-za-testiranje

, plot=

both|mult|uni|none

, hires=

yes|no

)

Prilagodba programa

 u prvom retku programa u području s znakovima navoda (“) potrebno je navesti lokaciju gdje je spremljen %MULTNORM macro program  uz lokaciju datoteke %MULTNORM macro potrebno je navesti njegovo ime

Prilagodba programa

 u drugom retku programa potrebno je navesti ime datoteke i varijable koje se želi testirati  ako se ne navede ime datoteke, testirat će se zadnja stvorena datoteka   imena varijabli koje će se testirati moraju biti odvojene razmakom imena varijabli koje će se testirati

ne smiju

biti: VAR1-VAR10, ABC--XYZ, _NUMERIC_

Prilagodba programa

 u drugom retku programa potrebno je odabrati opcije naredbi

plot

i

hires

PLOT=BOTH | MULT | UNI | NONE HIRES=YES | NO

Prilagodba programa

 PLOT=BOTH | MULT | UNI | NONE  PLOT=MULT stvara multivarijatni Q-Q graf visoke ili niske rezolucije koji prikazuje kvadrate Mahalanobisovih udaljenosti pojedinih opservacija od vektora sredina (

mean vector

)  PLOT=UNI stvara univarijatne histograme visoke rezolucije za svaku varijablu s dodatnim prikazom normalne distribucije i univarijatnim testom normaliteta  uz opciju PLOT=UNI uvijek mora biti odabrana i opcija HIRES=YES; ako je odabrana opcija HIRES=NO neće doći do stvaranja univarijatnog prikaza

Prilagodba programa

 PLOT=BOTH | MULT | UNI | NONE   PLOT=BOTH ( “

defaulta

” opcija) stvara multivarijatni Q-Q graf i univarijatne histograme PLOT=NONE izostavlja sve grafičke prikaze i univarijatne testove normaliteta; odabir opcije HIRES= nije bitan uz ovu opciju naredbe PLOT=

Prilagodba programa

 HIRES=YES | NO  HIRES=YES ( “

defaulta

” opcija) grafički prikazi su visoke rezolucije  prije pokretanja programa potrebno je odabrati grafičke uređaje (

graphics device

) s naredbom GOPTIONS DEVICE= kao i sve druge željene grafičke opcije koje su potrebne za stvaranje željenog grafičkog prikaza visoke rezolucije

Prilagodba programa

 HIRES=YES | NO   HIRES=NO grafički multivarijatni prikaz je niske rezolucije univarijatni prikazi nisu mogući s opcijom HIRES=NO

Primjer programa

%inc "C:\macro\multnormmacro.sas"; %multnorm(data=obrada.cork, var=n e s w, plot=mult, hires=no)  ovaj program će osim multivarijatnog i univarijatnog testa normaliteta (

plot=mult

) stvoriti grafički prikaz multivarijatnog Q-Q plota niske rezolucije (

hires=no

)

Rezultat

MULTNORM macro: Univariate and Multivariate Normality Tests The MODEL Procedure Normality Test Equation Test Statistic Value Prob n Shapiro-Wilk W 0.91 0.0167

e Shapiro-Wilk W 0.90 0.0116

s Shapiro-Wilk W 0.89 0.0067

w Shapiro-Wilk W 0.94 0.1093

System Mardia Skewness 24.13 0.2369

 univarijatni test normaliteta Henze-Zirkler T 2.29 0.0222

Rezultat

MULTNORM macro: Univariate and Multivariate Normality Tests The MODEL Procedure Normality Test Equation Test Statistic Value Prob n Shapiro-Wilk W 0.91 0.0167

e Shapiro-Wilk W 0.90 0.0116

s Shapiro-Wilk W 0.89 0.0067

 multivarijatni test normaliteta System Mardia Skewness 24.13 0.2369

Mardia Kurtosis -0.40 0.6904

Henze-Zirkler T 2.29 0.0222

Rezultat

MULTNORM macro: Chi-square Q-Q plot Plot of mahdist*chisq. Legend: A = 1 obs, B = 2 obs, etc.

‚ ‚ 12 ˆ ‚ ‚ ‚ ‚ A 10 ˆ ‚ S ‚ q ‚ A u ‚ A a 8 ˆ r ‚ A e ‚ A d ‚ ‚ D 6 ˆ A i ‚ A s ‚ t ‚ A a ‚ n 4 ˆ A AAA c ‚ e ‚ AA ‚ AA ‚ BA 2 ˆ AA ‚ AAAA ‚ AAA ‚ ‚ 0 ˆ ‚  multivarijatni Q-Q graf niske rezolucije Šƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒ 0.0 2.5 5.0 7.5 10.0 12.5

Chi-square quantile

Ograni

č

enja

 uporaba računalne memorije tijekom računanja multivarijatnog test a proporcionalna je četvrtoj potenciji broja opservacija  srednje velike datoteke (velika 1000 podataka) mogu zahtjevati pretjerano dugo vrijeme za izvršavanje programa ili čak prekinuti rad uz javljanje greške (

Unable to allocate sufficient memory

)

Ograni

č

enja

 u slučaju singularnosti matrice kovarijanci podataka, macro program prekida s radom uz poruku: ERROR: Covariance matrix is singular.

 procedura PRINCOMP (dio SAS/STAT modula) potrebna je za provjeravanje singularnosti, ako te procedure nema, pretpostavit će se nesingularnost i macro program će nastaviti dalje s radom

Ograni

č

enja

 opservacije kod kojih nedostaje vrijednost barem jedne varijable (

missing values

) nisu uključene niti u analizu niti u grafički prikaz

Alternativni pristup

Mardia-evi koeficijenti

Khattree-Naikov program

 u slučaju velikih setova podataka kada nije moguće koristiti %MULTNORM macro program uslijed opterećenja računalne memorije, moguće je koristiti program iz Ravindra Khattree i Dayanand N. Naik “Applied Multivariate Statistics with SAS Software” 2 nd Edition, 1999 SAS Institute Inc., Cary, NC, SAD, SAS Publications order 56903

Khattree-Naikov program

  testiranje multivarijatnog normaliteta u ovom se programu temelji na Mardiaevom koeficijentu asimetrije i koeficijentu zaobljenosti dobivenih na uzorku ovim se programom ne može dobiti Henze Zirklerov test multivarijatnog normaliteta, kao ni testovi univarijatnog normaliteta ni grafički prikazi

Khattree-Naikov program

proc iml; use cork; read all into y; n = nrow(y) ; p = ncol(y) ; dfchi = p*(p+1)*(p+2)/6 ; q = i(n) - (1/n)*j(n,n,1); s = (1/(n))*y`*q*y ; s_inv = inv(s) ; g_matrix = q*y*s_inv*y`*q; beta1hat = ( sum(g_matrix#g_matrix#g_matrix) )/(n*n); beta2hat =trace( g_matrix#g_matrix )/n ; kappa1 = n*beta1hat/6 ; kappa2 = (beta2hat - p*(p+2) ) /sqrt(8*p*(p+2)/n) ; pvalskew = 1 - probchi(kappa1,dfchi) ; pvalkurt = 2*( 1 - probnorm(abs(kappa2)) ); print s ; print s_inv ; print 'TESTS:'; print 'Based on skewness: ' beta1hat kappa1 pvalskew ; print 'Based on kurtosis: ' beta2hat kappa2 pvalkurt;

Khattree-Naikov program

 prije korištenja Khattree-Naikovog programa potrebno je u drugom redu programa navesti lokaciju i ime datoteke koja se želi testirati proc iml; use ‘

biblioteka.datoteka-s-podacima

’; read all into y; VAŽNO: datoteka smije sadržavati isključivo varijable koje se žele testirati

Alternativni pristup 2

Mardia-evi koeficijenti i podaci s kovarijančnom strukturom

Analiza kovarijance

 za modeliranje podataka s kovarijančnom strukturom, rabi se procedura CALIS  njome se modeliraju:       složene i multivarijantne linearne regresije linearno mjerenje pogreška modeli “path” analize i modeliranje uzročnosti faktorske analize bilo kojeg reda kanoni čke korelacije mnogi modeli (ne)linearnih latentnih varijabli

Analiza kovarijance

  procedura CALIS izuzetno je osjetljiva na odstupanje od normalne distribucije i atipične vrijednosti opcijom

Kurtosis

(KU) izračunavaju se različiti koeficijenti zaobljenosti, no ne i pripadajuće

p

vrijednosti  programom TestMultNormCALIS.sas mogu se izračunati

p

-vrijednosti za koeficijente zaobljenosti dobijene pomoću procedure CALIS

Analiza kovarijance

  u SAS dokumentaciji (

The CALIS Procedure

Measures of Multivariate Kurtosis

) nalazi se popis svih koeficijente zaobljenosti koji se mogu izračunati s tom procedurom dio programa koji sadrži proceduru CALIS potrebno je prilagoditi željenom modelu

data osnovni; set labrary.datoteka; run; ods output 'Simple Statistics' = simstat; proc calis data = osnovni kurtosis; lineqs varijabla1 = e1, varijabla2 = e2, varijabla3 = e3; std e1=eps1, e2=eps2, e3=eps3; cov e1=eps1, e2=eps2, e3=eps3; run; quit; ods output close; data y; set simstat; if Label1 ne "Mardia's Multivariate Kurtosis" then delete; keep nValue1; run; proc iml; use osnovni; read all into y; p = ncol(y) ; n = nrow(y) ; dfchi = p*(p+1)*(p+2)/6 ; create df from dfchi[colname='df']; append from dfchi; close df; create n from n[colname='n']; append from n; close n; data chiprob; merge y df n; Value=nValue1*nValue1; sqrtKurt=sqrt(Value); Kurtosis=(sqrtKurt*n)/6; p = 1-PROBCHI(Kurtosis,df); keep p nValue1 Kurtosis; format p comma8.4; label nValue1="Mardia's Multivariate Kurtosis"; label Kurtosis="testna statistika"; run; proc print data = chiprob noobs LABEL ; title1 "testiranje multivarijatnog normaliteta" j=c; title2 "pomocu Mardiaevog koeficijenta zaobljenosti"; title3 "(Mardia's Multivariate Kurtosis)"; run;

Referalni centar za analizu podataka i statistiku za potrebe akademske i istraživačke zajednice (RC APIS) E-mail: Telefon: Faks: Mailing lista: [email protected] (01) 616 55 97 (01) 616 55 91 stat-sas-l