380 likes | 538 Views
R eferalni centar za analizu podataka i statistiku za potrebe akademske i istraživačke zajednice (RC APIS). Testiranje multivari j at nog normalit eta. %MULTNORM macro Autor: Nataša Tepić, NCVVO e-mail: ntepic@ncvvo.hr. Varijante programa za test multivarijatnog normaliteta.
E N D
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: ntepic@ncvvo.hr
Varijante programa za test multivarijatnog normaliteta • SAS macroMardia-ev koeficijent asimetrije (skewness) i koeficijent zaobljenosti(kurtosis), Henze-Zirklerov test i 2kvantil-kvantil graf • Khattree-Naikov programMardia-ev koeficijent asimetrije (skewness) i koeficijent zaobljenosti(kurtosis) • SAS/CALIS proceduraIzabrani 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 testiranjemultivarijatnog normaliteta na temelju koeficijenta asimetrije (skewness) i koeficijenta zaobljenosti(kurtosis) dobivenih na uzorku • zamultivarijatno normalno distribuiranepodatke, očekivana vrijednost multivarijatnogkoeficijenta asimetrije je p(p+2)[(n+1)(p+1)-6] / (n+1)(n+3) • očekivana vrijednost multivarijatnogkoeficijenta zaobljenostije p(p+2)(n-1)/(n+1)
Henze-Zirklerov test • drugi test je Henze-Zirklerov; on se temelji na nenegativoj funkciji kojamjeri udaljenostizmeđu dvije funkcije distribucija • njime se procjenjuje udaljenostizmeđ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 H0 o multivarijatnomnormalitetu se odbacuje ako je p-vrijednostH-Z test-statistike manje od praga značajnosti • ako je p-vrijednostH-Z test-statistike veća od praga značajnosti , hipoteza se ne odbacuje te se na tom setu podataka smiju koristiti metode koje zahtijevaju multivarijatninormalitet
Kvantil-kvantil graf • grubi indikator multivarijatnog normaliteta je i 2kvantil-kvantil graf (Q-Q plot) • na grafu su prikazane točke definirane kvadratima Mahalanobisovih udaljenosti pojedinih opservacija od vektora sredina i pripadnim 2kvantilima • graf jeosjetljiv na atipične vrijednosti (outlier)
Univarijatni normalitet • univarijatni normalitet testira se s:- Shapiro-Wilkovim W testomili- Kolmogorov-Smirnovim testom (veliki uzorci) • pojedinosti o ovim testovima mogu se naći u SAS dokumentaciji (Tests for NormalityuThe 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 2kvantil-kvantil graf
%MULTNORM macro program služi za testiranjei grafičko prikazivanje multivarijatnog normaliteta • također testira i univarijatni normalitet za svaku varijablu • grafički prikaz je2kvantil-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 rabitii SAS/ETS modul inačice8 ili novije • za grafički prikazniske rezolucije potreban je SAS/STAT modul inačice 7 ili novije, a za grafički prikazvisoke 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 "<lokacijadatoteke 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 iliniske rezolucije koji prikazuje kvadrate Mahalanobisovih udaljenosti pojedinih opservacija od vektora sredina (mean vector) • PLOT=UNI stvara univarijatne histogramevisoke rezolucijeza 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 izostavljasvegrafičke prikazei 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 odabratigrafičke uređaje(graphics device) snaredbom GOPTIONS DEVICE= kao isve 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 Mardia Kurtosis -0.40 0.6904 Henze-Zirkler T 2.29 0.0222 • univarijatni test normaliteta
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 Mardia Kurtosis -0.40 0.6904 Henze-Zirkler T 2.29 0.0222 • multivarijatni test normaliteta
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 ˆ ‚ Šƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒ 0.0 2.5 5.0 7.5 10.0 12.5 Chi-square quantile • multivarijatni Q-Q graf niske rezolucije
Ograničenja • uporaba računalne memorije tijekom računanja multivarijatnog testa proporcionalna je četvrtoj potencijibroja opservacija • srednje velike datoteke (velika 1000 podataka) moguzahtjevati 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 matricekovarijanci 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 nesingularnosti macro program će nastaviti dalje s radom
Ograničenja • opservacijekod 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” 2nd Edition, 1999 SAS Institute Inc., Cary, NC, SAD, SAS Publications order 56903
Khattree-Naikov program • testiranjemultivarijatnog normaliteta u ovom se programu temelji na Mardiaevomkoeficijentu asimetrije i koeficijentu zaobljenostidobivenih na uzorku • ovim se programom ne može dobiti Henze-Zirklerov test multivarijatnog normaliteta, kao ni testoviunivarijatnog 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
Analizakovarijance • za modeliranje podataka s kovarijančnom strukturom, rabi se procedura CALIS • njome se modeliraju: • složenei multivarijantne linearne regresije • linearno mjerenje-pogreška modeli • “path” analizei modeliranje uzročnosti • faktorske analizebilo kojeg reda • kanoničkekorelacije • mnogi modeli (ne)linearnih latentnih varijabli
Analizakovarijance • 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
Analizakovarijance • 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: vesna.dobric@srce.hr Telefon:(01) 616 55 97 Faks:(01) 616 55 91 Mailing lista:stat-sas-l