Članki » Vodiči » PSPP
PSPP
Večina slovenskih študentov družboslovja pozna statistični program SPSS, kar je kratica za Statistical Package for Social Sciences.
Gre za uporabniško prijazen in za osnovne potrebe razmeroma zmogljiv program, katerega uporabo poučujejo na večini slovenskih družboslovnih fakultet, omogoča pa statistične analize podatkov, praviloma zbranih v družboslovnih anketah.
SPSS vsebuje ogromno funkcij, na voljo so tudi različni moduli, ima pa tudi svoje muhe. Program je žal precej počasen, da ne rečem glomazen, zelo težko pa prebavlja tudi velike datoteke. Govorimo seveda o datotekah, ki se merijo v gigabajtih. Po drugi strani pa je res, da je večina statističnih datotek v družboslovju majhnih, zato teh slabosti pri vsakdanjem delu pravzaprav ni opaziti.
Ima pa SPSS dve veliki pomanjkljivosti. Prva je cena, ki je precej zasoljena, druga pomanjkljivost pa je licenčni model, ki omogoča le najem programa. Da, licenco je mogoče kupiti za omejen čas, nato pa jo je treba podaljševati.
Ker program poleg vsega tudi ni prost, se pravi odprtokoden, uporabniki Linuxa pa smo na različico namenjeno Linuxu čakali kar dolgo let, se je marsikdo pričenjal ozirati za alternativami. A alternativ SPSS-u pravzaprav ni bilo. Da, obstaja zelo kvaliteten in zmogljiv program za statistične analize R, vendar je namenjen profesionalcem, njegova uporaba pa je bistveno drugačna kot uporaba SPSS-a, ki pravzaprav temelji na klikanju.
Zato se je leta 1998 Ben Pfaff odločil napisati SPSS klon, ki ga je najprej poimenoval FIASCO (Fiasco Implements Accurate Statistical Computations oziroma Fiasco Is An SPSS Copy), nato pa - kako neizvirno - PSPP. Program v osnovi deluje v ukazni vrstici in seveda pričakuje poznavanje PSPP oz. SPSS ukaznega jezika. Različica 0.1.0 je tako izšla avgusta 1998 in potem se nekaj časa ni dogajalo nič. Naslednja različica je izšla januarja 2000, sledilo je štiriletno zatišje in nato še posodobitve leta 2005, 2007 in 2008. Vmes so avtorji program prenesli na Free Software Foundation.
Ko sem si program nekoliko bližje ogledal pred kakšnimi dvema letoma je spominjal na mrtvega konja. Skoraj dobesedno. Uporaba se mi je zdela tako zapletena, da sem se kot zaprisežen odprtokodnik le s težavo spravil k preizkusu najbolj osnovne statistične analize, ki je pravzaprav obsegale le nekaj najbolj osnovnih univariatnih analiz. Priznam – vtis ni bil dober.
A program se je razvijal naprej in pred kratkim smo dobili celo grafični vmesnik. A pozor, to ni kar navaden grafični vmesnik, pač pa grafični vmesnik ki skoraj v popolnosti posnema SPSS, zna prebrati SPSS podatkovne datoteke in celo razume SPSS sintakso.
Program tako izredno spominja na SPSS. Seveda v programu (še) niso implementirane vse funkcije, a po drugi strani je zasnova programa odlična. Kot rečeno program bere tako .SAV kot tudi .SPS datoteke, za razliko od originalnega SPSS-a nima težav z velikimi datotekami (podpira datoteke z več kot milijardo spremenljivkami in več kot milijardo enotami), je hiter, deluje na vseh platformah in je brezplačen in brez časovnih omejitev. Avtorji sicer načrtujejo tudi uvoz podatkovnih datotek programa SAS (gre za še en znan in široko uporabljan statističen program), vendar to še ni implementirano.
Tekstovni PSPP zna risati tudi grafe in tabele v HTML in PostScript formatu, žal pa v grafičnem vmesniku to še ni implementirano in se rezultati analiz izpisujejo v tekstovni obliki. Prav tako so v programu že nastavki za izmenjavo podatkov z Gnumeric in OpenOffice.org (oziroma vsemi programi, ki razumejo XML), vendar v grafičnem vmesniku tudi to še ni implementirano. Pa si na hitro poglejmo osnovne možnosti.
Grafični vmesnik - PSPPire
Grafični vmesnik za PSPP se imenuje psppire. Različico 0.6.0 na Ubuntu sistemih zaženemo iz ukazne vrstice, različico 0.6.1 pa iz menija Programi - Izobraževanje - GNU PSPP. Ko ga zaženemo, se naloži vsem uporabnikom SPSS znan uporabniški vmesnik, ki vsebuje zavihka za prikaz tabele podatkov in seznama spremenljivk. S klikom na ustrezno ikono lahko takoj odpremo SPSS podatkovno datoteko in jo tudi pregledujemo. Žal pri tem ne-angleški uporabniki hitro lahko naletimo na težave, saj slovenskih znakov (čšž) v imenih spremenljivk in med podatki PSPP ne prebavlja najbolje oz. je njihov uvoz nepopoln. Problem pravzaprav izhaja iz SPSS-a, ki se v starejših različicah sploh ni razumel z ne-angleškimi znaki, v novejših različicah pa se problem sicer trudi odpraviti, a ima včasih še vedno težave. Novejše različice SPSS podatkovnih datotek sicer že vsebujejo podatke o kodiranju znakov, vendar PSPP te opcije še ne zna prebrati in posledično ne zna prekodirati prikaza znakov. Omenjenih težav PSPP z uvozom “surovih” tekstovnih datotek ustvarjenih v Linuxu oz. UTF-8 kodiranih nima. Razvijalci so na napako že opozorjeni in verjetno bodo v prihodnjih različicah dodali možnost ročno izbire kodiranja znakov.
V pregledovalniku podatkov lahko pregledujemo, brišemo in urejamo podatke in spremenljivke. Omogočeno je tudi iskanje, skratka vse, kar potrebuje spodoben urejevalnik podatkov. Pri tem imamo na voljo praktično enake možnosti, kot v SPSS-u.
V nadaljevanju se sprehodimo po menijih, ki so prav tako organizirani podobno kot v programu SPSS.
V meniju File lahko ustvarimo novo ali odpremo obstoječo podatkovno datoteko (.SAV, oziroma .POR - SPSS Portable) oziroma datoteko z SPSS ukazi (tim. syntax file). Na voljo je tudi izbira za uvod tekstovnih datotek, pri čemer kot delilec polj (tim. delimiter) lahko določimo praktično katerikoli znak, npr. tabulator (tab-delimited datoteka), podpičje (CSV datoteka), itd.
Tukaj že naletimo na prvo pomanjkljivost programa, saj za razliko od SPSS ne omogoča uvoza Excelovih datotek. To sicer ni velika težava, saj je Excel ali OpenOffice.org datoteke mogoče vedno shraniti v tekstovno datoteko in jih nato uvoziti, kljub temu pa takšna funkcija ne bi bila odveč. Zna pa PSPP s pomočjo sintakse že uvoziti Gnumeric preglednice, v bodočih različicah pa lahko pričakujemo tudi ustrezne menijske vnose. SPSS sicer zna uvoziti Systat, Lotus, SYLK, Dbase in različne SAS datoteke, PSPP pa ima neposrednega uvoza teh datotek (še) ne omogoča, je pa res, da avtorji programa intenzivno delajo ravno na uvozu SAS datotek. Grafični vmesnik sicer še ne omogoča neposrednega priklopa na bazo podatkov, je pa mogoče iz urejevalnika sintakse zagnati preprost ukaz, s katerim se PSPP poveže na Postgres bazo podatkov in podatke uvozi iz nje.
Na voljo je tudi shranjevanje, ki pa je mogoče samo v SPSS SAV format ali SPSS Portable format. Izvoz podatkov v druge formate ni mogoč, razen seveda če podatke v pregledovalniku podatkov označimo z miško, prekopiramo in nato prilepimo v urejevalnik tekstovnih datotek ali OOo Calc, kar pa je zelo zasilna rešitev, ali pa uporabimo ukaz WRITE (v urejevalniku sintakse). Program na tem mestu vsekakor potrebuje nekaj dodelave oziroma implementacijo izvoza podatkov v vsaj glavne podatkovne formate preko grafičnega vmesnika.
Meni Edit je pri obeh programih praktično enako funkcionalen.
V PSPP omogoča iskanje, dodajanje spremenljivk ali podatkov ter klasične kopiraj-izreži-prilepi funkcije. SPSS ima na tem mestu še možnost nastavljanja izgleda izrisanih tabel, tu pa PSPP čaka še kar nekaj dela, saj grafični vmesnik trenutno omogoča le prikaz tekstovnih tabel (sam PSPP sicer omogoča tudi izris grafov in tabel v HTML in PostScript formatu). Enako velja za meni View.
Konkretnejše razlike pa se začnejo pri meniju Data. PSPP sicer omogoča sortiranje podatkov (in to po več spremenljivkah), deljenje datotek in izbiro enot po posameznih kriterijih (tudi vzorčenje) ter celo transponiranje, a naprednejši uporabniki pogrešamo vsaj lepljenje datotek in agregiranje podatkov. Lepljenje datotek je sicer že mogoče s pomočjo ukaza MATCH FILES, ki ga poženemo v urejevalniku sintakse, avtorji pa za različico 0.7 (testirali smo različico 0.6.1) obljubljajo tudi dve dodatni izbiri v meniju in sicer Add files in Update files, ki bosta omogočali lepljenje datotek (dodajanje enot in dodajanje spremenljivk) neposredno preko grafičnega vmesnika. podobno velja za agrediranje podatkov – mogoče je preko ukaza AGGREGATE, menijskega vnosa pa še ni na voljo.
Mimogrede, nekatere možnosti v Data meniju so v SPSS-u podvojene oziroma jih je v PSPP mogoče uporabiti preko drugih možnosti. Gre predvsem za možnosti definiranja lastnosti spremenljivke, vstavljanja enot in spremenljivk, itd.
Nekaj pomanjkljivosti je opaziti tudi pri izbiranju (filtriranju) enot. PSPP preko grafičnega vmesnika (preko sintakse to deluje) trenutno še ne omogoča izbire enot po poljubnih kriterijih, pač pa le s pomočjo tim. filtrske spremenljivke. Prav tako PSPP neizbranih, filtriranih, enot vizualno ne označi (SPSS zaporedne številke teh enot prečrta), bo pa to implementirano v različici 0.7.
Deluje tudi naključno vzorčenje, vendar je treba pri večjih bazah podatkov vsako tako operacijo (podobno kot v SPSS) ročno zagnati z ukazom Run pending transforms v meniju Transform. Naprednejši uporabniki sicer pogrešamo kakšno bolj napredno metodo vzorčenja (ki sicer ni implementirana niti v SPSS-u). Na tem mestu morda velja omeniti, da ima SPSS občasno resne težave z naključnim vzorčenjem (v novejših različicah se te težave trudijo odpraviti), saj je očitno funkcija, ki skrbi za generiranje naključnih števil precej pristrana. SPSS je v preteklih različicah privzeto uporabljal zelo pristrani Windows generator “naključnih” števil in šele v novejših različicah je dodana možnost izbire drugega generatorja psevdonaključnih števil. Posledično v SPSS-u ustvarjeni vzorci niso bili ravno naključni, kar se je dalo opaziti pri intenzivnejši uporabi programa oziroma naprednejših statističnih analizah. PSPP je tukaj v prednosti, saj za vzorčenje že privzeto uporablja Mersenne Twister iz programske knjižnice GNU Scientific Library, ki velja za enega boljših generatorjev psevdonaključnih števil za potrebe statističnih analiz.
V meniju Transform razlike sicer so, a so funkcionalno minimalne. Funkcija Compute v PSPP zelo lepo deluje, prav tako PSPP pozna rekodiranje (sicer ne pozna samodejnega rekodiranja, vendar je le-to v praksi izjemno redko uporabljena funkcija), pozornejši uporabnik pa bo pogrešil funkcijo Count, ki je v PSPP meniju sicer ni, jo je pa mogoče zagnati iz urejevalnika sintakse (tim. syntax editor) oziroma enak analizo izvesti s pomočjo že implementiranega ukaza Count.
Bistvena razlika med SPSS in PSPP pa se skriva v meniju Analyze. PSPP namreč v številu možnih statističnih analiz močno zaostaja za svojim komercialnim bratom, res pa je, da ima trenutno implementirane skoraj vse v praksi najpogosteje uporabljane funkcije.
Tako zna izračunati frekvenčne tabele in osnovne deskriptivne statistike ter prikazati kontingenčne tabele z izračunanimi vsemi ustreznimi statistikami. V meniju Compare Means lahko izbiramo med različnimi metodami primerjave povprečij – PSPP zna izračunati različne oblike t-testa, kot tudi ANOVA test.
Sledi še linearna regresija potem pa se nabor statističnih funkcij žal že konča. Profesionalci bodo pri PSPP pogrešali predvsem izračun korelacij, faktorsko analizo, razvrščanje v skupine ter analizo variance s pomočjo metode glavnih komponent.
Sklep
PSPP ima sicer veliko pomanjkljivosti, zato bi bilo o njem prezgodaj govoriti kot o “SPSS killerju”. A treba se je zavedati, da gre za izdelek v razvoju, ki pa ima solidno zasnovo in vse možnosti za izboljšanje, poleg tega pa nudi visoko stopnjo kompatibilnosti s prevladujočim izdelkom na trgu.
Večina nadležnih pomanjkljivosti je povezana z nedodelanim vmesnikom za delo s podatki. Različni načini kodiranja znakov, uvoz in izvoz v različne formate in povezava s podatkovnimi zbirkami, itd. so stvari, ki so praktično že implementirane, treba jih je le dodelati in vključiti v grafični vmesnik. Enako velja tudi za implementacijo zmogljivosti za manipulacijo s podatkovnimi strukturami (lepljenje datotek, agregiranje podatkov,...), PSPP pa bi lahko na kakšnih mestih ubral tudi svoj pristop in recimo implementiral naprednejše metode vzorčenja ali kakšne dodatne možnosti za manipulacijo s podatki.
Ena večjih pomanjkljivosti programa je tudi grd izhodni vmesnik, torej tekstovni izpis tabel in statistik. PSPP se tukaj žal zgleduje po desetletje stari različici SPSS-a za DOS, čeprav osnovni ne-grafični program že zna izpisati tabele v HTML in PostScript formatu. Avtorji bodo izhodnemu vmesniku v prihodnjih različicah namenili posebno pozornost, pohvalno pa je, da tekstovnega izpisa tabel ne bodo opustili, pač pa bo ostal kot ena izmed možnosti izpisa. Mimogrede, avtorji napovedujejo tudi izvoz izhodnih podatkov v XML format, kar bo še povečalo možnosti analize podatkov. Če bo izhodni vmesnik izdelan tako, da bo omogočal visoko stopnjo nastavitev hkrati pa bo enostaven za uporabo, bo to zadetek v polno. Komercialni SPSS je tukaj žal precej neroden in upajmo, da mu avtorji PSPPja ne bodo preveč zvesto sledili. K implementaciji uporabniško prijaznega izhodnega vmesnika seveda sodi tudi risanje grafov. PSPP za graficiranje uporablja zmogljivi GNU Plot, avtorje pa tako čaka “le” še implementacija GNU Plota v grafični vmesnik. Mimogrede, tudi tu lahko upamo, da privzeti stil grafov ne bo enak (se pravi enako grd) kot pri SPSS-u, pač pa da se bodo avtorji raje zgledovali po kakšnem Harward Graphics ali podobnem zmogljivim programom za grafični prikaz podatkov ter morda implementirali tudi kakšno metodo, ki jo uporablja tim. raziskovalna analiza podatkov (ang. exploratory data analysis).
Seveda se v programu znajdejo tudi kakšni zoprni hrošči. V različici 0.6.0, ki je na voljo v uradnih skladiščih Ubuntu programske opreme, se je recimo pojavil hrošč, zaradi katerega so bili pri izračunu linearne regresije prikazani napačni standardizirani regresijski koeficienti (hrošča so že odpravili v različici 0.6.1). Dejstvo pač je, da je program potreben obsežnega testiranja, kar je mogoče doseči z razširitvijo njegove uporabe.
Pozornejši uporabniki bodo odkrili tudi nekaj manjših težav v urejevalniku sintakse. SPSS sintaksa se je z leti namreč razvila PSPP pa podpira le starejše različice, poleg tega pa SPSS podpira tudi okrajšave (namesto FREQUENCIES lahko napišemo samo freq). A to je pravzaprav malenkost.
Na koncu pa seveda pridemo do glavne pomanjkljivosti, to je nezadostnega števila možnih statističnih analiz, ki jih je s PSPP mogoče odpraviti. Kljub temu, da se na prvi pogled zdi, da gre za velik problem, temu ni nujno tako. Statistiki namreč dobro poznajo zelo zmogljiv odprtokodni program R in njegov R-Commander, ki omogoča številne statistične analize podatkov, prav tako kot PSPP pa tudi R zna brati SPSS podatkovne datoteke (in risati enako grde grafe kot SPSS). Glede na to, da sta oba projekta odprtokodna je sodelovanje vsekakor mogoče, čeprav avtorji na spletni strani poudarjajo, da projektov ne nameravajo združiti, saj imata vsak drugačen namen in drugačno ciljno publiko.
Dejstvo je, da funkcije, ki jih ima PSPP že implementirane, zadostujejo za večino prvih in drugih letnikov študentov družboslovja, pa tudi marsikateri raziskovalec oz. raziskovalno-marketinška agencija dlje od kontingenčnih tabel, t-testa in linearne regresije ne pride. Program vsekakor potrebuje še nekaj piljenja, in predvsem testiranja, a zasnova je dobra in za osnovne statistične analize je program že sedaj skoraj povsem zadovoljiv, to pa se bo z vsako novo različico samo še izboljšalo.
Žal bo tudi tukaj zgodba najbrž podobna kot pri OpenOffice: večina uporabnikov, ki potrebuje le osnovno funkcionalnost, zelo verjetno ne bo pripravljena kar takoj seči po povsem zadovoljivi brezplačni alternativi, saj stroškov licence ne občuti neposredno na svojem žepu. Res je sicer da ob trenutni stopnji razvoja PSPPja hiter prehod ni smiseln, a to se utegne kaj kmalu spremeniti. Podpora rešitvam, ki uporabnika rešijo odvisnosti od enega samega proizvajalca, pa je pravzaprav že sama po sebi dobra stvar.
Testiran je bil PSPP 0.6.1 na sistemu Ubuntu Linux 8.10. PSPP je odprtokoden, brezplačen in je na voljo za operacijske sisteme Linux, Windows in Mac OS.
Povezave
Šifriranje nosilcev podatkov v okolju Linux in Windows
Cryptography is a data-protection technology just as gloves are a hand-protection technology. Cryptography protects data from hackers, corporate spies and con artists, whereas gloves protect hands from cuts, scrapes, heat, cold and infection. The former can frustrate FBI wiretapping, and the latter can ...
Tečaj Blenderja (1. del)
- maurizio007 ::
Če slučajno berete ta članek, to najbrž pomeni, da se v danem trenutku sprašujete precej podobna vprašanja, kot sem se jih tudi jaz še ne dolgo nazaj. In ne, to niso bila temeljna vprašanja človekovega obstoja “kje, kam in zakaj.” Verjetno se ...
Mehki igralniki videa
Ena izmed bolj priljubljenih oblik zabave v današnjem času je zagotovo gledanje filmov -- kljub temu, da vsak film v kinu izgleda bolj čarobno, se mnogo premier vsak dan odvrti na računalniških ekranih in domačih televizorjih, gledamo pa jih iz udobnih naslonjačev. ...
Programski jezik C++
Kot vas večina verjetno ve, današnji računalniki razumejo le bitni jezik, ki mu pravimo tudi strojna koda (machine code). Če torej hočemo, da naš računalnik izvede neko nalogo ali opravilo, mu moramo to podati v obliki, ki jo razume, torej v enicah in ničlah. Ker ...
Intervju z Dustinom Kirklandom, glavnim razvijalcem sistemov za šifriranje v Ubuntuju
English version Dustin Kirkland je Ubuntu Core razvijalec, zaposlen pri podjetju Canonical. Preden je začel delati na razvoju Ubuntu serverja, je preživel 8 let pri IBM-u. Trenutno je osredotočen na razvoj Ubuntu Enterprise oblaka za prihajajočo različico Ubuntuja, 10.04 LTS, pred tem pa je delal na ...