Testiranje multivari j at nog normalit eta

38
Testiranje Testiranje multivari multivari j j at at nog nog normalit normalit eta eta %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)

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

Transcript of Testiranje multivari j at nog normalit eta

Page 1: Testiranje  multivari j at nog  normalit eta

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)

Page 2: Testiranje  multivari j at nog  normalit eta

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)

Page 3: Testiranje  multivari j at nog  normalit eta

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

Page 4: Testiranje  multivari j at nog  normalit eta

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)

Page 5: Testiranje  multivari j at nog  normalit eta

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)

Page 6: Testiranje  multivari j at nog  normalit eta

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

Page 7: Testiranje  multivari j at nog  normalit eta

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)

Page 8: Testiranje  multivari j at nog  normalit eta

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

Page 9: Testiranje  multivari j at nog  normalit eta

%MULTNORM macro pro%MULTNORM macro programgram

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

Page 10: Testiranje  multivari j at nog  normalit eta

%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

Page 11: Testiranje  multivari j at nog  normalit eta

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

Page 12: Testiranje  multivari j at nog  normalit eta

UporabaUporaba

potrebno je samo pokrenuti program nakon njegove prilagodbe i odabira opcija

Page 13: Testiranje  multivari j at nog  normalit eta

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)

Page 14: Testiranje  multivari j at nog  normalit eta

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

Page 15: Testiranje  multivari j at nog  normalit eta

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_

Page 16: Testiranje  multivari j at nog  normalit eta

Prilagodba programaPrilagodba programa

u drugom retku programa potrebno je odabrati opcije naredbi plot i hires

PLOT=BOTH | MULT | UNI | NONE

HIRES=YES | NO

Page 17: Testiranje  multivari j at nog  normalit eta

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

Page 18: Testiranje  multivari j at nog  normalit eta

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=

Page 19: Testiranje  multivari j at nog  normalit eta

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

Page 20: Testiranje  multivari j at nog  normalit eta

Prilagodba programaPrilagodba programa

HIRES=YES | NO HIRES=NO grafički multivarijatni prikaz je niske

rezolucije univarijatni prikazi nisu mogući s opcijom

HIRES=NO

Page 21: Testiranje  multivari j at nog  normalit eta

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)

Page 22: Testiranje  multivari j at nog  normalit eta

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

Page 23: Testiranje  multivari j at nog  normalit eta

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

Page 24: Testiranje  multivari j at nog  normalit eta

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

Page 25: Testiranje  multivari j at nog  normalit eta

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)

Page 26: Testiranje  multivari j at nog  normalit eta

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

Page 27: Testiranje  multivari j at nog  normalit eta

OgraniOgraniččenjaenja

opservacije kod kojih nedostaje vrijednost barem jedne varijable (missing values) nisu uključene niti u analizu niti u grafički prikaz

Page 28: Testiranje  multivari j at nog  normalit eta

Alternativni pristupAlternativni pristup

Mardia-evi koeficijenti

Page 29: Testiranje  multivari j at nog  normalit eta

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

Page 30: Testiranje  multivari j at nog  normalit eta

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

Page 31: Testiranje  multivari j at nog  normalit eta

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;

Page 32: Testiranje  multivari j at nog  normalit eta

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

Page 33: Testiranje  multivari j at nog  normalit eta

Alternativni pristup 2Alternativni pristup 2

Mardia-evi koeficijenti i podaci s kovarijančnom strukturom

Page 34: Testiranje  multivari j at nog  normalit eta

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

Page 35: Testiranje  multivari j at nog  normalit eta

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

Page 36: Testiranje  multivari j at nog  normalit eta

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

Page 37: Testiranje  multivari j at nog  normalit eta

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;

Page 38: Testiranje  multivari j at nog  normalit eta

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)