Prace dyplomowe · Kryminologia

Statystyka w pracy z kryminologii: postawy wobec kary, lęk przed przestępczością, zliczenia i dane wrażliwe

Jak przeanalizować eksperyment winietowy o karze, skalę lęku przed przestępczością, liczbę incydentów wiktymizacji, odsetki zgłoszeń na policję i pytania drażliwe: wybór modelu, wielkość efektu, gotowe zdania APA i ochrona danych – z kodem R na danych symulowanych.

Strona główna / Blog / Statystyka w kryminologii
W skrócie: W pracy z kryminologii najczęściej analizujesz postawy wobec kary, lęk przed przestępczością, liczbę zdarzeń wiktymizacji, odsetki zgłoszeń na policję i odpowiedzi na pytania drażliwe. Rekomendowaną karę analizuj regresją porządkową, lęk – regresją wieloraką, a liczbę zdarzeń – modelem dla zliczeń: regresja Poissona przy nadmiernym rozproszeniu zaniża błędy – w przykładzie zmienia to wynik z p = .005 na p = .078. Dane o przestępstwach i ofiarach chroń staranniej niż zwykłą ankietę.

Pięć typowych projektów w pracy z kryminologii

Prace dyplomowe z kryminologii rzadko opierają się na jednym typie danych. Ten sam student może zbadać ankietą postawy wobec kary, policzyć, ile razy respondenci padli ofiarą oszustwa w internecie, i porównać odsetki osób, które zgłosiły zdarzenie na policję. Każdy z tych celów wymaga innego modelu: odpowiedź porządkowa – regresji porządkowej, wynik skali – regresji liniowej, liczba zdarzeń – modelu dla zliczeń, odsetek – przedziału ufności dla proporcji. Do tego dochodzi cecha szczególna kierunku: pytasz o sprawy drażliwe, więc część odpowiedzi może być zaniżona, a dane wymagają starannej ochrony. Tabela porządkuje pięć projektów omówionych w tym poradniku.

Pięć typowych projektów prac z kryminologii: pytanie, dane, analiza i wielkość efektu
ProjektTypowe pytanieDaneAnaliza głównaWielkość efektu
1. Postawy wobec kary (winieta)Czy uprzednia karalność sprawcy zmienia rekomendowaną reakcję?odpowiedź porządkowa w 5 kategoriach, losowo przydzielone wersje opisuregresja porządkowa (proporcjonalne szanse)iloraz szans (OR) z 95% CI
2. Lęk przed przestępczościąCo wiąże się z lękiem mieszkańców?wynik skali 1–5 i kilka predyktorówregresja wielorakab i β z 95% CI, R²
3. Wiktymizacja w internecieOd czego zależy liczba incydentów w ciągu roku?zliczenia 0, 1, 2…, dużo zerregresja Poissona → ujemna dwumianowailoraz częstości (IRR) z 95% CI
4. Zgłaszanie zdarzeń na policjęCzy odsetek zgłoszeń zależy od rodzaju zdarzenia?tak/nie w grupachodsetki z CI Wilsona, chi-kwadrat, różnica proporcjiV Craméra, różnica w punktach procentowych z CI
5. Pytanie drażliweIle osób naprawdę jeździ bez biletu?odpowiedź wprost i technika randomizowanej odpowiedziestymator Warnera z przedziałem ufnościróżnica oszacowań, utrata precyzji

Wszystkie dane w przykładach są symulowane, a liczby nie opisują żadnej rzeczywistej populacji. Pełny kod znajdziesz w sekcji Przykład w R. Jeśli w Twojej pracy przeważa sondaż opinii z ważeniem, zajrzyj też do poradnika statystyka w pracy z socjologii, a jeśli badasz instytucje i służby – do wpisu statystyka w pracy z bezpieczeństwa narodowego. Nie wiesz, który test pasuje do Twojej hipotezy? Pomoże kreator doboru testu, a cały proces od pytania do rozdziału wyników opisuje przewodnik po statystyce w pracy dyplomowej.

Zanim zaczniesz: drażliwe pytania i ochrona respondentów

Pytania o przestępstwa są pytaniami drażliwymi. Tourangeau i Yan (2007) w przeglądzie badań nad pytaniami drażliwymi pokazują, że błędne odpowiedzi są częste i zależą od sytuacji: od tego, czy respondent ma coś do ukrycia, i od warunków badania. Respondenci „redagują” odpowiedzi, aby uniknąć zakłopotania albo konsekwencji. W kryminologii dotyczy to zarówno pytań o własne zachowania, jak i o bycie ofiarą, bo część osób wstydzi się przyznać do oszustwa czy nękania. Dlatego wybór trybu badania (ankieta internetowa bez ankietera zamiast wywiadu), sposób sformułowania pytań i zapewnienie anonimowości są tu częścią metodologii, a nie formalnością. Szerzej zjawisko opisuje hasło aprobata społeczna.

Nie pytaj o więcej, niż potrzebujesz. Dane o naruszeniach prawa i o byciu ofiarą wymagają szczególnej ostrożności. Zanim zbierzesz dane, ustal z promotorem, czy badanie wymaga opinii komisji etycznej, i przygotuj informację dla uczestników zgodną z zasadami opisanymi w haśle świadoma zgoda i RODO w badaniach. Unikaj pytań o konkretne, możliwe do zidentyfikowania czyny i osoby. Nie zbieraj adresów e-mail w tym samym pliku co odpowiedzi. Nie dobieraj też przykładów ani zmiennych tak, aby utrwalały stereotypy o grupach społecznych: w tym poradniku sprawca w winiecie nie ma narodowości, wyglądu ani miejsca zamieszkania.

Nie podawaj danych o przestępczości bez źródła. Jeśli we wstępie pracy przywołujesz liczby przestępstw lub odsetki ofiar, cytuj konkretną publikację lub oficjalną statystykę z datą odczytu i zaznacz, czy chodzi o przestępstwa zarejestrowane, czy o deklaracje respondentów. To dwa różne zjawiska, bo nie każde zdarzenie trafia do policji, a projekt 4 pokazuje, jak tę lukę badać.

Projekt 1. Postawy wobec kary: eksperyment winietowy

Pytanie „Czy kary w Polsce są zbyt łagodne?” mierzy ogólną punitywność, ale niewiele mówi o tym, co wpływa na ocenę konkretnej sprawy. Lepszym narzędziem jest eksperyment winietowy: respondent czyta krótki opis zdarzenia, w którym badacz systematycznie zmienia wybrane cechy, i wskazuje właściwą reakcję. Atzmüller i Steiner (2010) zwracają uwagę, że sposób doboru winiet (losowy albo według planu eksperymentalnego) ma poważne konsekwencje dla analizy i interpretacji efektów, w tym interakcji. W pracy dyplomowej najprostszy jest plan czynnikowy 2 × 2, w którym każda osoba dostaje jedną losowo przydzieloną wersję.

Przykład: 240 osób przeczytało opis kradzieży roweru. Losowo zmieniano dwie cechy: uprzednią karalność sprawcy (nie/tak) i wartość szkody (niska/wysoka), po 60 osób na wersję. Odpowiedź miała pięć uporządkowanych kategorii: mediacja i naprawienie szkody, grzywna, ograniczenie wolności, pozbawienie wolności w zawieszeniu, bezwzględne pozbawienie wolności. Odsetek wskazań kary pozbawienia wolności (dwie najsurowsze kategorie) wynosił 15.0% przy sprawcy niekaranym i niskiej szkodzie, 35.0% przy niekaranym i wysokiej szkodzie, 41.7% przy karanym i niskiej szkodzie oraz 66.7% przy karanym i wysokiej szkodzie.

Skumulowane słupki rozkładu pięciu rekomendowanych reakcji w czterech wersjach winiety po 60 osób; przy sprawcy niekaranym i niskiej szkodzie dominują grzywna 35% i ograniczenie wolności 30%, przy sprawcy karanym wcześniej i wysokiej szkodzie pozbawienie wolności w zawieszeniu 38% i bezwzględne pozbawienie wolności 28%
Rysunek 1. Rozkład rekomendowanej reakcji na kradzież roweru w czterech wersjach winiety. Kolory od niebieskiego do czerwonego oznaczają coraz surowszą reakcję. Obliczenia: R (dane symulowane).

Dlaczego regresja porządkowa, a nie średnia

Kategorie odpowiedzi są uporządkowane, ale odległości między nimi nie są równe: „krok” od grzywny do ograniczenia wolności nie jest tym samym co krok od kary w zawieszeniu do bezwzględnego więzienia. Dlatego zamiast porównywać średnie z kodów 1–5 użyj regresji porządkowej. Model proporcjonalnych szans podaje jeden iloraz szans dla każdej cechy winiety: o ile rosną szanse wskazania reakcji surowszej zamiast łagodniejszej, niezależnie od tego, w którym miejscu skali postawimy granicę.

Najpierw sprawdź interakcję, bo plan 2 × 2 do tego służy. Model z interakcją nie był lepszy od modelu addytywnego, χ²(1) = 0.08, p = .783, więc efekt karalności był podobny przy niskiej i wysokiej szkodzie. W modelu addytywnym uprzednia karalność zwiększała szanse wskazania surowszej reakcji 3.81 raza, 95% CI [2.37, 6.19], z = 5.48, p < .001, a wysoka szkoda 2.31 raza, 95% CI [1.45, 3.70], z = 3.52, p < .001. Test efektów nominalnych nie wskazał naruszenia założenia proporcjonalnych szans (p = .935 dla karalności i p = .241 dla szkody). Pełną procedurę, w tym odczyt progów i prawdopodobieństw przewidywanych, opisujemy w poradniku regresja porządkowa krok po kroku.

Pamiętaj o ograniczeniu, które warto wpisać do dyskusji: winieta mierzy deklarowaną ocenę hipotetycznej sprawy. Nie wiesz, jak ta sama osoba oceniłaby prawdziwą sprawę w sądzie. Uzupełnij badanie o pytanie sprawdzające (czy respondent zapamiętał wartość szkody) i analizuj tylko kompletne odpowiedzi albo wykonaj analizę z wykluczeniem osób, które nie zdały kontroli.

Uczestników (N = 240) losowo przydzielono do jednej z czterech wersji opisu kradzieży roweru (plan 2 × 2: uprzednia karalność sprawcy × wartość szkody, po 60 osób). Rekomendowaną reakcję (5 kategorii uporządkowanych) analizowano regresją porządkową z funkcją logitową. Interakcja czynników była nieistotna, χ²(1) = 0.08, p = .783. Uprzednia karalność sprawcy zwiększała szanse wskazania surowszej reakcji, OR = 3.81, 95% CI [2.37, 6.19], p < .001, podobnie jak wysoka wartość szkody, OR = 2.31, 95% CI [1.45, 3.70], p < .001. Karę pozbawienia wolności wskazało 15.0% osób w wersji ze sprawcą niekaranym i niską szkodą oraz 66.7% w wersji ze sprawcą karanym i wysoką szkodą. Założenie proporcjonalnych szans nie zostało naruszone.

Projekt 2. Lęk przed przestępczością w sondażu mieszkańców

Lęk przed przestępczością to jeden z najczęstszych tematów prac z kryminologii i jednocześnie jeden z najtrudniejszych do zmierzenia. Ferraro i LaGrange (1987) w przeglądzie piętnastu lat badań pokazali, że miary lęku i miary szacowanego ryzyka korelują tylko umiarkowanie, a mimo to wiele badań mierzyło ryzyko i wyciągało wnioski o lęku. Pytanie „Jak bezpiecznie czujesz się, chodząc sam po zmroku?” nie mówi, czego respondent się boi, i miesza emocję z oceną sytuacji. Lepiej zapytać osobno o obawę przed konkretnymi zdarzeniami (np. kradzieżą, napadem, włamaniem) i osobno o subiektywne prawdopodobieństwo, że się wydarzą.

Przykład: 400 mieszkańców odpowiedziało na cztery pytania o obawę przed konkretnymi zdarzeniami (1 – wcale się nie obawiam, 5 – bardzo się obawiam). Wynik skali to średnia pozycji, M = 2.79, SD = 0.77, a jej spójność wewnętrzna była dobra (α = .80). Lęk korelował z szacowanym ryzykiem na poziomie r = .35, czyli umiarkowanie. Tak niska zbieżność to argument, by w pracy nie traktować tych miar zamiennie.

Regresja wieloraka i co z niej raportować

Predyktory lęku wybierz z teorii, a nie z listy wszystkich pytań metryczkowych. Tu są to płeć, wiek, doświadczenie wiktymizacji w ciągu ostatnich trzech lat i postrzegany nieład w okolicy (np. zaśmiecenie, zniszczone przystanki, zakłócanie spokoju), mierzony skalą 1–5. Model regresji wielorakiej wyjaśniał 10.7% wariancji lęku, R² = .107, skorygowane R² = .098, F(4, 395) = 11.86, p < .001.

Regresja wieloraka lęku przed przestępczością: współczynniki niestandaryzowane z 95% CI, t, p i beta (n = 400)
Predyktorb [95% CI]t(395)pβ
Płeć (mężczyzna vs kobieta)−0.31 [−0.45, −0.16]−4.17< .001−0.40a
Wiek (lata)0.001 [−0.003, 0.005]0.37.711.02
Wiktymizacja w ostatnich 3 latach (tak vs nie)0.20 [0.02, 0.37]2.17.0300.25a
Postrzegany nieład (1–5)0.25 [0.16, 0.34]5.31< .001.25

a Dla zmiennych 0/1 podano różnicę w odchyleniach standardowych lęku, a nie klasyczne β, które dla zmiennej dychotomicznej trudno zinterpretować.

Mężczyźni deklarowali niższy lęk niż kobiety o 0.31 punktu, a osoby, które były ofiarą przestępstwa, wyższy o 0.20 punktu. Wzrost postrzeganego nieładu o 1 punkt wiązał się z lękiem wyższym o 0.25 punktu. Wiek nie wiązał się z lękiem po uwzględnieniu pozostałych zmiennych. To badanie przekrojowe, więc pisz o związkach, a nie o przyczynach: lęk może skłaniać ludzi do zauważania nieładu, a nie tylko odwrotnie. Krok po kroku – z diagnostyką reszt i współliniowością – regresję opisujemy w poradniku regresja wieloraka krok po kroku.

Lęk przed przestępczością mierzono czterema pozycjami o obawie przed konkretnymi zdarzeniami (1–5; α = .80; M = 2.79, SD = 0.77). Lęk korelował umiarkowanie z szacowanym ryzykiem wiktymizacji, r = .35. W regresji wielorakiej (N = 400) predyktory wyjaśniały 10.7% wariancji lęku, R² = .107, skorygowane R² = .098, F(4, 395) = 11.86, p < .001. Niższy lęk deklarowali mężczyźni niż kobiety, b = −0.31, 95% CI [−0.45, −0.16], p < .001, a wyższy osoby z doświadczeniem wiktymizacji w ostatnich trzech latach, b = 0.20, 95% CI [0.02, 0.37], p = .030, i osoby postrzegające większy nieład w okolicy, b = 0.25, 95% CI [0.16, 0.34], β = .25, p < .001. Wiek nie był istotnym predyktorem, b = 0.001, p = .711.

Projekt 3. Ile razy? Wiktymizacja w internecie jako dane zliczeniowe

Pytania typu „Ile razy w ciągu ostatnich 12 miesięcy…” dają zliczenia: liczby całkowite od zera w górę. W kryminologii to bardzo częsty typ danych – liczba zdarzeń wiktymizacji, liczba deklarowanych wykroczeń, liczba interwencji. Zliczenia mają zwykle wiele zer i długi prawy ogon, więc ani test t, ani zwykła regresja liniowa nie są dla nich właściwe. Gardner i in. (1995) opisują problemy wynikające z analizowania liczebności zwykłą regresją liniową i pokazują, że regresja Poissona myli, gdy dane są nadmiernie rozproszone.

Przykład pochodzi z teorii rutynowych aktywności. Cohen i Felson (1979) wyjaśniali przestępstwa nie cechami sprawców, lecz okolicznościami: do zdarzenia dochodzi, gdy w tym samym czasie i miejscu spotykają się zmotywowany sprawca, odpowiedni cel i brak skutecznego opiekuna. W internecie „opiekunem” mogą być zabezpieczenia konta, a „ekspozycją” – czas spędzany w sieci i zakupy online. Zbadano 320 studentów. Zmienna zależna to liczba incydentów w ciągu 12 miesięcy (np. przejęcie konta, oszustwo przy zakupie, nękanie w wiadomościach). Predyktory: liczba godzin w internecie dziennie, robienie zakupów online (tak/nie) i liczba stosowanych zabezpieczeń (0–5).

Krok 1. Opis rozkładu

Średnia liczba incydentów wynosiła 0.53, wariancja 1.08, mediana 0, a 69.1% osób (221 z 320) nie zgłosiło żadnego incydentu. Najwyższa wartość to 6. Wariancja dwa razy większa od średniej to pierwszy sygnał, że rozkład Poissona, w którym obie te wartości są równe, nie będzie pasował. W pracy podaj taki opis przed modelem: średnią, wariancję, odsetek zer i tabelę liczebności, a nie samą średnią z odchyleniem standardowym.

Krok 2. Regresja Poissona i nadmierne rozproszenie

Regresja Poissona to punkt wyjścia. Po dopasowaniu modelu policz współczynnik rozproszenia: sumę kwadratów reszt Pearsona podzieloną przez liczbę stopni swobody. Wyszło 1.60, czyli wyraźnie więcej niż 1. Przy nadmiernym rozproszeniu model Poissona daje zbyt małe błędy standardowe, a więc zbyt wąskie przedziały ufności i zbyt małe wartości p.

Krok 3. Regresja ujemna dwumianowa

Regresja ujemna dwumianowa ma dodatkowy parametr, który pozwala, by wariancja była większa od średniej. Test ilorazu wiarygodności zdecydowanie wskazał na ten model, χ²(1) = 41.35, p < .001 (wartość p podzielono przez 2, bo parametr rozproszenia leży na granicy dopuszczalnych wartości). AIC spadło z 639.3 do 599.9, a parametr θ wyniósł 0.82 (SE = 0.22). Berk i MacDonald (2008) przestrzegają jednak przed traktowaniem modelu ujemnego dwumianowego jako automatycznego „rozwiązania” nadmiernego rozproszenia: pokazują, że jest on właściwy tylko przy określonych założeniach, a rozproszenie może wynikać np. z pominiętych predyktorów lub zależności między obserwacjami. Dlatego wybór modelu uzasadnij danymi i teorią, a nie samym testem.

Panel A: obserwowana liczba osób z 0–6 incydentami (221 osób z zerem, 60 z jednym) oraz liczebności przewidywane przez regresję Poissona (198 zer, 87 jedynek) i ujemną dwumianową (221 zer, 61 jedynek). Panel B: ilorazy częstości z 95% CI w obu modelach: godziny w sieci 1.12 [1.03, 1.21] w modelu Poissona i 1.10 [0.99, 1.23] w modelu ujemnym dwumianowym, zakupy online 2.19 i 2.33, zabezpieczenia 0.66 i 0.65; przedziały modelu ujemnego dwumianowego są szersze
Rysunek 2. Liczba incydentów wiktymizacji w internecie: dane i liczebności przewidywane przez dwa modele (A) oraz ilorazy częstości z 95% CI (B). Obliczenia: R (dane symulowane).

Krok 4. Ile zer przewiduje model?

Rysunek 2A pokazuje najprostszą diagnostykę: porównanie obserwowanych liczebności z oczekiwanymi. Model Poissona przewidywał 198.0 osób bez incydentu (obserwowano 221) i 86.7 osób z jednym incydentem (obserwowano 60). Model ujemny dwumianowy przewidywał odpowiednio 221.2 i 60.8, czyli niemal dokładnie tyle, ile było w danych. Gdyby nawet model ujemny dwumianowy wyraźnie zaniżał liczbę zer, rozważ model z nadmiarem zer. Gdyby respondenci byli obserwowani przez różny czas (np. część od 6, a część od 12 miesięcy), dodaj do modelu offset z logarytmem czasu obserwacji. Oba warianty, z kodem i interpretacją, opisujemy w poradniku regresja dla zliczeń krok po kroku.

Krok 5. Interpretacja: ilorazy częstości

Współczynniki modelu dla zliczeń są w skali logarytmu, więc w pracy podaj ich wykładnik – iloraz częstości (IRR, ang. incidence rate ratio). IRR = 2.33 dla zakupów online oznacza, że osoby robiące zakupy w sieci miały średnio 2.33 raza więcej incydentów niż osoby, które ich nie robią, przy tych samych wartościach pozostałych zmiennych. IRR = 0.65 dla zabezpieczeń oznacza, że każde kolejne zabezpieczenie wiązało się z liczbą incydentów mniejszą o około 35%. Przewidywane wartości dobrze to obrazują: student spędzający w sieci 6 godzin dziennie, robiący zakupy online i stosujący 2 zabezpieczenia miał według modelu średnio 0.80 incydentu rocznie, a ten sam student z 5 zabezpieczeniami – 0.22.

Najważniejsza lekcja z rysunku 2B dotyczy godzin w internecie. W modelu Poissona ich związek z liczbą incydentów był istotny, IRR = 1.12, 95% CI [1.03, 1.21], p = .005. W modelu ujemnym dwumianowym oszacowanie było podobne, ale przedział szerszy i obejmował 1, IRR = 1.10, 95% CI [0.99, 1.23], p = .078. Wniosek z błędnego modelu zmienia się więc z „im więcej godzin w sieci, tym więcej incydentów” na „związek nie jest pewny”. Zwykła regresja liniowa na tych samych danych również dała dla godzin p = .047, czyli wniosek zbyt optymistyczny. Opis wyników możesz potem sprawdzić w generatorze opisu wyników APA.

Regresja ujemna dwumianowa liczby incydentów wiktymizacji w internecie: IRR z 95% CI, z i p, w porównaniu z regresją Poissona (n = 320)
PredyktorIRR [95% CI] – ujemna dwumianowazpIRR [95% CI] – Poisson
Godziny w internecie dziennie1.10 [0.99, 1.23]1.76.0781.12 [1.03, 1.21]
Zakupy online (tak vs nie)2.33 [1.49, 3.64]3.71< .0012.19 [1.54, 3.11]
Liczba zabezpieczeń (0–5)0.65 [0.54, 0.79]−4.46< .0010.66 [0.57, 0.76]
Liczba incydentów wiktymizacji w internecie w ciągu 12 miesięcy (N = 320) miała rozkład silnie prawoskośny (M = 0.53, wariancja = 1.08, 69.1% zer). Ze względu na nadmierne rozproszenie w modelu Poissona (współczynnik rozproszenia = 1.60) zastosowano regresję ujemną dwumianową, lepiej dopasowaną według testu ilorazu wiarygodności, χ²(1) = 41.35, p < .001, i AIC (599.9 wobec 639.3). Model trafnie odtwarzał liczbę osób bez incydentu (221.2 przewidywanych wobec 221 obserwowanych). Zakupy online wiązały się z większą liczbą incydentów, IRR = 2.33, 95% CI [1.49, 3.64], p < .001, a każde dodatkowe zabezpieczenie z liczbą mniejszą o około 35%, IRR = 0.65, 95% CI [0.54, 0.79], p < .001. Związek liczby godzin spędzanych w internecie z liczbą incydentów był nieistotny, IRR = 1.10, 95% CI [0.99, 1.23], p = .078.

Projekt 4. Odsetki w grupach: kto zgłasza zdarzenie na policję

Badania wiktymizacyjne pytają nie tylko o to, czy ktoś był ofiarą, ale też czy zgłosił zdarzenie. Odsetek zgłoszeń w różnych grupach zdarzeń to prosty, a bardzo kryminologiczny wynik: pokazuje, które zdarzenia rzadziej trafiają do oficjalnych statystyk. Przykład: 360 studentów, którzy w ostatnim roku doświadczyli jednego z trzech zdarzeń, odpowiedziało, czy je zgłosili.

Odsetek zgłoszeń na policję według rodzaju zdarzenia z 95% przedziałem ufności Wilsona (n = 360)
Rodzaj zdarzeniaZgłoszono / n% zgłoszeń [95% CI]Reszta standaryzowana skorygowana
Kradzież74 / 15049.3 [41.4, 57.3]5.55
Oszustwo w internecie38 / 12031.7 [24.0, 40.4]−0.40
Nękanie w internecie7 / 907.8 [3.8, 15.2]−5.89

Przy każdym odsetku podaj przedział ufności dla proporcji. Przy małych grupach i odsetkach bliskich 0% lub 100% wybierz przedział Wilsona zamiast prostego wzoru Walda, który może dawać nawet ujemne granice. Odsetek zgłoszeń różnił się między rodzajami zdarzeń, χ²(2) = 44.05, p < .001, V Craméra = .35. Najmniejsza liczebność oczekiwana wynosiła 29.8, więc warunek testu był spełniony. Reszty standaryzowane skorygowane pokazują, że wynik „robią” dwie skrajne grupy: kradzieże zgłaszano częściej, a nękanie rzadziej, niż wynikałoby z niezależności. Odczytywanie reszt i tabel większych niż 2 × 2 opisujemy w poradniku test chi-kwadrat krok po kroku.

Gdy hipoteza dotyczy dwóch konkretnych grup, podaj różnicę odsetków w punktach procentowych z przedziałem ufności, a nie tylko wynik testu. Newcombe (1998) porównał jedenaście metod i pokazał, że proste przedziały mają słabe pokrycie, a metoda łącząca przedziały Wilsona dla obu proporcji działa dobrze. Kradzieże zgłaszano częściej niż oszustwa w internecie o 17.7 punktu procentowego, 95% CI [5.9, 28.7]. Szczegóły opisujemy w poradniku jak porównać odsetki w dwóch grupach, a pojedynczą tabelę 2 × 2 możesz policzyć w kalkulatorze tabeli 2 × 2. Pamiętaj, że próba to studenci, którzy sami zgodzili się wziąć udział w badaniu, więc odsetki opisują badaną grupę, a nie wszystkie ofiary takich zdarzeń.

Odsetek zdarzeń zgłoszonych na policję różnił się w zależności od rodzaju zdarzenia, χ²(2) = 44.05, p < .001, V Craméra = .35. Zgłoszono 49.3% kradzieży (74 z 150), 95% CI [41.4, 57.3], 31.7% oszustw w internecie (38 z 120), 95% CI [24.0, 40.4], i 7.8% przypadków nękania w internecie (7 z 90), 95% CI [3.8, 15.2] (przedziały Wilsona). Kradzieże zgłaszano częściej niż oszustwa w internecie, różnica = 17.7 punktu procentowego, 95% CI [5.9, 28.7] (metoda Newcombe'a).

Projekt 5. Pytanie drażliwe: technika randomizowanej odpowiedzi

Gdy pytasz o własne naruszenia przepisów, nawet w anonimowej ankiecie część osób zaprzeczy. Warner (1965) zaproponował technikę randomizowanej odpowiedzi (ang. randomized response technique, RRT). Respondent w ukryciu losuje (np. kostką albo datą urodzenia bliskiej osoby), na które z dwóch stwierdzeń odpowiada: „Zdarzyło mi się w ostatnim roku jechać komunikacją bez ważnego biletu” albo jego zaprzeczenie. Badacz zna tylko prawdopodobieństwo wylosowania pierwszego stwierdzenia (tu P = .75), ale nie wie, na które pytanie odpowiedziała konkretna osoba. Odpowiedź „tak” niczego więc o niej nie zdradza, a odsetek w grupie można oszacować ze wzoru Warnera.

Przykład: w symulacji prawdziwy odsetek osób jeżdżących bez biletu wynosił 30%, ale przy pytaniu wprost 40% z nich zaprzeczało. W grupie pytanej wprost (n = 300) oszacowanie wyniosło 16.7%, 95% CI [12.4, 20.9]. W grupie z techniką Warnera (n = 300) „tak” odpowiedziało 39.0% osób, co po przeliczeniu daje 28.0%, 95% CI [17.0, 39.0]. RRT jest więc bliższe prawdzie, ale ma swoją cenę: błąd standardowy był 2.62 raza większy niż przy pytaniu wprost, a uzyskanie takiej samej precyzji wymagałoby około 6.9 raza większej próby. Różnica między metodami nie osiągnęła istotności, z = 1.88, p = .060, mimo że w symulacji wiemy, że pytanie wprost zaniża wynik.

Lensvelt-Mulders i in. (2005) w metaanalizie badań walidacyjnych i porównawczych wykazali, że techniki randomizowanej odpowiedzi dają trafniejsze dane niż zwykłe pytania, tym bardziej, im bardziej drażliwy temat. Zauważyli jednak, że wyniki różnią się między badaniami w sposób niewyjaśniony, więc technika nie jest w pełni pod kontrolą badacza. W praktyce dla pracy dyplomowej oznacza to trzy rzeczy: instrukcję trzeba przetestować w pilotażu (respondent musi zrozumieć, że jest chroniony), próbę zaplanować większą niż przy zwykłym pytaniu, a wynik raportować z przedziałem ufności i podanym P.

Odsetek osób jadących w ostatnim roku komunikacją bez ważnego biletu oszacowano dwiema metodami w losowo wydzielonych grupach po 300 osób. Przy pytaniu bezpośrednim wyniósł on 16.7%, 95% CI [12.4, 20.9]. W technice randomizowanej odpowiedzi Warnera (prawdopodobieństwo wylosowania stwierdzenia P = .75) odpowiedź „tak” wybrało 39.0% osób, co odpowiada oszacowanemu odsetkowi 28.0%, 95% CI [17.0, 39.0]. Różnica między metodami była nieistotna, z = 1.88, p = .060. Błąd standardowy oszacowania RRT był 2.62 raza większy niż przy pytaniu bezpośrednim.

Anonimizacja: kto jest jedyny w swojej komórce

Usunięcie imienia i nazwiska nie czyni danych anonimowymi. Jeśli w bazie jest jedna 26-letnia kobieta z czwartego roku pochodząca z małego miasta, każdy, kto ją zna, rozpozna jej odpowiedzi o wiktymizacji. Sweeney (2002) zaproponowała model k-anonimowości: zbiór jest k-anonimowy, jeśli informacji o żadnej osobie nie da się odróżnić od informacji o co najmniej k − 1 innych osobach. Cechy, które razem mogą zidentyfikować osobę (wiek, płeć, rok studiów, miejscowość), nazywa się quasi-identyfikatorami.

W symulowanej bazie 320 respondentów 29.4% osób było jedynych w swojej kombinacji czterech cech (wiek w latach, płeć, rok studiów, wielkość miejscowości pochodzenia). Po zastąpieniu wieku trzema przedziałami odsetek ten spadł do 5.0%, a po usunięciu miejscowości – do 1.2%. Odsetek osób w grupach mniejszych niż 5 spadł z 94.4% do 4.4%. Ten prosty rachunek warto wykonać przed udostępnieniem danych promotorowi, recenzentowi albo w repozytorium. Pojęcia i techniki porządkuje hasło anonimizacja i pseudonimizacja danych. W tabelach do pracy nie pokazuj też krzyżowań, w których pojedyncza komórka odpowiada jednej, rozpoznawalnej osobie.

Jak opisać analizę statystyczną w pracy z kryminologii

Rozdział o metodach powinien pozwolić innej osobie powtórzyć badanie. W kryminologii opisz dodatkowo tryb zbierania danych i sposób zapewnienia anonimowości, bo od nich zależy wiarygodność odpowiedzi na pytania drażliwe. Poniżej wzór akapitu dla projektów 1, 3 i 4.

Analizy wykonano w programie R. Zmienne opisano liczebnościami i odsetkami, a zliczenia także średnią, wariancją i odsetkiem zer. Przy odsetkach podano 95% przedziały ufności Wilsona, a różnice dwóch odsetków oszacowano z przedziałem Newcombe'a. Związek rodzaju zdarzenia ze zgłoszeniem na policję oceniono testem chi-kwadrat z V Craméra i resztami standaryzowanymi skorygowanymi. Rekomendowaną reakcję w eksperymencie winietowym analizowano regresją porządkową (model proporcjonalnych szans), sprawdzając interakcję czynników testem ilorazu wiarygodności i założenie proporcjonalnych szans testem efektów nominalnych. Liczbę incydentów wiktymizacji analizowano regresją ujemną dwumianową, wybraną po stwierdzeniu nadmiernego rozproszenia w modelu Poissona; wyniki podano jako ilorazy częstości (IRR) z 95% CI. Przyjęto poziom istotności α = .05. Ankieta była anonimowa, a przed analizą sprawdzono ryzyko identyfikacji na podstawie kombinacji cech metryczkowych.

Jeśli potrzebujesz pomocy w doborze analiz albo w odpowiedzi na uwagi promotora, możesz skonsultować je ze statystykiem w ramach oferty analizy statystyczne dla studentów. Wyniki musisz jednak rozumieć i umieć obronić samodzielnie.

Przykład reprodukowalny

Przykład w R: zliczenia i pozostałe projekty

Kod odtwarza wszystkie liczby z tego wpisu. Najważniejszy jest przepis 1 z pełną analizą zliczeń: od opisu rozkładu, przez model Poissona i ujemny dwumianowy, po liczebności przewidywane i ilorazy częstości. Przepis 2 zawiera pozostałe projekty, a przepis 3 – rysunki. Każdy przepis tworzy własne dane symulowane. Modele ujemne dwumianowe liczy pakiet MASS, a regresję porządkową – pakiet ordinal.

1. Projekt 3: liczba incydentów – Poisson, nadmierne rozproszenie, regresja ujemna dwumianowa i IRR

Dane wejściowe: 320 studentów, liczba incydentów w 12 miesięcy, godziny w internecie, zakupy online, liczba zabezpieczeń (dane symulowane, set.seed(22501)); pakiet MASS.

Co odczytać: średnią, wariancję i odsetek zer, współczynnik rozproszenia, test ilorazu wiarygodności i AIC, IRR z 95% CI w obu modelach, liczebności obserwowane i oczekiwane, wynik błędnej regresji liniowej i przewidywania dla trzech profili.

R
# Projekt 3: liczba incydentów wiktymizacji w internecie w ostatnich 12 miesiącach (dane symulowane).
# 320 studentów; zmienne: godziny w internecie dziennie, zakupy online (tak/nie),
# liczba stosowanych zabezpieczeń (0–5: m.in. weryfikacja dwuetapowa, menedżer haseł, aktualizacje).
suppressPackageStartupMessages(library(MASS))
set.seed(22501)
n <- 320
godziny <- round(pmin(12, pmax(1, rgamma(n, shape = 5, rate = 1.2))), 1)
zakupy <- factor(rbinom(n, 1, .62), levels = 0:1, labels = c("nie", "tak"))
zabezp <- pmin(5, rbinom(n, 5, .45))
mu <- exp(-1.05 + 0.13 * godziny + 0.45 * (zakupy == "tak") - 0.22 * zabezp)
incydenty <- rnbinom(n, mu = mu, size = 0.9)
p3 <- data.frame(id = 1:n, godziny, zakupy, zabezp, incydenty)

# Krok 1. Opis rozkładu: średnia, wariancja, odsetek zer, maksimum
round(c(M = mean(p3$incydenty), Wariancja = var(p3$incydenty), Me = median(p3$incydenty),
        Zera_proc = 100 * mean(p3$incydenty == 0), Max = max(p3$incydenty)), 2)
table(p3$incydenty)

# Krok 2. Regresja Poissona i współczynnik rozproszenia (Pearson χ² / df)
m_pois <- glm(incydenty ~ godziny + zakupy + zabezp, family = poisson, data = p3)
disp <- sum(residuals(m_pois, type = "pearson")^2) / df.residual(m_pois)
round(disp, 2)

# Krok 3. Regresja ujemna dwumianowa i test ilorazu wiarygodności (Poisson to NB z θ → ∞;
# wartość p dzielimy przez 2, bo parametr leży na granicy przestrzeni parametrów)
m_nb <- glm.nb(incydenty ~ godziny + zakupy + zabezp, data = p3)
lr <- as.numeric(2 * (logLik(m_nb) - logLik(m_pois)))
signif(c(LR = lr, p = pchisq(lr, df = 1, lower.tail = FALSE) / 2, theta = m_nb$theta, SE_theta = m_nb$SE.theta,
        AIC_Poisson = AIC(m_pois), AIC_NB = AIC(m_nb)), 4)

# Krok 4. Ilorazy częstości (IRR) z 95% CI (Wald) w obu modelach
irr <- function(m) { b <- coef(m)[-1]; se <- sqrt(diag(vcov(m)))[-1]
  data.frame(IRR = round(exp(b), 3), CI_d = round(exp(b - 1.96 * se), 3), CI_g = round(exp(b + 1.96 * se), 3),
             z = round(b / se, 2), p = signif(2 * pnorm(-abs(b / se)), 3)) }
cat("Poisson:\n"); print(irr(m_pois))
cat("Ujemna dwumianowa:\n"); print(irr(m_nb))

# Krok 5. Ile zer przewiduje każdy model? (obserwowane vs oczekiwane liczebności 0, 1, 2, ...)
k <- 0:8
obs <- sapply(k, function(i) sum(p3$incydenty == i))
exp_pois <- sapply(k, function(i) sum(dpois(i, fitted(m_pois))))
exp_nb <- sapply(k, function(i) sum(dnbinom(i, mu = fitted(m_nb), size = m_nb$theta)))
round(data.frame(k, obserwowane = obs, Poisson = exp_pois, NB = exp_nb), 1)

# Krok 6. Częsty błąd: regresja liniowa na zliczeniach (porównaj znaki i wnioski, nie wartości)
summary(lm(incydenty ~ godziny + zakupy + zabezp, data = p3))$coefficients |> round(4)

# Krok 7. Przewidywana liczba incydentów (NB) dla typowych profili
nowe <- data.frame(godziny = c(3, 6, 6), zakupy = factor(c("nie", "tak", "tak"), levels = c("nie", "tak")), zabezp = c(2, 2, 5))
cbind(nowe, przewidywana = round(predict(m_nb, nowe, type = "response"), 2))
Wynik w R
        M Wariancja        Me Zera_proc       Max 
     0.53      1.08      0.00     69.06      6.00 

  0   1   2   3   4   5   6 
221  60  26   5   1   4   3 
[1] 1.6
         LR           p       theta    SE_theta AIC_Poisson      AIC_NB 
  4.135e+01   6.349e-11   8.217e-01   2.191e-01   6.393e+02   5.999e+02 
Poisson:
            IRR  CI_d  CI_g     z        p
godziny   1.119 1.034 1.210  2.80 5.13e-03
zakupytak 2.190 1.540 3.114  4.36 1.29e-05
zabezp    0.657 0.568 0.760 -5.66 1.50e-08
Ujemna dwumianowa:
            IRR  CI_d  CI_g     z        p
godziny   1.104 0.989 1.232  1.76 7.77e-02
zakupytak 2.328 1.490 3.636  3.71 2.04e-04
zabezp    0.650 0.538 0.785 -4.46 8.23e-06
  k obserwowane Poisson    NB
1 0         221   198.0 221.2
2 1          60    86.7  60.8
3 2          26    26.3  21.4
4 3           5     6.9   8.7
5 4           1     1.6   3.9
6 5           4     0.4   1.9
7 6           3     0.1   1.0
8 7           0     0.0   0.5
9 8           0     0.0   0.3
            Estimate Std. Error t value Pr(>|t|)
(Intercept)   0.5047     0.1918  2.6310   0.0089
godziny       0.0622     0.0312  1.9939   0.0470
zakupytak     0.3736     0.1135  3.2903   0.0011
zabezp       -0.2081     0.0495 -4.2007   0.0000
  godziny zakupy zabezp przewidywana
1       3    nie      2         0.26
2       6    tak      2         0.80
3       6    tak      5         0.22

2. Projekty 1, 2, 4 i 5 oraz ryzyko identyfikacji

Dane wejściowe: winieta 2 × 2 (240 osób, set.seed(22562)), sondaż lęku (400 osób, set.seed(22503)), zgłoszenia (360 osób, set.seed(22504)), pytanie drażliwe (2 × 300 osób, set.seed(22505)) i baza do kontroli anonimizacji (320 osób, set.seed(22506)); pakiety ordinal, psych i DescTools.

Co odczytać: rozkłady odpowiedzi, test interakcji, OR z 95% CI i test efektów nominalnych; α, korelację lęku z ryzykiem i tabelę regresji; odsetki z CI Wilsona, χ², V Craméra, reszty i różnicę Newcombe'a; oszacowania wprost i Warnera; odsetki osób jedynych w swojej kombinacji cech.

R
# Projekty 1, 2, 4 i 5 oraz kontrola ryzyka identyfikacji (dane symulowane).
suppressPackageStartupMessages({ library(ordinal); library(psych); library(DescTools) })

## Projekt 1. Eksperyment winietowy: postawy wobec kary --------------------------------------
# 240 osób losowo przydzielonych do 4 wersji opisu kradzieży roweru (2 × 2):
# uprzednia karalność sprawcy (nie/tak) × wartość szkody (niska/wysoka).
# Odpowiedź: rekomendowana reakcja w 5 kategoriach uporządkowanych od najłagodniejszej.
set.seed(22562)
n1 <- 240
p1 <- data.frame(karalnosc = factor(rep(c("nie", "tak"), each = n1 / 2)),
                 szkoda = factor(rep(rep(c("niska", "wysoka"), each = n1 / 4), 2), levels = c("niska", "wysoka")))
eta <- 1.10 * (p1$karalnosc == "tak") + 0.55 * (p1$szkoda == "wysoka") + 0.15 * (p1$karalnosc == "tak") * (p1$szkoda == "wysoka")
progi <- c(-1.3, -0.1, 1.2, 2.6)
lat <- eta + rlogis(n1)
kat <- c("mediacja i naprawienie szkody", "grzywna", "ograniczenie wolności", "pozbawienie wolności w zawieszeniu", "bezwzględne pozbawienie wolności")
p1$reakcja <- factor(kat[findInterval(lat, progi) + 1], levels = kat, ordered = TRUE)
p1$reakcja_num <- as.integer(p1$reakcja)
# Rozkład odpowiedzi (%) w czterech wersjach winiety
round(100 * prop.table(table(interaction(p1$karalnosc, p1$szkoda, sep = "/"), p1$reakcja), 1), 1)
aggregate(reakcja_num ~ karalnosc + szkoda, p1, function(x) c(Me = median(x), M = mean(x)))
# Regresja porządkowa (proporcjonalne szanse): model z interakcją i bez niej
m1i <- clm(reakcja ~ karalnosc * szkoda, data = p1)
m1 <- clm(reakcja ~ karalnosc + szkoda, data = p1)
anova(m1, m1i)                                   # test interakcji (LR)
b1 <- coef(m1)[c("karalnosctak", "szkodawysoka")]; ci1 <- confint(m1)
round(cbind(OR = exp(b1), exp(ci1[c("karalnosctak", "szkodawysoka"), ])), 2)
summary(m1)$coefficients[c("karalnosctak", "szkodawysoka"), ] |> signif(4)
nominal_test(m1)                                 # założenie proporcjonalnych szans
# Odsetek wskazań kary pozbawienia wolności (kategorie 4–5) w czterech wersjach
round(100 * tapply(p1$reakcja_num >= 4, list(p1$karalnosc, p1$szkoda), mean), 1)

## Projekt 2. Lęk przed przestępczością w sondażu mieszkańców ---------------------------------
# 400 osób; lęk: średnia 4 pozycji (1–5) o obawie przed konkretnymi zdarzeniami;
# predyktory: płeć, wiek, wiktymizacja w ostatnich 3 latach, postrzegany nieład w okolicy (1–5);
# osobno szacowane ryzyko (1–5) – inny konstrukt niż lęk.
set.seed(22503)
n2 <- 400
plec <- factor(sample(c("kobieta", "mężczyzna"), n2, TRUE, prob = c(.54, .46)))
wiek <- round(runif(n2, 18, 80))
wiktym <- factor(rbinom(n2, 1, .22), levels = 0:1, labels = c("nie", "tak"))
nielad <- round(pmin(5, pmax(1, rnorm(n2, 2.6, 0.8))), 1)
lek_lat <- 0.45 * (plec == "kobieta") + 0.004 * (wiek - 45) + 0.35 * (wiktym == "tak") + 0.40 * (nielad - 2.6) + rnorm(n2, 0, 0.85)
pozycje <- sapply(c(.75, .80, .70, .78), function(l) pmin(5, pmax(1, round(2.6 + l * lek_lat + rnorm(n2, 0, .65)))))
colnames(pozycje) <- paste0("lek", 1:4)
p2 <- data.frame(plec, wiek, wiktym, nielad, pozycje)
p2$lek <- rowMeans(pozycje)
p2$ryzyko <- pmin(5, pmax(1, round(2.7 + 0.45 * scale(lek_lat)[, 1] + 0.25 * (nielad - 2.6) + rnorm(n2, 0, .9))))
round(psych::alpha(pozycje)$total$raw_alpha, 2)
round(c(M = mean(p2$lek), SD = sd(p2$lek), r_lek_ryzyko = cor(p2$lek, p2$ryzyko)), 2)
m2 <- lm(lek ~ plec + wiek + wiktym + nielad, data = p2)
s2 <- summary(m2)
p2s <- p2; p2s[c("lek", "wiek", "nielad")] <- lapply(p2s[c("lek", "wiek", "nielad")], function(x) scale(x)[, 1])
beta <- coef(lm(lek ~ plec + wiek + wiktym + nielad, data = p2s))       # β dla zmiennych ciągłych; dla 0/1 – różnica w SD lęku
cbind(round(cbind(b = coef(m2), confint(m2), t = s2$coefficients[, 3]), 3), p = signif(s2$coefficients[, 4], 3), beta = round(beta, 2))
round(c(R2 = s2$r.squared, R2_adj = s2$adj.r.squared, F = unname(s2$fstatistic[1])), 3); s2$fstatistic[2:3]
signif(pf(s2$fstatistic[1], s2$fstatistic[2], s2$fstatistic[3], lower.tail = FALSE), 3)

## Projekt 4. Odsetek zgłoszeń na policję według rodzaju zdarzenia -----------------------------
# Studenci, którzy doświadczyli zdarzenia w ostatnim roku; zgłoszenie (tak/nie).
set.seed(22504)
typ <- factor(rep(c("kradzież", "oszustwo w internecie", "nękanie w internecie"), c(150, 120, 90)),
              levels = c("kradzież", "oszustwo w internecie", "nękanie w internecie"))
zgl <- rbinom(length(typ), 1, c(.48, .25, .12)[as.integer(typ)])
tab4 <- table(typ, zgloszenie = factor(zgl, 0:1, c("nie", "tak"))); tab4
t(sapply(levels(typ), function(g) { x <- sum(zgl[typ == g]); n <- sum(typ == g)
  ci <- prop.test(x, n, correct = FALSE)$conf.int; round(c(x = x, n = n, proc = 100 * x / n, CI_d = 100 * ci[1], CI_g = 100 * ci[2]), 1) }))
ch4 <- chisq.test(tab4); ch4; round(min(ch4$expected), 1)
round(CramerV(tab4), 2); round(ch4$stdres[, "tak"], 2)
# Różnica: kradzież − oszustwo w internecie (punkty procentowe), 95% CI Newcombe'a (hybrid score)
x1 <- sum(zgl[typ == "kradzież"]); x2 <- sum(zgl[typ == "oszustwo w internecie"])
round(100 * BinomDiffCI(x1, 150, x2, 120, method = "score"), 1)

## Projekt 5. Pytanie drażliwe: pytanie wprost a technika randomizowanej odpowiedzi (Warner) ---
# Zachowanie: przejazd komunikacją bez ważnego biletu w ostatnim roku; prawdziwy odsetek w symulacji 30%.
# Pytanie wprost: część osób zaprzecza (zaniżanie). Warner: z prawdopodobieństwem P = .75 respondent
# odpowiada na stwierdzenie „Zdarzyło mi się…”, a z 1 − P na jego zaprzeczenie; ankieter nie wie, które wylosował.
set.seed(22505)
n5 <- 300; P <- .75; pi_true <- .30
cecha_a <- rbinom(n5, 1, pi_true)
wprost <- ifelse(cecha_a == 1, rbinom(n5, 1, .60), 0)           # 40% osób z cechą zaprzecza
cecha_b <- rbinom(n5, 1, pi_true)
los <- rbinom(n5, 1, P)
rrt <- ifelse(los == 1, cecha_b, 1 - cecha_b)                    # odpowiedź „tak” na wylosowane stwierdzenie
p_w <- mean(wprost); se_w <- sqrt(p_w * (1 - p_w) / n5)
lam <- mean(rrt); pi_hat <- (lam - (1 - P)) / (2 * P - 1); se_r <- sqrt(lam * (1 - lam) / (n5 * (2 * P - 1)^2))
round(100 * rbind(wprost = c(est = p_w, CI_d = p_w - 1.96 * se_w, CI_g = p_w + 1.96 * se_w, SE = se_w),
                  Warner = c(est = pi_hat, CI_d = pi_hat - 1.96 * se_r, CI_g = pi_hat + 1.96 * se_r, SE = se_r)), 1)
round(c(odsetek_tak_RRT = 100 * lam, wzrost_SE = se_r / se_w, mnoznik_n = (se_r / se_w)^2, z_roznicy = (pi_hat - p_w) / sqrt(se_r^2 + se_w^2),
        p = 2 * pnorm(-abs((pi_hat - p_w) / sqrt(se_r^2 + se_w^2)))), 3)

## Ryzyko identyfikacji: ile osób jest jedynych w swojej kombinacji cech? -----------------------
# 320 respondentów; quasi-identyfikatory: wiek w latach, płeć, rok studiów, miejscowość pochodzenia (4 kategorie).
set.seed(22506)
q <- data.frame(wiek = pmin(35, 19 + rpois(320, 3)), plec = sample(c("K", "M"), 320, TRUE),
                rok = sample(1:5, 320, TRUE), miejsce = sample(c("wieś", "do 50 tys.", "50–200 tys.", "> 200 tys."), 320, TRUE))
unikat <- function(d) { k <- ave(rep(1, nrow(d)), do.call(paste, d), FUN = length); c(k1_proc = 100 * mean(k == 1), k_lt5_proc = 100 * mean(k < 5)) }
q2 <- q; q2$wiek <- cut(q$wiek, c(18, 21, 24, Inf), labels = c("19–21", "22–24", "25+"))
q3 <- q2[c("wiek", "plec", "rok")]
round(rbind(surowe = unikat(q), wiek_w_przedzialach = unikat(q2), bez_miejscowosci = unikat(q3)), 1)
Wynik w R
            
             mediacja i naprawienie szkody grzywna ograniczenie wolności pozbawienie wolności w zawieszeniu
  nie/niska                           20.0    35.0                  30.0                               11.7
  tak/niska                            6.7    18.3                  33.3                               25.0
  nie/wysoka                          16.7    18.3                  30.0                               26.7
  tak/wysoka                           5.0     6.7                  21.7                               38.3
            
             bezwzględne pozbawienie wolności
  nie/niska                               3.3
  tak/niska                              16.7
  nie/wysoka                              8.3
  tak/wysoka                             28.3
  karalnosc szkoda reakcja_num.Me reakcja_num.M
1       nie  niska       2.000000      2.433333
2       tak  niska       3.000000      3.266667
3       nie wysoka       3.000000      2.916667
4       tak wysoka       4.000000      3.783333
Likelihood ratio tests of cumulative link models:
 
    formula:                     link: threshold:
m1  reakcja ~ karalnosc + szkoda logit flexible  
m1i reakcja ~ karalnosc * szkoda logit flexible  

    no.par    AIC  logLik LR.stat df Pr(>Chisq)
m1       6 716.84 -352.42                      
m1i      7 718.76 -352.38  0.0757  1     0.7832
               OR 2.5 % 97.5 %
karalnosctak 3.81  2.37   6.19
szkodawysoka 2.31  1.45   3.70
             Estimate Std. Error z value Pr(>|z|)
karalnosctak   1.3380     0.2442   5.478 4.29e-08
szkodawysoka   0.8381     0.2378   3.524 4.25e-04
Tests of nominal effects

formula: reakcja ~ karalnosc + szkoda
          Df  logLik    AIC LRT Pr(>Chi)
<none>       -352.42 716.84             
karalnosc                               
szkoda                                  
    niska wysoka
nie  15.0   35.0
tak  41.7   66.7
[1] 0.8
           M           SD r_lek_ryzyko 
        2.79         0.77         0.35 
                   b  2.5 % 97.5 %      t        p  beta
(Intercept)    2.223  1.895  2.550 13.344 8.63e-34  0.14
plecmężczyzna -0.305 -0.449 -0.161 -4.165 3.82e-05 -0.40
wiek           0.001 -0.003  0.005  0.371 7.11e-01  0.02
wiktymtak      0.195  0.019  0.372  2.172 3.04e-02  0.25
nielad         0.250  0.157  0.343  5.308 1.85e-07  0.25
    R2 R2_adj      F 
 0.107  0.098 11.859 
numdf dendf 
    4   395 
   value 
4.15e-09 
                       zgloszenie
typ                     nie tak
  kradzież               76  74
  oszustwo w internecie  82  38
  nękanie w internecie   83   7
                       x   n proc CI_d CI_g
kradzież              74 150 49.3 41.4 57.3
oszustwo w internecie 38 120 31.7 24.0 40.4
nękanie w internecie   7  90  7.8  3.8 15.2

	Pearson's Chi-squared test

data:  tab4
X-squared = 44.053, df = 2, p-value = 2.717e-10

[1] 29.8
[1] 0.35
             kradzież oszustwo w internecie  nękanie w internecie 
                 5.55                 -0.40                 -5.89 
      est lwr.ci upr.ci
[1,] 17.7    5.9   28.7
        est CI_d CI_g  SE
wprost 16.7 12.4 20.9 2.2
Warner 28.0 17.0 39.0 5.6
odsetek_tak_RRT       wzrost_SE       mnoznik_n       z_roznicy               p 
         39.000           2.618           6.852           1.880           0.060 
                    k1_proc k_lt5_proc
surowe                 29.4       94.4
wiek_w_przedzialach     5.0       47.5
bez_miejscowosci        1.2        4.4

3. Rysunki

Dane wejściowe: wyniki przepisów 1 i 2 (pliki w tym samym folderze, wczytywane przez source()); pakiety ggplot2, patchwork i svglite.

Co odczytać: wartości użyte na rysunkach i wymiary zapisanych plików SVG.

R
# Rysunki do wpisu (uruchom z folderu kod/): LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 Rscript b225-rysunki.R > b225-rysunki-wynik.txt
suppressPackageStartupMessages({ library(ggplot2); library(patchwork); library(svglite) })
KOLORY <- c(akcent = "#e50101", drugi = "#1f78b4", dane = "grey55", granat = "#0f1d3a")
theme_metodolog <- function(base_size = 13) {
  theme_minimal(base_size = base_size) +
    theme(plot.title = element_text(face = "bold", colour = KOLORY[["granat"]], size = rel(1.05), margin = margin(b = 6)),
          plot.subtitle = element_text(colour = "grey30", margin = margin(b = 8)),
          panel.grid.minor = element_blank(), panel.grid.major = element_line(colour = "grey88", linewidth = 0.4),
          axis.title = element_text(colour = "grey20"), axis.text = element_text(colour = "grey25"),
          legend.position = "bottom", plot.background = element_rect(fill = "white", colour = NA),
          plot.margin = margin(10, 14, 10, 10))
}
zapisz_svg <- function(wykres, plik, szer = 10, wys = 5.6) {
  svglite::svglite(plik, width = szer, height = wys, bg = "white"); print(wykres); invisible(grDevices::dev.off())
  cat(sprintf("Zapisano %s: w HTML width=\"%d\" height=\"%d\" (%d KB)\n", plik, round(szer * 100), round(wys * 100), round(file.info(plik)$size / 1024)))
}
pdf(NULL)
invisible(capture.output({ for (f in c("b225-1-wiktymizacja-zliczenia.R", "b225-2-pozostale-projekty.R")) source(f) }))

# Rysunek 1: zliczenia – obserwowane i oczekiwane liczebności (A) oraz IRR w dwóch modelach (B)
kk <- 0:6
d1 <- data.frame(k = kk, obserwowane = sapply(kk, function(i) sum(p3$incydenty == i)),
                 Poisson = sapply(kk, function(i) sum(dpois(i, fitted(m_pois)))),
                 NB = sapply(kk, function(i) sum(dnbinom(i, mu = fitted(m_nb), size = m_nb$theta))))
print(round(d1, 1), row.names = FALSE)
dl <- rbind(data.frame(k = d1$k, model = "regresja Poissona", ocz = d1$Poisson),
            data.frame(k = d1$k, model = "regresja ujemna dwumianowa", ocz = d1$NB))
rA <- ggplot(d1, aes(k, obserwowane)) + geom_col(fill = "grey80", colour = "grey60", width = .7) +
  geom_line(data = dl, aes(k, ocz, colour = model), linewidth = .9) + geom_point(data = dl, aes(k, ocz, colour = model), size = 2.6) +
  scale_colour_manual(values = c("regresja Poissona" = KOLORY[["drugi"]], "regresja ujemna dwumianowa" = KOLORY[["akcent"]]), name = NULL) +
  scale_x_continuous(breaks = kk) +
  labs(title = "A. Liczba incydentów: dane i modele", subtitle = "Słupki: dane (n = 320); punkty: liczebności z modelu",
       x = "Liczba incydentów w ciągu 12 miesięcy", y = "Liczba osób") + theme_metodolog(12)
ir <- rbind(cbind(model = "regresja Poissona", irr(m_pois), zm = rownames(irr(m_pois))),
            cbind(model = "regresja ujemna dwumianowa", irr(m_nb), zm = rownames(irr(m_nb))))
ir$zm <- factor(ir$zm, levels = c("zabezp", "zakupytak", "godziny"),
                labels = c("Zabezpieczenia\n(+1 z 5)", "Zakupy online\n(tak vs nie)", "Godziny w sieci\n(+1 h dziennie)"))
print(ir[, c("model", "zm", "IRR", "CI_d", "CI_g", "p")], row.names = FALSE)
pos <- position_dodge(width = .5)
rB <- ggplot(ir, aes(IRR, zm, colour = model)) + geom_vline(xintercept = 1, colour = "grey45", linetype = 2) +
  geom_errorbar(aes(xmin = CI_d, xmax = CI_g), width = .18, orientation = "y", linewidth = .9, position = pos) + geom_point(size = 3, position = pos) +
  scale_x_log10(breaks = c(.5, .75, 1, 1.5, 2, 3, 4)) +
  scale_colour_manual(values = c("regresja Poissona" = KOLORY[["drugi"]], "regresja ujemna dwumianowa" = KOLORY[["akcent"]]), name = NULL, guide = "none") +
  labs(title = "B. Ilorazy częstości (IRR) z 95% CI", subtitle = "Te same predyktory, skala logarytmiczna",
       x = "IRR (1 = brak związku)", y = NULL) + theme_metodolog(12)
zapisz_svg(rA + rB + plot_layout(widths = c(1, 1.1), guides = "collect") & theme(legend.position = "bottom"), "../statystyka-kryminologia-zliczenia-poisson-nb.svg", szer = 11, wys = 5.6)

# Rysunek 2: eksperyment winietowy – rozkład rekomendowanej reakcji w czterech wersjach opisu
d2 <- as.data.frame(prop.table(table(wersja = interaction(p1$karalnosc, p1$szkoda, sep = "/"), reakcja = p1$reakcja), 1))
d2$wersja <- factor(d2$wersja, levels = c("nie/niska", "nie/wysoka", "tak/niska", "tak/wysoka"),
                    labels = c("niekarany, niska szkoda", "niekarany, wysoka szkoda", "karany wcześniej, niska szkoda", "karany wcześniej, wysoka szkoda"))
d2$proc <- 100 * d2$Freq
print(reshape(d2[, c("wersja", "reakcja", "proc")], idvar = "wersja", timevar = "reakcja", direction = "wide"), digits = 3, row.names = FALSE)
pal <- c("#c6dbef", "#9ecae1", "#6baed6", "#fc9272", "#e50101")
r2 <- ggplot(d2, aes(proc, wersja, fill = reakcja)) + geom_col(width = .65, colour = "white", position = position_stack(reverse = TRUE)) +
  geom_text(aes(label = ifelse(proc >= 6, sprintf("%.0f%%", proc), "")), position = position_stack(vjust = .5, reverse = TRUE), size = 3.5, colour = ifelse(d2$reakcja == "bezwzględne pozbawienie wolności", "white", "grey10")) +
  scale_fill_manual(values = pal, name = NULL) + scale_y_discrete(limits = rev) +
  labs(title = "Rekomendowana reakcja na kradzież roweru w czterech wersjach winiety",
       subtitle = "Odsetek odpowiedzi; 60 osób w każdej wersji (n = 240)", x = "Odsetek odpowiedzi", y = NULL) +
  theme_metodolog(12) + guides(fill = guide_legend(nrow = 2, byrow = TRUE))
zapisz_svg(r2, "../statystyka-kryminologia-winieta-kara.svg", szer = 10, wys = 5.2)
Wynik w R
 k obserwowane Poisson    NB
 0         221   198.0 221.2
 1          60    86.7  60.8
 2          26    26.3  21.4
 3           5     6.9   8.7
 4           1     1.6   3.9
 5           4     0.4   1.9
 6           3     0.1   1.0
                      model                               zm   IRR  CI_d  CI_g        p
          regresja Poissona Godziny w sieci\n(+1 h dziennie) 1.119 1.034 1.210 5.13e-03
          regresja Poissona      Zakupy online\n(tak vs nie) 2.190 1.540 3.114 1.29e-05
          regresja Poissona         Zabezpieczenia\n(+1 z 5) 0.657 0.568 0.760 1.50e-08
 regresja ujemna dwumianowa Godziny w sieci\n(+1 h dziennie) 1.104 0.989 1.232 7.77e-02
 regresja ujemna dwumianowa      Zakupy online\n(tak vs nie) 2.328 1.490 3.636 2.04e-04
 regresja ujemna dwumianowa         Zabezpieczenia\n(+1 z 5) 0.650 0.538 0.785 8.23e-06
Zapisano ../statystyka-kryminologia-zliczenia-poisson-nb.svg: w HTML width="1100" height="560" (17 KB)
                          wersja proc.mediacja i naprawienie szkody proc.grzywna proc.ograniczenie wolności
         niekarany, niska szkoda                              20.00        35.00                       30.0
  karany wcześniej, niska szkoda                               6.67        18.33                       33.3
        niekarany, wysoka szkoda                              16.67        18.33                       30.0
 karany wcześniej, wysoka szkoda                               5.00         6.67                       21.7
 proc.pozbawienie wolności w zawieszeniu proc.bezwzględne pozbawienie wolności
                                    11.7                                  3.33
                                    25.0                                 16.67
                                    26.7                                  8.33
                                    38.3                                 28.33
Zapisano ../statystyka-kryminologia-winieta-kara.svg: w HTML width="1000" height="520" (13 KB)

Bibliografia oprogramowania

Wyniki na tej stronie pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (funkcje glm(), lm(), chisq.test() i prop.test() z pakietu stats); rysunki przygotowano w pakietach ggplot2 i patchwork. W pracy podaj wersje faktycznie użytych pakietów (sessionInfo()).

  1. R: R Core Team. (2026). R: A language and environment for statistical computing (Version 4.5.3) [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/
  2. MASS (wersja 7.3-65): Venables, W. N., & Ripley, B. D. (2002). Modern applied statistics with S (4th ed.). Springer. https://doi.org/10.1007/978-0-387-21706-2
  3. ordinal (wersja 2026.7-26): Christensen, R. H. B. (2026). ordinal: Regression models for ordinal data (R package version 2026.7-26) [Computer software]. https://CRAN.R-project.org/package=ordinal
  4. psych (wersja 2.6.5): Revelle, W. (2026). psych: Procedures for psychological, psychometric, and personality research (R package version 2.6.5) [Computer software]. Northwestern University. https://CRAN.R-project.org/package=psych
  5. DescTools (wersja 0.99.60): Signorell, A. (2025). DescTools: Tools for descriptive statistics (R package version 0.99.60) [Computer software]. https://doi.org/10.32614/CRAN.package.DescTools
  6. ggplot2 (wersja 4.0.2): Wickham, H. (2016). ggplot2: Elegant graphics for data analysis. Springer. https://ggplot2.tidyverse.org
  7. patchwork (wersja 1.3.2): Pedersen, T. L. (2025). patchwork: The composer of plots (R package version 1.3.2) [Computer software]. https://doi.org/10.32614/CRAN.package.patchwork
  8. svglite (wersja 2.2.2): Wickham, H., Henry, L., Pedersen, T. L., Luciani, T. J., Decorde, M., & Lise, V. (2025). svglite: An 'SVG' graphics device (R package version 2.2.2) [Computer software]. https://doi.org/10.32614/CRAN.package.svglite

Najczęstsze błędy w analizach prac z kryminologii

  • Zliczenia analizowane testem t albo regresją liniową. Przy wielu zerach i długim ogonie wnioski bywają zbyt optymistyczne – w przykładzie liniowa regresja dała dla godzin w sieci p = .047, a model ujemny dwumianowy p = .078.
  • Regresja Poissona bez sprawdzenia nadmiernego rozproszenia i bez porównania przewidywanej liczby zer z obserwowaną.
  • Model ujemny dwumianowy traktowany jako automatyczne lekarstwo, bez zastanowienia, czy rozproszenie nie wynika z pominiętych zmiennych lub różnego czasu obserwacji (wtedy offset).
  • Surowe współczynniki logarytmiczne zamiast IRR albo IRR opisany jako różnica w liczbie zdarzeń, a nie krotność.
  • Średnia z kodów 1–5 dla rekomendowanej kary zamiast regresji porządkowej, bez sprawdzenia interakcji w planie czynnikowym.
  • Szacowane ryzyko nazwane „lękiem przed przestępczością” albo jedno ogólne pytanie o bezpieczeństwo po zmroku jako jedyna miara lęku.
  • Wnioski przyczynowe z badania przekrojowego, np. „nieład powoduje lęk”.
  • Odsetki bez przedziałów ufności i uogólnianie wyników ankiety rozesłanej wśród znajomych na „wszystkie ofiary”.
  • Dane o przestępczości we wstępie bez źródła albo bez rozróżnienia przestępstw zarejestrowanych i deklarowanych.
  • Baza „zanonimizowana” przez usunięcie nazwisk, w której prawie co trzecia osoba jest jedyna w swojej kombinacji wieku, płci, roku i miejscowości.

Najczęstsze pytania

Jakie analizy statystyczne wybrać do pracy magisterskiej z kryminologii?

Zależy to od typu zmiennej zależnej. Odpowiedź porządkową (np. rekomendowaną karę) analizuj regresją porządkową, wynik skali (np. lęku przed przestępczością) regresją wieloraką, liczbę zdarzeń regresją ujemną dwumianową albo Poissona, a odsetki w grupach testem chi-kwadrat z przedziałami ufności Wilsona. Przy każdej analizie podaj wielkość efektu: OR, IRR, b z 95% CI albo V Craméra.

Czy liczbę przestępstw albo zdarzeń wiktymizacji można analizować testem t?

Zwykle nie. Zliczenia mają wiele zer i długi prawy ogon, a ich wariancja rośnie ze średnią. Test t i regresja liniowa mogą wtedy dawać zbyt małe wartości p. Użyj regresji Poissona, sprawdź nadmierne rozproszenie i w razie potrzeby przejdź do regresji ujemnej dwumianowej. Wyniki podaj jako ilorazy częstości (IRR) z 95% CI.

Jak zmierzyć lęk przed przestępczością w ankiecie?

Zapytaj osobno o obawę przed konkretnymi zdarzeniami (np. kradzieżą, napadem, włamaniem) i osobno o szacowane ryzyko, że się wydarzą. Ogólne pytanie o poczucie bezpieczeństwa po zmroku miesza emocję z oceną sytuacji, a lęk i szacowane ryzyko korelują tylko umiarkowanie, więc nie traktuj ich zamiennie. Sprawdź rzetelność skali i opisz jej pozycje w rozdziale metodologicznym.

Jak pytać o drażliwe zachowania, żeby respondenci nie kłamali?

Zapewnij pełną anonimowość, wybierz ankietę bez ankietera i formułuj pytania bez oceniania. Przy bardzo drażliwych zachowaniach możesz użyć techniki randomizowanej odpowiedzi, w której respondent losuje, na które stwierdzenie odpowiada. Daje ona trafniejsze oszacowania, ale ma większy błąd standardowy, więc wymaga większej próby i dobrze przetestowanej instrukcji.

Czy usunięcie imion i nazwisk wystarczy, aby dane z badania były anonimowe?

Nie. Osobę można rozpoznać po kombinacji cech, takich jak wiek, płeć, rok studiów i miejscowość. Przed udostępnieniem danych sprawdź, ile osób jest jedynych w swojej kombinacji cech, zastąp dokładny wiek przedziałami i usuń zbędne zmienne. W tabelach nie pokazuj komórek, które odpowiadają pojedynczym, rozpoznawalnym osobom.

Powiązane hasła

Przeczytaj też

Piszesz pracę z kryminologii i nie wiesz, jak policzyć wyniki?

Pomożemy dobrać analizy do Twoich danych – winiety, skali lęku, zliczeń albo odsetków – policzyć je z wielkością efektu i wyjaśnić tak, abyś umiał samodzielnie je opisać i obronić.

Oferta dla studentówWyceń analizę

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Atzmüller, C., & Steiner, P. M. (2010). Experimental vignette studies in survey research. Methodology, 6(3), 128–138. https://doi.org/10.1027/1614-2241/a000014
  2. Berk, R., & MacDonald, J. M. (2008). Overdispersion and Poisson regression. Journal of Quantitative Criminology, 24(3), 269–284. https://doi.org/10.1007/s10940-008-9048-4
  3. Cohen, L. E., & Felson, M. (1979). Social change and crime rate trends: A routine activity approach. American Sociological Review, 44(4), 588–608. https://doi.org/10.2307/2094589
  4. Ferraro, K. F., & LaGrange, R. L. (1987). The measurement of fear of crime. Sociological Inquiry, 57(1), 70–97. https://doi.org/10.1111/j.1475-682x.1987.tb01181.x
  5. Gardner, W., Mulvey, E. P., & Shaw, E. C. (1995). Regression analyses of counts and rates: Poisson, overdispersed Poisson, and negative binomial models. Psychological Bulletin, 118(3), 392–404. https://doi.org/10.1037/0033-2909.118.3.392
  6. Lensvelt-Mulders, G. J. L. M., Hox, J. J., van der Heijden, P. G. M., & Maas, C. J. M. (2005). Meta-analysis of randomized response research: Thirty-five years of validation. Sociological Methods & Research, 33(3), 319–348. https://doi.org/10.1177/0049124104268664 ● Otwarty dostęp: pełny tekst
  7. Newcombe, R. G. (1998). Interval estimation for the difference between independent proportions: Comparison of eleven methods. Statistics in Medicine, 17(8), 873–890. https://doi.org/10.1002/(sici)1097-0258(19980430)17:8<873::aid-sim779>3.0.co;2-i
  8. Sweeney, L. (2002). k-Anonymity: A model for protecting privacy. International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems, 10(05), 557–570. https://doi.org/10.1142/s0218488502001648 ● Otwarty dostęp: pełny tekst
  9. Tourangeau, R., & Yan, T. (2007). Sensitive questions in surveys. Psychological Bulletin, 133(5), 859–883. https://doi.org/10.1037/0033-2909.133.5.859
  10. Warner, S. L. (1965). Randomized response: A survey technique for eliminating evasive answer bias. Journal of the American Statistical Association, 60(309), 63–69. https://doi.org/10.1080/01621459.1965.10480775

Cytowania BibTeX

@article{atzmuller2010experimental, author={Atzmüller, Christiane and Steiner, Peter M.}, title={{Experimental vignette studies in survey research}}, journal={Methodology}, year={2010}, volume={6}, number={3}, pages={128--138}, doi={10.1027/1614-2241/a000014}}
@article{berk2008overdispersion, author={Berk, Richard and MacDonald, John M.}, title={{Overdispersion and Poisson regression}}, journal={Journal of Quantitative Criminology}, year={2008}, volume={24}, number={3}, pages={269--284}, doi={10.1007/s10940-008-9048-4}}
@article{cohen1979social, author={Cohen, Lawrence E. and Felson, Marcus}, title={{Social change and crime rate trends: A routine activity approach}}, journal={American Sociological Review}, year={1979}, volume={44}, number={4}, pages={588--608}, doi={10.2307/2094589}}
@article{ferraro1987measurement, author={Ferraro, Kenneth F. and LaGrange, Randy L.}, title={{The measurement of fear of crime}}, journal={Sociological Inquiry}, year={1987}, volume={57}, number={1}, pages={70--97}, doi={10.1111/j.1475-682x.1987.tb01181.x}}
@article{gardner1995regression, author={Gardner, William and Mulvey, Edward P. and Shaw, Esther C.}, title={{Regression analyses of counts and rates: Poisson, overdispersed Poisson, and negative binomial models}}, journal={Psychological Bulletin}, year={1995}, volume={118}, number={3}, pages={392--404}, doi={10.1037/0033-2909.118.3.392}}
@article{lensveltmulders2005meta, author={Lensvelt-Mulders, Gerty J. L. M. and Hox, Joop J. and van der Heijden, Peter G. M. and Maas, Cora J. M.}, title={{Meta-analysis of randomized response research: Thirty-five years of validation}}, journal={Sociological Methods \& Research}, year={2005}, volume={33}, number={3}, pages={319--348}, doi={10.1177/0049124104268664}}
@article{newcombe1998interval, author={Newcombe, Robert G.}, title={{Interval estimation for the difference between independent proportions: Comparison of eleven methods}}, journal={Statistics in Medicine}, year={1998}, volume={17}, number={8}, pages={873--890}, doi={10.1002/(sici)1097-0258(19980430)17:8<873::aid-sim779>3.0.co;2-i}}
@article{sweeney2002k, author={Sweeney, Latanya}, title={{k-Anonymity: A model for protecting privacy}}, journal={International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems}, year={2002}, volume={10}, number={05}, pages={557--570}, doi={10.1142/s0218488502001648}}
@article{tourangeau2007sensitive, author={Tourangeau, Roger and Yan, Ting}, title={{Sensitive questions in surveys}}, journal={Psychological Bulletin}, year={2007}, volume={133}, number={5}, pages={859--883}, doi={10.1037/0033-2909.133.5.859}}
@article{warner1965randomized, author={Warner, Stanley L.}, title={{Randomized response: A survey technique for eliminating evasive answer bias}}, journal={Journal of the American Statistical Association}, year={1965}, volume={60}, number={309}, pages={63--69}, doi={10.1080/01621459.1965.10480775}}
R