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 ReportTranscript 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