SPSS bug

Ieri m-am luptat cu un bug al SPSS-ului foarte ciudat. Acelaşi filtru folosit în două moduri diferite (ştergând cazurile nefolositoare din baza de date, respectiv ignorând cazurile nefolositoare, fără a le şterge) dădea rezultate aparent similare, însă cu o diferenţă de un caz.

Înainte de a intra în detalii trebuie să precizez că am utilizat SPSS 14, împreună cu o bază de date de mari dimensiuni (270.601 cazuri, inclusiv cele care nu prezintă interes pentru extracţia folosită în exemplul meu). Aşadar, şi timpul de rulare a unui tabel a fost, la rândul său, foarte mare (undeva pe la 6-7 minute), lucru care s-ar putea să fie tocmai cheia enigmei.

Şi acum să vedem exact ce s-a întâmplat, folosind un exemplu fictiv deosebit de pueril (datele cu care lucrez sunt confidenţiale şi foarte serioase), însă care reproduce fidel situaţia la care voi face referire în continuare.
Să zicem că am vrut să calculez consumul mediu (în grame pe zi) de hrană uscată în funcţie de rasele de pisici. În acest scop am făcut următoarele operaţii (le puteţi identifica în figura 1) în sintaxa SPSS, urmând ca apoi s-o rulez şi să obţin tabele cu informaţiile pe care le caut : 

 

  1. am deschis baza de date care conţine informaţii nutriţionale despre pisici (cea cu 270.601 cazuri)
  2. am ponderat baza
  3. din mulţinea de pisici studiate, le-am selectat doar pe cele care consumă exclusiv hrană uscată (filter=1); În prima parte a sintaxei sunt selectate doar pisicile care consumă hrană uscată, în timp ce celelalte sunt şterse din baza de date. În exemplul doi, nicio pisică nu este ştearsă din baza de date, însă le studiem doar pe cele care consumă hrană uscată (diferenţa dintre cele două tipuri de selecţie este dată de comanda temp, vizibilă în exemplul doi)
  4. am construit tabelul în care calculăm consumul mediul zilnic de hrană uscată, în funcţie de rase.

Am rulat cele două sintaxe şi le-am exportat în Excel. Am analizat cu atenţie datele şi, am ajuns la concluzia că ele coincid pentru toate rasele, cu o singură execpţie (vezi figura 2). Russian Blue are în primul exemplu un caz mai puţindecât în al doilea (ca şi cum una dintre pisicile din rasa respectivă când mănâncă hrană uscată, când nu; deşi filtrul, în ambele situaţii, se referă doar la cele care consumă exclusiv acest tip de hrană). Iar acest lucr se vede şi în gramajul de hrană consumată (56,6 în primul exemplu vs. 55,3 în al doilea). Verificând rezultatele, am ajuns la concluzia că varianta a două ne oferă rezultatele corecte (deci în bază avem 88 de Ruşi Albaştri mâncători de hrană uscată).

 Aşadar, folosit pentru baze mari, filtrul cu ştergere a cazurilor pe care nu le analizăm se poate dovedi nu tocmai demn de încredere. Bine de reţinut şi de testat când mai avem ocazia.

M-am născut om şi am crescut robot. În prezent mă străduiesc să ajung în punctul din care am plecat. N-am reuşit în totalitate, însă cred că sunt pe drumul cel bun.

Când îmi explorez latura non-robotică, îmi place: să citesc şi să scriu, să croşetez şi să fac diverse obiecte “de mână”, să urc pe munte şi să înot în mare, să joc jocuri de societate.
Nu am uitat nici de micii mei prieteni cu blană, pisicile. Îmi place să petrec timp în compania lor, fapt pentru care umila-mi gospodărie este disputată de Kirb, Miarys şi Mioja.

Ihrielle – who has written posts on Kirb's Crib.


Tagged on: , , , ,

6 thoughts on “SPSS bug

  1. CarachAngren

    Ai incercat sa izolezi cele 88 de pisici din sutele de mii intr-o baza mai mica sa vezi cum se comporta in cele doua conditii (cu si fara temp)? S-ar putea ca nu marimea bazei sa fie implicata. Sunt si eu curios.
    Poate ca ar trebui sa izolezi pisica in cauza sa vezi ce particularitati are. Poate camera in care o hranesti are umiditate ridicata si hrana nu se pastreaza uscata asa ca trebuie sa lasi un temp fereastra deschisa inainte de a o hrani.

  2. Ihrielle Post author

    :)) Uite ceva la care nu m-am gandit. Iti multumesc pentru sfat, Carach, o sa-l pun in aplicare negresit si revin cu amanunte.

    P.S.: Eu zic sa nu i se mai dea deloc hrana “pisicii” in cauza :))

  3. Ihrielle Post author

    Am incercat si da aceeasi treaba. Adica depinde in ce fel “izolez” Albastrele de Rusia mancatoare de hrana uscata: daca-i dau cu temp, merge treaba. Daca nu, imi ignora o Albastra de Rusia si-mi pune un Main Coon in loc…
    Ciudat… Sa mai spuna cineva ca cele doua comenzi selecteaza acelasi lucru!
    Si uite cum i-am prins cu matza-n sac!

Leave a Reply

Your email address will not be published. Required fields are marked *


css.php