1 / 22

Transformace dat: používání syntaxe v SPSS

Semináře ke kurzu Analytické metody výzkumu Jindřich Krejčí. Transformace dat: používání syntaxe v SPSS. Základy psaní syntaxe, základní příkazy (opakování) Formáty dat, algoritmy a funkce Operace s textovými proměnnými Uzavřené posloupnosti příkazů, cykly a složitější konstrukce

brandy
Download Presentation

Transformace dat: používání syntaxe v SPSS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Semináře ke kurzu Analytické metody výzkumu Jindřich Krejčí Transformace dat:používání syntaxe v SPSS

  2. Základy psaní syntaxe, základní příkazy (opakování) • Formáty dat, algoritmy a funkce • Operace s textovými proměnnými • Uzavřené posloupnosti příkazů, cykly a složitější konstrukce • Znalost syntaxe bude ověřena v testu !

  3. Proč SPSS syntax • obratnost: • možnost opakování celé posloupnosti příkazů • možnost uložit posloupnost příkazů a používat je později, modifikovat pro různé úlohy nebo předat jiným uživatelům • možnosti editace příkazů • efektivní řešení podobných nebo opakujících se transformací • uspořádání práce, úspora prostoru (netřeba nahrávat rozpracované datové soubory) • nutnost: • některé úlohy nelze realizovat pomocí oken, např. pokud vyžadují posloupnost více příkazů • specifická zadání analýz

  4. help - slovník příkazů spustit označené příkazy (od tečky do tečky) aktivní okno dat syntaxové okno SPSS 20.0

  5. syntaxové okno cca do verze SPSS 15: nápověda spustit syntax seznam proměnných undo poslední použité příkazy v menu

  6. Základy psaní syntaxe • tlačítko PASTE v oknech vloží odpovídající syntax do syntaxového okna • struktura příkazů je dostupná v nápovědě SPSS • syntax lze ukládat v prostém textovém formátu a lze ho kopírovat, => lze editovat ve Wordu avyužít editační funkce: kopírování bloků, vyhledávání, vícenásobná záměna, ... • soubory se syntaxí se vyplatí ukládatlze je znovu použít, upravovat/opravovat a slouží jako dokumentace práce • není třeba ukládat upravená data, ale pouze syntax

  7. příkaz začíná klíčovým slovem a končí vždy tečkou • příkazy lze (obvykle)zkrátit na tři písmenavariable labels AGE „Vek respondenta“. odpovídá:var lab AGE „Vek respondenta“. • a další zjednodušení - např.: • FREQUENCIES VARIABLES=q1 /ORDER= ANALYSIS.odpovídá: fre q1. • CROSSTABS /TABLES=q1 BY q2a /FORMAT= AVALUE TABLES /CELLS= COUNT /COUNT ROUND CELL .odpovídá: cro tab=q1 by q2a. • řazení příkazů stejného druhu pomocí lomítka, např.:var lab q1 "Otazka 1" / q2 "Otazka 2". • předem definované proměnné lze vkládat přes menu Utilities-Variables-PASTE • popis pomocí komentářů(komentář začíná hvězdičkou, nezapomínat na tečku na konci) • delší syntaxe pro přehlednost upravujeme graficky (nové řádky, odsazení, vynechané řádky...)

  8. Otevření datového souboru • příkaz GET • GET SAS, GET CAPTURE, ... • KEEP, DROP, RENAME, MAP • příkazy NEW FILE a IMPORT (*.por) • příkaz DATA LIST (importdat, ascii, fixed/free organisation, No. of records, summary table...)DATA LIST FILE = ‘\\data\data.dat’ /ID 1-3 AGE 4-5 SEX 6 (A) Q1 to Q5 8-12. • BEGIN DATA - END DATA. DATA LIST /ID 1-3 AGE 5-6 SEX 8 (A) Q1 to Q510-14.BEGIN DATA001 25 m 12212002 48 f 23112003 32 f 31112...END DATA. • MATRIX DATA - obd. DATA LIST

  9. Ukládání souboru dat • SAVE [OUTFILE..] - uloží data ve form. SPSS, možno uspořádat • /RENAME - přejmenování proměnnýchSAVE OUTFILE=“C:\eko.sav” /RENAME (AGE=VEK) (SEX=POHL). • /DROP - vypuštění proměnných • /KEEP - uložení pouze uvedených proměnných, a to v uvedeném pořadí • EXPORT [OUTFILE...], WRITE [OUTFILE...], SAVE TRANSLATE... Popis souboru, smazání datového souboru • FILE LABEL • DOCUMENT - DROP DOCUMENTS • ERASE

  10. Získání informací o struktuře souboru • deskriptivní statistiky: frekvence, průměry, odchylky, minima, maxima, čtvercové tabulky • příkaz DISPLAY - slovník proměnných • /DICTIONARY - kompletní „dictionary“ • /LABELS - var.names, positions, var.labels • /NAMES - var.names (/INDEX - var. names, position) • /MACROS - definovaná makra • SYSFILE INFO - informace o souboru včetně • CODEBOOK - informace o souboru, obd. DISPLAY, od SPSS 17.0)

  11. Vymazání / vypuštění části souboru z analýzy • select if (arg).SELECT IF (sex EQ ‘male‘).vybere pouze muže, ostatní data ze souboru definitivně vymaže • kombinace příkazů temporary a select if vymaže data pouze pro bezprostředně následující analýzu.TEMPORARY.SELECT IF (sex EQ ‘male’).FRE /VAR=educ.spočte frekvence vzdělání pouze pro muže • filter by prom. filter off. - dočasná selekce dat.COMPUTE filter=(sex EQ ‘male’).VALUE LABELS filter 0'Not Selected' 1'Selected'.FILTER BY filter....FILTER OFF.

  12. Spojování souborů, rozdělení do skupin, agregace • ADD FILES - přidá případy • MATCH FILES - přidá proměnné • SORT CASES - seřadí podle určené proměnné(-ých) • SPLIT FILE - porovnávání skupin/výstupy po skupinách při analýze • AGGREGATE - agreguje případy do skupin a vytvoří nový soubor

  13. Proměnné • 8 míst; první písmeno; na konci ne tečka nebo podtržítko; ne jako příkazy; ne #, $ na první pozici (scratch/system variables) • založit novou, přejmenovat • DATA LIST, MATRIX DATA (vytvoří datový soubor nebo načte data) • NUMERIC, STRING: NUMERIC V1 V2 (F4.0). STRING V3 (A2). • COMPUTE, COUNT, RECODE ... INTO • RENAME VARIABLES: RENAME VARIABLES (AGE EDUC=VEK VZDEL). • TO: compute V1 TO V100=0; recode V1 to V100 (1=2) • ._ #$@: pomocné znaky, ne jako první • FORMAT - nastvení formátu numerických proměnnýchFORMAT AGE (F2.0). • VARIABLE LABELS - přidělí label (popisný název)VARIABLE LABELS VEK ‘Respondent: vek’ /VZDEL ‘Respondent: vzdelani’. • VALUE LABELS - přidělí označení hodnot proměnnéVAL LAB VZDEL 1 ‘zakladni’ 2 ‘vyucen’ 3 ‘maturita’ 4 ‘VS’.VAL LAB V1 TO V10 1 ‘ano’ 2 ‘ne’. • ADD VALUE LABELS - přidá nebo změní labelyADD VAL LAB VZDEL 3 ‘stredni’. • APPLY DICTIONARY - kopírování celého slovníku do dalších souborů

  14. Základní transformace proměnných • COMPUTE - založí novou numerickou proměnnou.COMPUTE AGE = 100 - S01. (*věk=100-rok narození.) • RECODE - překódování proměnnéRECODE AGE (18 thru 29=1)(30 thru 44=2)(45 thru 59=3)(60 thru hi=4)(else=sysmis). • IF - jestližeif (MARITAL ne 1)SPWRKST=0.(*jestliže ‘rodinný status‘ je < > 1 ‘ svobodný, nemá partnera’ ‚ ‘ ekonomický status partnera‘ = 0 ‘ not applicable’). • EXECUTE - reálné provedení příkazů.COMPUTE V1=1. EXE. (*založí se proměnná V1 a naplní se jedničkami.)

  15. Chybějící hodnoty při transformacích • sysmis - systémová chybějící hodnota (tečka, čárka) • hodnoty označené jako chybějící • MISSING VALUES - chybějící hodnotymis val SPWRKST (0). • při operacích: • u numerických operací, když v jedné proměnné v transformaci chybí hodnota, také výsledkem je obvykle chybějící hodnota • záleží na povaze, např. a=1, b=sysmis, MIN(a,b)=1 • u některých funkcí (SUM, MEAN, MIN, MAX, SD, VARIANCE...) lze určit max. dovolený počet hodnot pomocí .nCOMPUTE FACTOR = SUM.2 (Q1 to Q5). • analýzy: LISTWISE, PAIRWISE

  16. Aritmetické a logické operátory a funkce: • EQ nebo = equal to • NE nebo <> not equal to • LT nebo < less than • LE nebo <= less than or equal to • GT nebo > greater than • GE nebo>= greater than or equal to • AND, OR (&, |) • THRU, HI = higher, LO = lowerRECODE (lo thru 0 = sysmis) (1 thru 3 = 1) (4 thru hi = 2). • ABS (arg) absolutní hodnota z argumentu • RND (arg) zaokrouhlení • TRUNC (arg) truncate - umaže desetinná místa • LN (arg), LG10 (arg) logaritmy • MIN (arg list), MAX (arg list), SUM (arg list), MEAN (arg list) • SD (arg list), VARIANCE (arg list), • LAG (arg, n) hodnota před n-případů

  17. Ukončené posloupnosti více příkazů DO IF - END IF. • DO IF, DO REPEAT, LOOP: oddělené úseky programu, které musí být ukončeny příslušným příkazem, END IF, END REPEAT, END LOOP • uvnitř úseku mohou být pouze příkazy pro transformace, nikoliv statistické analýzy • DO IF - END IF - podmíněné přiřazení:blok příkazů mezi DO IF a END IF se provede pouze za podmínky definované v příkazu DO IF. • Příklad: datový soubor spojený ze dvou výzkumů v roce 1991 a 1995, kategorizace vzdělání je v jednotlivých letech rozdílná, ale je uvedena ve stejné proměnné VZDEL.DO IF (rok = 1991).RECODE VZDEL (1=1)(2 3=2)(4=3)(5=4) (else=99).END IF.

  18. DO REPEAT - END REPEAT • DO REPEAT - END REPEAT - uzavřený cyklus, který opakuje stejnou operaci na více proměnných:blok příkazů mezi DO REPEAT a END REPEAT se provede opakovaně na všech proměnných definovaných v příkazu DO REPEAT. • Příklad 1: zjednodušení při definování baterie proměnných.DO REPEAT v = vzdel1 to vzdel4. compute v = 0.END REPEAT.

  19. DO REPEAT - END REPEAT • Příklad 2: rozkódování tabulky v dotazníku.* v datech SOCOWRK.SAV zkonstruujte promennou s informaci o nezamestnanosti hlavy domacnosti:compute HHUNEMP=0.var lab HHUNEMP 'Head of household unemployed in last 5 yrs?'.val lab HHUNEMP 1 'yes' 2 'no'.* pomocne promenne:* numb = poradove cislo respondenta v otazce Q1* unemp = udaj o nezamestnanosti. DO REPEAT numb = number1 TO number6 / unemp = unemp1 TO unemp6. IF(numb = 1)HHUNEMP=unemp.END REPEAT.fre var=hhunemp. • Příklad 3 samostatně: v datech socowrk.sav zkonstruujte proměnnou věk hlavy domácnosti.

  20. LOOP - END LOOP • uzavřený cyklus (obd. DO REPEAT - END REPEAT), který opakuje stejnou operaci vícekrát nebo na více proměnných • používá se na proměnných se jmény se stejným základem, které volá pořadovým číslem • v příkazu LOOP jsou zastoupeny tzv. „skrečovou proměnnou“ (začíná # a neukládá se do datového souboru) • (zpravidla) se nejprve definují pomocí příkazu VECTOR • VECTOR propojuje nebo hromadně vytváří proměnné se stejným základem jména, lišící se číslicí na konci, např. VECTOR EDUC (5). vytvoří proměnné EDUC1, EDUC2, EDUC3, EDUC4, EDUC5. • cykly LOOP - END LOOP, lze vzájemně vnořovat, nesmějí se prolínat • lze upřesnit splněním podmínky, předčasně ukončit při splnění podmínky nebo příkazem BREAK uvnitř DO IF - END IF • příklad použití - zpracování otázek typu „MULTIPLE RESPONSE“

  21. Př.: Chybějící hodnoty nahrazeny průměremCOMPUTE prumer=MEAN(v1 to v8).VECTOR v=v1 TO v8.LOOP #I=1 TO 8.IF (MISSING(V(#I)))V(#I)=prumer.END LOOP.EXECUTE. • Př.: LOOP, jestliže X nenabývá chybějící hodnotyVECTOR v=v1 TO v8.LOOP #I=1 TO 8 IF NOT MISSING(X). COMPUTE V(#I)=V(#I)+X.END LOOP.EXECUTE. • Př.: LOOP, dokud Y nepřekročí hodnotu 100.VECTOR v=v1 TO v8. LOOP #I=1 TO 8.COMPUTE V(#I)=V(#I)+X.END LOOP IF (X GE 100).execute.

  22. Operace s textovými proměnnými • STRING name (A6). COMPUTE name = 'Pavel'.založí textovou proměnnou o 6 znacích a přiřadí hodnotu Pavel • funkce: • LOWER(arg), UPCASE(arg), RTRIM(a1,a2), LTRIM(a1,a2), SUBSTR(a1,a2,a3), CONCAT(arg list), • INDEX(a1,a2,a3), LENGTH(arg), MIN(arg), MAX(arg), RINDEX(a1,a2,a3) • konverze: NUMBER (arg, format), STRING (arg, format), RECODE (CONVERT)

More Related