Analýza kvantitativních dat II. Analýza chybějících hodnot (missing values) Jiří Šafr jiri.safr(AT)seznam.cz Poslední aktualizace 23/5/2012 UK FHS Historická sociologie (LS 2012)
Prvním krokem analýzy je vždy kontrola (a identifikace) chybějících hodnot (MISSING VALUEs) Připomenutí z AKD I.
Existují dva druhy missingů (v SPSS): 1.Systémové = SYSMIS (v datech : „.“) 2.Uživatelsky definované = MISSING (v datech např. : „9“)
Chybějící hodnoty (missing values) - postup 1. zjištění zda jsou v datech chybějící hodnoty označeny a jak. Pokud ne pak 2. označení-nastavení chybějících hodnot (případně překódování či jiné transformace dat) 3. věcná analýza chybějících hodnot: a) zhodnocení zda je lze ignorovat, pokud ne: b) analýza jejich závislosti na jiných proměnných imputace chybějících hodnot (odhad hodnot, tam kde chybí) a manipulace ve vícerozměrných analýzách (listwise, pairwise, a různé imputy)
1. Zjištění stavu v datech nejednodušší přístup k MV Kontrola nastavení MV v Dataeditoru NESTAČÍ, vždy musíme provést průzkum v datech. Pro větší počet proměnných většinou v 1. kroku někdy stačí příkaz DESCRIPTIVES → kontrolujeme Min a Max v datech s hodnotami „v dotazníku“. Většinou odhalí hodnoty max, ale pozor, není spolehlivé! Spolehlivý je pouze příkaz FREQUENCIES, který vypíše výskyt všech hodnot znaků i jeho (ne)označení jako MV. Pro více proměnných ovšem dostaneme mnoho tabulek. Přehledně nám také ukáže počet (nikoliv však detail jaké hodnoty) příkaz MVA (určitě lepší strategie než DESC).
Chybějící hodnoty – zjištění stavu (DESC, FREQ, MVA) DESCRIPTIVES PI.1a. → nespolehlivé FREQUENCIES PI.1a. → kompletní informace na úrovni hodnot-kategorií znaku MVA PI.1a.
Nastavení chybějících hodnot MISSING VALUES Var1 případně další Var2 Var3 … (0 8 9). → označit lze až tři hodnoty, které budou vyloučeny ze základu analýz. nebo: (LOWEST THRU 5). či (8 THRU HIGHEST). lze i kombinaci intervalu a jedné hodnoty: (5 8 thru Highest). Lze zadat i přes Data editor, ale syntax zaručuje kontrolu a dokumentaci manipulace s daty
Chybějící hodnoty (MV): Jak s nimi zacházet - pravidlo „palce“ Pokud je relativní počet chybějících hodnot menší než cca 5 %, pak je lze většinou ignorovat (v „dostatečně velkém“ výběrovém souboru). Přesáhne-li počet chybějících hodnot tuto hranici, pak je nutná analýza závislosti chybějících hodnot na jiných znacích (→ příčin), tj. měli bychom se ptát: „kdo neodpovídá na naše otázky?“ Při > 5% výskyt MV totiž nemusí být už jen náhodný (tj. náhodně distribuovaný v populaci), což je třeba ověřit, případně zvážit imputaci hodnot
Analýza podmíněnosti & provázanosti chybějících hodnot Řešíme dvě otázky: a) Jak jsou missingy provázané mezi jednotlivými (závislými) proměnnými (např. v baterii otázek) b) Zda jsou nějak závislé na třídících znacích (např. věku, vzdělání či filtrační otázce) 1. nejednoduší postup: „vypnutí“ missingů a analýza odpovídajících kategorií např. v kontingenční tabulce. 2. MVA v SPSS 3. Konstrukce nové proměnné s informací o chybějící hodnotě (/ hodnotách u více proměnných) a jejich samostatná analýza
MVA – Missing Value Analysis Umí odhalit u více proměnných současně vzorce chybějících hodnot (Patterns) Bohužel není ve všech verzích SPSS (chybí v modulu Base)
MVA Nepoužívat vážení – vypnout váhu! → WEIGHT OFF. Základní funkce: popis chybějících hodnot missing patterns
MVA Output
Mezi indikátorové proměnné můžeme přidat také třídící znak/y (zde věk) a sledovat na čem jsou chybějící hodnoty závislé MVA VARIABLES= q9_a q9_b q9_c q9_d vek3 /MAXCAT=25 /CATEGORICAL=q9_a q9_b q9_c q9_d vek3 /CROSSTAB PERCENT=5 /DPATTERN DESCRIBE=q9_a q9_b q9_c q9_d SORT=vek3(ASCENDING). Vliv věku: u q9_a (Při sportování důležité - tělesné a duševní zdraví) je v nejmladší kohortě jen 6 % missingů zatímco v nejstarší kategorii věku 17,3 %.
q9_a Při sportování důležité - tělesné a duševní zdraví q9_b Při sportování důležité - setkávání s jinými lidmi q9_c Při sportování důležité - soutěžení s ostatními q9_d Při sportování důležité - vypadat dobře
Alternativní – obecný postup, když nemáme k dispozici MVA
Konstrukce nové proměnné s informací o chybějící hodnotě Kolik respondentů neodpovědělo na kolik položek z baterie otázek? *potřebujeme přiřadit hodnotu místo Sysmis. *SYSMIS(varname) True if system-missing. *Identifikace alespoň jednoho missingu: vznikne dichotomický znak: 0=odpověděl na celou baterii / 1=min na 1 otázku neodpověděl. COUNT sysChybQ20 = Q20_1 to Q20_6 (SYSMIS). desc Q20_1 to Q20_6. fre sysChybQ20.
COMPUTE SYS = SYSMIS(iseiR). fre SYSiseiR. *do-imputování Sysmis na user def Missing. if (SYSiseiR=1) iseiR = -9. fre iseiR. *nebo i pro více proměnných. COUNT syschyb = V1 to V5 (SYSMIS).