Download as pdf or txt
Download as pdf or txt
You are on page 1of 25

Programiranje u SPSS-u Uvod u koritenje programskog paketa SPSS

Sarajevo, Novembar 2011.

Problem: Izvriti deskriptnivnu analizu podataka dobijenih na osnovu rezultata ankete o puenju. Prilikom anketiranja koriten je slijedei anketni upitnik: Redni broj domainstva _________________ (popunjava anketar) ANKETA O PUENJU Dobar dan, Zavod za javno zdravstvo sprovodi Anketu o puenju, eljeli bi vama i ostalim lanovima vaeg domainstva postaviti nekoliko pitanja o puenju. R. broj osobe Pol 1-muki 2-enski Koliko imate punih tj navrenih godina danas? (Za djecu do deset godina pitati roditelja ili staratelja) Pitati osobe stare 10 i vie godina Koje je vae obrazovanje? 0 bez obrazovanja 1 osnovno obrazovanje 2 srednje obrazovanje 3 visoko obrazovanje Koliko u prosjeku dnevno popuite cigareta?

1 2 3 4 5 6 7 8

Na vaem raunaru nalazi se fajl Primjer_1.sav (c:\Obuka\Primjer_1.sav) u kome se nalaze rezultati ankete o puenju koja je sprovedena na 5 domainstava. Prilikom otvaranja fajla u SPSS-u otvorit e vam se direktni prikaz podataka (Slika 1.) ili pregled varijabli (Slika 2)

Slika 1

Slika 2

Primjeuje se slinost izmeu prikaza podataka u Excelu i prikaza podataka u SPSS-u (Slika 1), meutim ovdje treba napomenuti da postoji znaajna razlika izmeu SPSS-a i Excela u smislu da je svaka elija Excela podatak za sebe neovisan od drugih podataka dok u SPSS-u osnovna jedinica za analizu je varijabla ili niz podataka ili striktno matematiki govorei vektor. Praktino govorei u SPSS-u analiziramo kolone podataka. Vratimo se na vezu izmeu upitnika i varijabli u SPSS-tabeli. Ova veza je data u Tabeli 3.

Tabela 3
Pitanje u upitnikuModaliteti odgovora u upitniku (values u SPSS-u)Programsko ime varijable u SPSS-u (niz znakova maksimalne duzine 8 znakova bez blanko znakova)SPSS tip varijableSPSS mjeraSPSS labela tj. Tekstualni opis varijable koji e se pojavljivati u izlaznim fajlamaRedni broj domainstvaBroj od 1 do ukupnog broja upitnikarbr_domNumeriki tipSkala moe se tano utvrditi razlika izmeu dva elementaRedni broj domacinstvaRedni broj osobeOd 1 do 8rbr_osobNumeriki tipSkalaRedni broj osobe unutar domacinstvaPol1 za muki pol, 2 za eski polpolNumeriki tipNominalni ne moe se utvrditi tana razlika niti se moe utvrdit odnos manje veePol osobeKoliko imate punih tj navrenih godina danas?Od 0 pa do preko stotinu godinastarostNumeriki tipSkalaStarost osobeKoje je vae obrazovanje? 0 za osobe bez obrazovanja 1 za osobe sa osnovnim obrazovanjm 2 za osobe sa srednjim obrazovanjem 3 za osobe sa visokim obrazovanjemobrazovaNumeriki tipOrdinalni ne moe se utvrditi tana razlika ali se moe utvrdit odnos manje veeObrazovanje osobeKoliko u prosjeku dnevno popuite cigareta?Od 0 cigareta do preko stotinu u ekstremnim sluajevimacigareteNumeriki tipSkalaProsjean broj cigareta dnevno

Uzmimo za primjer pitanje Koje je vae obrazovanje?. Ovom pitanju odgovara varijaba obrazova iz SPSS tabele. Ova varijabla je ordinalnog tipa budui da npr. osoba sa zavrenom srednjom kolom ima vie obrazovanja u odnosu na osobu sa samo zavrenom osnovnom kolom ili u odnosu na osobu koja je bez obrazovanja, te da istovremeno ima manje obrazovanja u odnosu na osobu koja ima visoko obrazovanje. Prije nego to preemo na analizu podataka trebamo neto rei o vrsti fajli koje se javljaju u SPSS-u.

Fajle sa nastvkom ili ekstenzijom .sav sadre podatke, mi smo ve otvorili jedan takav fajl a to je primjer_1.sav. Fajle sa nastavkom .spo prestavljaju izlazne rezultate analize vidjet emo ih u nastavku kao i sintaksne fajle iji je nastavak .sps koji slue za programiranje analiza u SPSS-u. Pored ovih fajli postoje i skript fajle za vrlo napredne korisnike tj. programere i o njima na ovom seminaru nee biti rjei. Najjednostavnija deskriptivna anlaiza u SPSS uzgred koja se i najee koristi jeste analiza frekvencije. Frekvenicja se moe raunati i iz praktino svih predhodno spomenutih fajli osim skripta koji nam nije bitan na ovom seminaru. Raunanje frekvencije polova u naoj anketi se radi na slijedei nain (Vidi sliku 4): Najprije kliknemo na opciju Analyze pa onda Descriptive statistics pa onda Frequencies. Ubudue emo to zbog jednostavnosti oznaavati sa: Analyse Descriptive statistics Frequencies Slika 4

Nakon toga pojavit e se slijedei dijalog prozori (Vidi sliku 5.1) gdje se trebaa selektovati varijabla pol pa kliknuti na strelicu da bi ona ula u desni prozori Variable(s) (Vidi sliku 5.2).

Slika 5.1

Slika 5.2

Ukoliko pritisnemo OK pojavit e se izlazni fajl sa frekvencijama (Vidi sliku 6). Na osnovu rezultata izlaza moemo vidjeti (vidi kolonu frequency) da je ukupno anketirano 15 ljudi od toga bilo je 6 mukaraca i 9 ena. Ako pogledamo kolonu percent vidimo da mukarci ine 40% od ukupnog broja anketiranih a da ene ine 60% .Takoe primjeujemo da su kolone percent i valid percent identine. Razlika izmeu ove dvije kolone se javlja u sluajevima kad neki podaci nedostaju iz bilo kog razloga. U tom sluaju kolona Percent nedostajue podatke tretira kao bilo kakav drugi podatak i daje u procentima koliko ima nedostajuih podataka, dok Valid percent rauna procente za samo validne tj postojee podatke. Na primjer zamislimo da imamo bazu sa 3000 osoba od kojih 300 ili 10% ispitanika nisu dali odgovor na neko pitanje. U sluaju Percent kolone ukupnu populaciju ili 100% ini 3000 ispitanika. U istom primjeru Valid Percent tretira kao ukupnu populaciju ili 100% 2700 ispitanika (koji su dali odgovor). Ovo emo kasnije vidjeti na stvarnim primjerima.

Kumulativni procenat je dat u koloni Cumulative Percent. Slika 6

Ako se sad vratimo na Tabelu 5.2 vidimo da se ispod OK nalazi opcija Paste. Ako sada ponovimo itavu proceduru jo jedanput i umjesto OK kliknemo Paste pojavit e se sintaksni fajl (Vidi sliku 7 ) Slika 7

Sintaksni kod se pokree na nain da se dio sintakse koji se eli izvriti selektuje potom se pritisne strelica (Vidi sliku 8). Slika 8

Ubudue emo sintaksu jednostavno pisati u tekstu:


FREQUENCIES VARIABLES=pol /ORDER= ANALYSIS .

Zadatak 1. Napraviti sintaksu za raunanje frekvencije varijable Obrazovanje osobe : Upisati dobijenu sintaksu:

Odgovoriti na pitanja: U odnosu na ukupnu populaciju (svi anketirani) koliko osoba ima .... bez kole __________ (______%); sa osnovnom kolom __________ (______%); sa srednjom kolom __________ (______%); sa fakultetom __________ (______%);

Koliko osoba nije dalo odgovor __________ (______%); U odnosu na ciljnu populaciju (osobe stare 10 i vie godina) koliko osoba ima .... bez kole __________ (______%); sa osnovnom kolom __________ (______%); sa srednjom kolom __________ (______%); sa fakultetom __________ (______%); Koliko osoba nije nije dalo odgovor __________ (______%); Zadatak 2: napraviti sintaksu i izraunati koliko mukaraca a koliko ena u ukupnoj populaciji ima sa zavrenim fakultetom. Rjeenje ovog zadatka je ukrtanje varijabli pol i obrazova. Analyse Descriptive statistics Crosstabs Jednu varijablu trebamo staviti u prozori Raw(s) npr. pol a drugu u Column(s) Kada zalijepimo sintaksu dobijam slijedei sintaksni kod:
CROSSTABS /TABLES=pol BY obrazova /FORMAT= AVALUE TABLES /CELLS= COUNT .

Rjeenje: Nakon pokretanja sintakse dobijemo da 3 anketirana mukarca i 3 anketirane ene iz uzorka imaju zavren fakultet.

Izlaz/output 9:
POL Pol osobe * OBRAZOVA Obrazovanje osobe Crosstabulation Count OBRAZOVA Obrazovanje osobe 1 Osnovna 2 Srednja skola skola 3 Univerzitet 0 1 2 3 1 1 1 3 1 2 3 6

0 POL Pol osobe Total 1 Muski pol 2 Zenski pol

Total 6 6 12

Pitanje: Da li primjeujeto neto neobino u predhodnoj tabeli? Odgovor:

Pitanje: ta moemo napraviti da u tabeli imamo 15 osoba umjesto 12. Odgovor: Prilikom ukrtanja podataka SPSS ukrta samo one podatke za koje postoje vrijednosti u obje varijable. U naem sluaju tri osobe su imale nedostajue vrijednosti u varijabli obrazova. Radi se o troje djece koje nismo pitali za nivo obrazovanja budui da imaju manje od 10 godina i oigledno da nisu zavrili osnovnu kolu. Ovoj djeci treba da na mjesto nedostajuih podataka u varijabli obrazvanja stavimo vrijednost 0 koja odgovara modalitetu osobe bez obrazovanja. Za zamjenu podataka koristimo naredbu Recode Transform Recode Into same variable Potom varijablu Obrazovanje osobe ubacimo u prozori Variables: nakon toga e se aktivirati dugme Old and New Values klikom na ovo dugme otvara se slijedei prozor koji se saastoji od dva dijela Old Value i New Value. U dijelu Old Value zakait emo opciju System-missing a u dijelu New Value zakait emo opciju Value i upisati 0 (Vidi sliku 10).

Slika 10

10

Nakon toga kliknemo na Add pa na Continue pa onda na Paste i dobijemo slijedeu sintaksu:
RECODE obrazova (SYSMIS=0) . EXECUTE .

Moemo provjeriti da su se podaci promjenili. Kada ponovo pokrenemo sintaksu:


CROSSTABS /TABLES=pol BY obrazova /FORMAT= AVALUE TABLES /CELLS= COUNT .

Dobit emo izlaz/output 11 Izlaz/output 11:


POL Pol osobe * OBRAZOVA Obrazovanje osobe Crosstabulation Count OBRAZOVA Obrazovanje osobe 1 Osnovna 2 Srednja skola skola 3 Univerzitet 0 1 2 3 4 1 1 3 4 2 3 6

0 POL Pol osobe Total 1 Muski pol 2 Zenski pol

Total 6 9 15

Sada elimo da izraunamo prosjek dnevno popuenih cigareta za osobe stare 10 i vie godina. Analyse Descriptive statistics Descriptives Varijablu Prosjean broj cigareta ubacimo u prozori za varijable. Nakon toga pritiskom na Paste dobijamo slijedeu sintaksu.
DESCRIPTIVES VARIABLES=cigarete /STATISTICS=MEAN STDDEV MIN MAX .

11

Odgovorite na pitanja Kolki je prosjek varijable? _________________ Kolki je minimum varijable? ____________________ Koliki je maksimum varijable? ____________________ Kolika je standardna devijacija varijable? ____________________ No nas ne interesuje samo prosjean broj popuenih cigareta za ukupnu populaciju, nego nas interesuje i prosjek npr. po polu. Da bi izraunali prosjek po polu potrebno je da podjelimo analize na analize za osobe mukog pola i analize za osobe enskog pola. Podjela izlaznih analiza po nekom kriterijumu u SPSS-u se vri koristei komandu SPLIT FILE. Data Split file Potom zakaimo opciju Compare Groups i u prozori za varijable ubacima varijablu Pol osobe(Vidi sliku 12).

Slika 12

12

Kada zalijepimo sintaksu dobijemo slijedei sintaksni kod:


SORT CASES BY pol . SPLIT FILE LAYERED BY pol .

Kada pokrenemo ovaj kod neemo dobiti nikakav izlaz. Ovo je u stvari samo poruka kompjuteru da djeli analize. Medjutim kad nakon pokretanja ovog koda pokrenemo predhodni kod za raunanje prosjeka:
DESCRIPTIVES VARIABLES=cigarete /STATISTICS=MEAN STDDEV MIN MAX .

dobit emo slijedei izlaz (Vidi izlaz/output 13). Izlaz/output 13:


POL Pol osobe 1 Muski pol N CIGARETE Prosjecan broj cigareta dnevno Valid N (listwise) CIGARETE Prosjecan broj cigareta dnevno Valid N (listwise) 6 6 6 6 0 30 13,33 15,055

Descriptive Statistics Std. Deviation 12,007

Minimum 0

Maximum 30

Mean 9,17

2 Zenski pol

U nadalje sve analize koje budu bile raene bit e podjeljene na mukarce i ene. Ukidanje ove opcije je slino kao i pokretanje ove opciju: Data Split file S tim da zakaimo opciju Analyse all cases, do not create groups i ako zalijepimo ovu opciju dobit emo slijedei sintaksni kod:
SPLIT FILE OFF.

Recimo sada da se interesujemo za osobe starije od 10 godina koje pue koliko pue. Ovo nije mogue uraditi direktno SPLIT FILE komandom budui da nemamo varijablu koja nam ukazuje na osobe koje pue preko 10 cigareta.

13

Opcija koja nam omoguuje selektovanje neke tano definisane pod populacije zove se SELECT CASES i ona se pokree na slijedei nain: Data Select Cases Na ovom mjestu trebamo zakaiti opciju If condition is satisfied i tada e se aktivirati dugme If..... Kada kliknemo na ovo dugme upalit e se novi prozori i u njega treba ubaciti varijablu Cigarete i runo pored uisati > 0 (Vidi sliku 14). Slika 14

Nakon toga kada kliknemo na dugme Continue i zalijepimo sintksu dobijamo:


USE ALL. COMPUTE filter_$=(cigarete > 0). VARIABLE LABEL filter_$ 'cigarete > 0 (FILTER)'. VALUE LABELS filter_$ 0 'Not Selected' 1 'Selected'. FORMAT filter_$ (f1.0). FILTER BY filter_$. EXECUTE .

Ustvari SPSS procesor sam pravi filter varijablu i selektuje sluajeve. Napomenimo da kada pritisnemo dugme continue imamo opciju da filtriramo ili da definitivno izbriemo sve nefiltrirane sluajeve. Pored toga u prozoriu u kojem smo upisali cigarete > 0 moemo upisati i bilo koji drugi kompleksniji uslov selekcije koristei boolovu algebru i raspoloive matematike funkcije.

14

Nakon pokretanja ove sintakse i predhodne sintakse za proraun prosjeka popuenih cigareta:
DESCRIPTIVES VARIABLES=cigarete /STATISTICS=MEAN STDDEV MIN MAX .

Dobijamo slijedei izlaz/output 15: Izlaz/output 15


N CIGARETE Prosjecan broj cigareta dnevno Valid N (listwise) 6 6 Descriptive Statistics Minimum 10 Maximum 30 Mean 22,50 Std. Deviation 8,803

Jasno se moe uoiti da se ovdje nalazi 6 osoba koje konzumiraju cigarete (Vidi sliku 16). Slika 16

Slino kao i sluaju sa filtriranjem opcija selektovanja podataka se treba ukinuti kada elimo anlalizirati nanovo sve podatke. Sintaksni kod koji odgovara ukidanju opcije filtriranja je:
FILTER OFF. USE ALL. EXECUTE .

15

Da bi izraunali koliko cigareta ukupno troi svako od posmatranih 5 domainstava, najprije trebamo definisati pojam primarnog kljua. Primarni klju je jedna ili kombinacija vie varijabli koja na jedinstven nain odreuje odreenu kategoriju ili jedinicu populacije. U naem sluaju jedinica populacije je jedna osoba unutar datog domainstva. Svaka osoba je na jedinstven nain odreena rednim brojem domainstva i rednim brojem osobe unutar domainstva. Na taj nain primarni klju za osobe su varijable rbr_dom i rbr_osob. No recimo da nas ne interesuju pojave na nivou osobe nego na nivou domainstva. U tom sluaju primarni klju za domainstva je jednostavno redni broj domainstva (rbr_dom). Vratimo se na raunaje ukupnog broja cigareta koje troi svako domainstvo. Da bi napravili novi fajl koji sadri zbir ispuenih cigareta unutar jednog domainstva koristimo opciju AGGREGATE (Vidi sliku 17): Data Aggregate Slika 17 Ulazne varijable za agregaciju Primarni klju u novom fajlu Ime nove agregirana varijabla u novom fajlu

Dugme za izbor/ promjenu agregatne funkcije

Dugme za pokretanje browsera za spaavanje novog fajla

Dugme za promjenu imena i labele nove agregatne funkcije

Defaultna agregatna funkcija je prosjek 16

Nakon podeavanja svih opcija treba da da dobijemo prozori kao na slici 18 s tim da smo uradili slijedee: Promjenili agregatnu funkciju sa prosjeka na sumu Promjenili ime varijable u cig_dom Za varijablu cig_dom upisali labelu Ukupan broj ispuenih cigareta u domainstvu Spasiti novi fajl na c:/Obuka/aggr.sav

Slika 18

Kada zalijepite sintksu dobijete odgovarjaui sintaksni kod:


AGGREGATE /OUTFILE='C:\Obuka\aggr.sav' /BREAK=rbr_dom /cig_dom 'Ukupan broj ispusenih cigareta u domacinstvu' = SUM(cigarete).

Kada pokrenete ovu sintaksu nita se nee desiti u radnom okruenju ali SPSS napraviti novi fajl . Da bi doli do tog fajla potrebno ga je otvoriti na njegovoj lokaciji c:/Obuka/aggr.sav. Otvaranje fajla se vri naslijedei nain:

17

File Open Data Na ovom mjestu browser-om treba da pronaete c:/Obuka/aggr.sav, ako kliknete na OK fajl e se otvoriti no ako zalijepite sintaksu dobit ete slijedei sintaksni kod:
GET FILE='C:\Obuka\aggr.sav'.

Ovaj kod je vaan jer se nalazi na poetku svih sintaksnih fajli. Kad ga nauite napamet prelazite u fazu direktnog programiranje sintaksnih fajli bez koritenja padajuih menija to je i poetak naprednog koritenja SPSS-a. Automatsko spaavanje nekog fajla je slino kao i otvaranje s tim da se koristi slijedea sintaksa:
SAVE OUTFILE='C:\Obuka\.....'.

Jo jedna znaajna sintaksna naredba koju nismo koristili je komentar. Komentar izgleda ovako u SPSS-u:
*Ovo je komentar.

Vratimo se na na novi fajl sa cigaretama kada se otvori on izgleda ovako (Vidi sliku: 19).

Slika 19

18

Primjetimo da SPSS procesor nedostajue podatke tretira kao nule. Sada nas interesuje da vidimo koliko ljudi ivi u domainstvima u kojima se pui manje od 30 cigareta dnevno. Ovo moemo izraunati u dvije faze: 1. Svakoj osobi dodijeliti ukupan broj cigareta koje se pue u datom domainstvu. 2. Napraviti novu (indikatorsku ili dummy ) varijablu koja ima vrijednost 1 ako osoba ivi u domainstvu u kojem se pui ispod 30 cigareta odnosno koja ima vrijednost nula ako se pui 30 i vie cigareta dnevno. Fazu 1 emo uraditi pomi opcije MERGE ili povezivanje dvaju razliitih fajli u jedan fajl.Na tekui tj. fajl koji je otvoren u ovom momentu kaimo neki drugi fajl na slijedei nain: Data Merge files Add Varibles... Nakon ovog izbora padajueg menija i izbora fajla kojeg elimo nakaiti (u naem sluaju c:/Obuka/aggr.sav) otvara se slijedei prozor (Vidi sliku: 20) Slika 20

Varijable koje se dupliraju u oba fajla. Jedna ili vie njih su primarni klju u fajlu kojeg kaimo, neke se jednostavno dupliraju i bie jednostavno izbaene

(*) varijable u tekuem fajlu (+) varijable u fajlu koji e biti nakaen

Vrsta veze meu fajlovima

Mjesto gdje se upisuje primarni klju

19

U naem sluaju kao primarni klju posluit e rbr_dom, a vrsta veze koju elimo da ostvarimo je External file is keyed table ili vanjski fajl je tabela sa primarnim kljuem. Napomenimo da rbr_dom mora biti sortina po rastuim vrijednosima i u tekuem i u fajlu kojeg treba da nakaimo. Sortiranje se vri na slijedei nain: Data Sort cases... A kada zalijepimo sintaksu dobijamo:
SORT CASES BY rbr_dom (A) .

Budui da su kod nas fajle ve sortirane ovu opciju ne moramo koristiti. Vratimo se na prozor sa slike 20 kada se sve opcije izaberu na odgovarajui nain dobijamo slijede prozor (Vidi sliku: 21). Slika 21

20

Zalijepimo sintaksu dobijamo slijedei sintaksni kod:


MATCH FILES /FILE=* /TABLE='C:\Obuka\aggr.sav' /BY rbr_dom. EXECUTE.

Nakon izvrenja sintakse na fajl izgleda ovako (Vidi sliku: 221).

Slika 22

Zadatak: Opiite u kratkim crtama ta se de desilio:

Nakon diskusije oko povezivanja podataka jedan na jedan u kratkim crtama opiite razliku izmeu veze jedan na jedan i jedan na vie:

21

Ovim bi Faza 1 bila zavrena. Budui da imamo varijablu cig_dom elimo napraviti novu varijablu tip_dom koja e imati labelu Tip domainstva i koja e imati vrijednosti 1 ako osoba ivi u domainstvu u kojem se pui ispod 30 cigareta odnosno koja ima vrijednost nula ako se pui 30 i vie cigareta dnevno. Raunanje novih varijabli se vri na slijedei nain (Vidi sliku 23): Transform Compute Slika 23 Ime nove varijable Vrijednost nove varijable Tip i labela nove varijable

Varijable koje ulaze u kalkulaciju nove varijable

Funkcije koje ulaze u kalkulaciju nove varijable Varijable koje ulaze u logiki iskaz Funkcije koje ulaze u logiki iskaz

22

Kada zalijepimo sintaksu dobijemo slijedei sintaksni kod:


EXECUTE. IF (cig_dom < 30 ) tip_dom = 1 . EXECUTE .

Primjetim da e ova naredba generisati vrijednost 1 i nedostajue vrijednosti: Zadatak: Napisati kod koji generira vrijednost nula za varijablu tip_dom i pokrenuti sintaksu.

Slijedea sintaksa dodjeljuje automatski labele vrijednostima varijable tip_dom.


VALUE LABELS tip_dom 1 "Manje od 30" 2 "30 i vise". Execute.

U kratkim crtama objasnite sta radi varijable Execute.

Upisite sintaksu za racunanje frekvencije varijable tip_dom koja u isto vrijeme i crta graf te frekvencije.

23

Problem: Napraviti sintaksni fajl koji istovremeno rauna sve ove analize. Na osnovu dobijenih analiza napisati kratki sintetski izvjetaj o rezultatima ankete.

24

25

You might also like