Upload
jerrod
View
27
Download
0
Embed Size (px)
DESCRIPTION
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: [email protected]. Varijante programa za test multivarijatnog normaliteta. - PowerPoint PPT Presentation
Citation preview
Testiranje Testiranje multivarimultivarijjatatnognog normalitnormalitetaeta
%MULTNORM macro
Autor: Nataša Tepić, NCVVO
e-mail: [email protected]
Referalni centar za analizu podataka i statistiku za potrebe akademske i istraživačke zajednice (RC APIS)
Varijante programa za Varijante programa za test multivarijatnog normalitetatest multivarijatnog normaliteta
1. SAS macroMardia-ev koeficijent asimetrije (skewness) i koeficijent zaobljenosti (kurtosis), Henze-Zirklerov test i 2 kvantil-kvantil graf
2. Khattree-Naikov programMardia-ev koeficijent asimetrije (skewness) i koeficijent zaobljenosti (kurtosis)
3. SAS/CALIS proceduraIzabrani koeficijenti koeficijenti zaobljenosti (kurtosis)
UvodUvod
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
MardiaMardia-evi koeficijenti-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-ZirklerHenze-Zirklerov testov 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-ZirklerHenze-Zirklerov testov test
Henze-Zirklerov test izvodi se s %MULTNORM macro programom
hipoteza H0 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 grafKvantil-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 normalitetUnivarijatni 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 pro%MULTNORM macro programgram
Mardia-evi koeficijenti, Henze-Zirklerov test i 2 kvantil-kvantil graf
%MULTNORM macro program 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
ZahtjeviZahtjevi
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
UporabaUporaba
potrebno je samo pokrenuti program nakon njegove prilagodbe i odabira opcija
ProgramProgram
%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 programaPrilagodba 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 programaPrilagodba 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 programaPrilagodba programa
u drugom retku programa potrebno je odabrati opcije naredbi plot i hires
PLOT=BOTH | MULT | UNI | NONE
HIRES=YES | NO
Prilagodba programaPrilagodba 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 programaPrilagodba 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 programaPrilagodba 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 programaPrilagodba programa
HIRES=YES | NO HIRES=NO grafički multivarijatni prikaz je niske
rezolucije univarijatni prikazi nisu mogući s opcijom
HIRES=NO
Primjer programaPrimjer 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)
RezultatRezultat
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
RezultatRezultat
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
RezultatRezultat
multivarijatni Q-Q graf niske rezolucije
MULTNORM macro: Chi-square Q-Q plot
Plot of mahdist*chisq. Legend: A = 1 obs, B = 2 obs, etc.
‚ ‚ 12 ˆ ‚ ‚ ‚ ‚ A 10 ˆ ‚S ‚q ‚ Au ‚ Aa 8 ˆr ‚ Ae ‚ Ad ‚ ‚D 6 ˆ Ai ‚ As ‚t ‚ Aa ‚n 4 ˆ A AAAc ‚e ‚ AA ‚ AA ‚ BA 2 ˆ AA ‚ AAAA ‚ AAA ‚ ‚ 0 ˆ ‚ Šƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒˆƒ 0.0 2.5 5.0 7.5 10.0 12.5
Chi-square quantile
OgraniOgraniččenjaenja
uporaba računalne memorije tijekom računanja multivarijatnog testa 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)
OgraniOgraniččenjaenja
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
OgraniOgraniččenjaenja
opservacije kod kojih nedostaje vrijednost barem jedne varijable (missing values) nisu uključene niti u analizu niti u grafički prikaz
Alternativni pristupAlternativni pristup
Mardia-evi koeficijenti
KhattreeKhattree--NaikNaikov programov 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
KhattreeKhattree--NaikNaikov programov 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
KhattreeKhattree--NaikNaikov programov 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;
KhattreeKhattree--NaikNaikov programov 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 2Alternativni pristup 2
Mardia-evi koeficijenti i podaci s kovarijančnom strukturom
AAnalinalizaza kkovariovarijjanceance
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
AAnalinalizaza kkovariovarijjanceance
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
AAnalinalizaza kkovariovarijjanceance
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;
E-mail: [email protected] Telefon: (01) 616 55 97 Faks: (01) 616 55 91 Mailing lista: stat-sas-l
Referalni centar za analizu podataka i statistiku za potrebe akademske i istraživačke zajednice
(RC APIS)