Prace dyplomowe · Bezpieczeństwo narodowe

Statystyka w pracy z bezpieczeństwa narodowego: ankiety, zaufanie do służb, grupy zawodowe i dokumenty

Jak przeanalizować ankietę o poczuciu bezpieczeństwa mieszkańców, oceny zaufania do służb, porównanie grup zawodowych, tabelę krzyżową i kodowanie dokumentów: wybór testu, wielkość efektu i gotowe zdania APA – na danych do pobrania, z kodem R.

Strona główna / Blog / Statystyka w bezpieczeństwie narodowym
W skrócie: W pracy z bezpieczeństwa narodowego najczęściej analizujesz ankietę o poczuciu bezpieczeństwa, oceny zaufania do kilku służb, porównanie grup zawodowych, tabele krzyżowe albo kodowanie dokumentów. Oceny tej samej osoby (np. „w dzień” i „po zmroku” albo zaufanie do czterech służb) analizuj testami dla pomiarów zależnych: Wilcoxona dla par i Friedmana. Najpierw zdefiniuj, co mierzysz – poczucie bezpieczeństwa, lęk przed przestępczością i ocena ryzyka to różne pojęcia – i opisz, jak dobrano próbę, bo od tego zależy, czy wolno uogólniać wyniki.

Pięć typowych projektów w pracy z bezpieczeństwa narodowego

Prace dyplomowe z bezpieczeństwa narodowego rzadko są eksperymentami. Najczęściej to ankieta wśród mieszkańców, studentów albo funkcjonariuszy, czasem porównanie kilku grup zawodowych, a coraz częściej także analiza dokumentów i danych urzędowych. Każdy z tych rodzajów materiału wymaga innych analiz. Najwięcej błędów pojawia się w dwóch miejscach: gdy ta sama osoba odpowiada na kilka podobnych pytań (np. ocenia kilka służb), a wynik analizuje się jak dane z niezależnych grup, oraz gdy z niewielkiej ankiety internetowej wyciąga się wnioski o „Polakach”. Tabela porządkuje pięć projektów omówionych w tym poradniku.

Pięć typowych projektów prac z bezpieczeństwa narodowego: pytanie, zmienne, analiza i wielkość efektu
ProjektTypowe pytanieZmienneAnaliza głównaWielkość efektu
1. Poczucie bezpieczeństwa mieszkańcówOd czego zależy poczucie bezpieczeństwa w okolicy zamieszkania?skala 6 pozycji 1–5, ocena zaniedbania okolicy, zaufanie do policji, płeć, wiektest Wilcoxona dla par, test t Welcha, regresja liniowakorelacja rangowo-biseryjna, g Hedgesa, β, R²
2. Zaufanie do służbKtórym służbom mieszkańcy ufają najbardziej?cztery oceny 1–5 od tej samej osobytest Friedmana, porównania par z korektą HolmaW Kendalla
3. Grupy zawodoweCzy policjanci, strażacy, żołnierze i urzędnicy różnie oceniają przygotowanie do kryzysu?skala 8 pozycji 1–5, cztery grupytest Kruskala–Wallisa i test Dunnaε² rangowe
4. Tabela krzyżowaCzy gospodarstwa z dziećmi częściej mają zapas wody i żywności?dwie zmienne tak/nieχ² dla tabeli 2 × 2, regresja logistycznaOR z 95% CI, φ
5. Dokumenty i statystykiJak kompletne są lokalne dokumenty dotyczące bezpieczeństwa?8 elementów kodowanych 0/1 przez dwie osobykappa Cohena, test Manna–Whitneyaκ z 95% CI, korelacja rangowo-biseryjna

Wszystkie dane w przykładach są symulowane i nie opisują żadnej prawdziwej miejscowości ani formacji. Możesz je pobrać jako plik XLSX (osobny arkusz dla każdego projektu i arkusz z opisem) i powtórzyć analizy w swoim programie. Jeśli nie wiesz jeszcze, który test pasuje do Twojego pytania, przejdź przez kreator doboru testu statystycznego, a cały proces – od hipotez do rozdziału wyników – opisuje przewodnik po statystyce w pracy dyplomowej. Pokrewne projekty o przestępczości i karze omawiamy we wpisie statystyka w pracy z kryminologii, a sondaże, ważenie i postawy – we wpisie statystyka w pracy z socjologii.

Zanim zaczniesz: pojęcie, próba i anonimowość

Najpierw zdefiniuj, co mierzysz. „Poczucie bezpieczeństwa”, „lęk przed przestępczością” i „ocena ryzyka stania się ofiarą” brzmią podobnie, ale to różne pojęcia. Ferraro i LaGrange (1987) przejrzeli sposoby ich pomiaru i pokazali, że ogólne miary lęku i miary postrzeganego ryzyka korelują tylko umiarkowanie, a mimo to wiele badań mierzyło ryzyko i wnioskowało o lęku. Farrall i in. (1997) poszli dalej: obraz lęku przed przestępczością w dużej mierze zależy od tego, jak zadaje się pytania. W praktyce oznacza to trzy rzeczy. Pytaj o konkretne sytuacje („idąc sam(a) po zmroku po swojej okolicy”), a nie o ogólne „czy czujesz się bezpiecznie”. Używaj kilku pozycji, a nie jednej. W rozdziale teoretycznym wyjaśnij, którą definicję przyjmujesz.

Opisz, skąd jest próba. Ankieta rozesłana w mediach społecznościowych, na grupach mieszkańców albo wśród znajomych to dobór wygodny lub metoda kuli śnieżnej. Bethlehem (2010) pokazuje, że niedopokrycie i samoselekcja respondentów obciążają oszacowania z ankiet internetowych, a samoselekcji nie da się w pełni naprawić ważeniem. Na tematy bezpieczeństwa chętniej odpowiadają osoby, które się nim interesują albo mają za sobą złe doświadczenia. Odsetki opisuj więc jako cechę badanej próby, a nie mieszkańców miasta, a związki między zmiennymi – ostrożnie.

Pytania drażliwe i odpowiedzi „właściwe”. Pytania o doświadczenie przestępstwa, ocenę przełożonych czy zaufanie do własnej formacji są drażliwe. Tourangeau i Yan (2007) w przeglądzie badań pokazują, że błędne odpowiedzi na takie pytania są częste i zależą od sytuacji badania, np. od obawy przed konsekwencjami. To zjawisko opisuje hasło aprobata społeczna. Ankieta wśród funkcjonariuszy rozdana przez przełożonego da inne wyniki niż anonimowa ankieta internetowa. Opisz sposób zbierania danych w rozdziale metodologicznym i uwzględnij go w ograniczeniach.

Anonimowość w małych jednostkach. W badaniu jednej komendy, jednostki wojskowej czy wydziału urzędu kilka zmiennych metryczkowych (stopień, staż, komórka, płeć) potrafi wskazać konkretną osobę. Zbieraj tylko to, czego potrzebujesz do analiz, łącz rzadkie kategorie i nie pokazuj wyników dla grup kilkuosobowych. Zasady przygotowania danych opisuje hasło anonimizacja i pseudonimizacja danych. Zgody instytucji, opinię komisji etyki i regulamin uczelni sprawdź u promotora przed rozpoczęciem badania. Nie podajemy tu konkretnych wymogów, bo różnią się między uczelniami i instytucjami.

Projekt 1. Ankieta poczucia bezpieczeństwa mieszkańców

Przykład: 320 dorosłych mieszkańców jednego miasta (49.4% kobiet, wiek M = 47.55, SD = 15.57) wypełniło ankietę. Poczucie bezpieczeństwa zmierzono sześcioma autorskimi pozycjami od 1 („zdecydowanie niebezpiecznie”) do 5 („zdecydowanie bezpiecznie”): w domu, w okolicy w dzień, w okolicy po zmroku, w komunikacji publicznej, w centrum miasta i w miejscowości ogólnie. Dodatkowo respondenci ocenili zaniedbanie okolicy (trzy pozycje: oświetlenie, śmieci, pustostany), zaufanie do czterech służb i odpowiedzieli, czy w ostatnich trzech latach doświadczyli przestępstwa (tak: 13.4%). To jest pełny przykład tego wpisu – kod w R odtwarza go od początku do końca.

Rzetelność i wynik skali

Zanim połączysz pozycje w jeden wynik, sprawdź, czy mierzą to samo. Alfa Cronbacha wyniosła .91, a omega McDonalda (ωt) również .91. Dunn i in. (2014) zalecają podawać omegę obok alfy, bo alfa opiera się na mocnych założeniach, które rzadko są spełnione. Skala zaniedbania okolicy miała α = .83. Wynik skali poczucia bezpieczeństwa policzono jako średnią z sześciu pozycji: M = 3.28, SD = 0.80.

Sullivan i Artino (2013) przypominają, że pojedynczą pozycję skali Likerta traktuje się jak zmienną porządkową i opisuje medianą oraz rozkładem odpowiedzi, a wynik z wielu pozycji można analizować testami parametrycznymi, jeśli połączenie pozycji uzasadniają dowody rzetelności lub struktury. Dlatego w tym projekcie pojedyncze pozycje porównujemy testem rangowym, a wynik całej skali – testem t i regresją.

W dzień i po zmroku: dwie odpowiedzi tej samej osoby

Typowe pytanie w pracy: czy poczucie bezpieczeństwa spada po zmroku? Każdy respondent odpowiedział na obie pozycje, więc dane są zależne. Właściwy jest test Wilcoxona dla par, a nie test dla dwóch niezależnych grup. W dzień bezpiecznie (odpowiedź 4 lub 5) czuło się 57.5% badanych, a po zmroku 19.7%. Mediana spadła z 4 do 3. Po zmroku niżej oceniło swoje bezpieczeństwo 68.1% osób, wyżej – 3.8%, a pozostali odpowiedzieli tak samo. Test Wilcoxona: V = 1118, p < .001. Wielkość efektu to korelacja rangowo-biseryjna dla par: rrb = −.92, 95% CI [−.93, −.89].

Tak duża wartość nie znaczy, że „po zmroku jest dwa razy groźniej”. Korelacja rangowo-biseryjna mówi, że wśród osób, których odpowiedzi się różnią, prawie wszystkie zmiany idą w jedną stronę. Osoby z identyczną odpowiedzią (remisy) test pomija, dlatego obok efektu podaj odsetki, jak wyżej. Rysunek 1 pokazuje cały rozkład odpowiedzi.

Skumulowane słupki rozkładu odpowiedzi 1–5 na pytania o poczucie bezpieczeństwa w okolicy w dzień i po zmroku, osobno dla mężczyzn (n = 162) i kobiet (n = 158); odsetek odpowiedzi 4 i 5 w dzień 64.2% u mężczyzn i 50.6% u kobiet, po zmroku 22.2% i 17.1%
Rysunek 1. Rozkład odpowiedzi na pytania o poczucie bezpieczeństwa w okolicy w dzień i po zmroku według płci. Czerwona liczba to odsetek odpowiedzi 4 i 5. Obliczenia: R (dane symulowane).

Kobiety i mężczyźni: test t Welcha

Wynik skali (średnia z sześciu pozycji) porównano między płciami testem t Welcha. Delacre i in. (2017) zalecają go jako domyślny, bo lepiej kontroluje błąd I rodzaju przy nierównych wariancjach i niewiele traci, gdy wariancje są równe. Mężczyźni (n = 162) mieli wynik M = 3.39 (SD = 0.80), a kobiety (n = 158) M = 3.18 (SD = 0.78), t(318) = 2.43, p = .016, różnica 95% CI [0.04, 0.39], g Hedgesa = 0.27, 95% CI [0.05, 0.49]. To mała różnica. W pracy opisz ją jako różnicę w badanej próbie, a nie jako cechę płci.

Regresja: co wiąże się z poczuciem bezpieczeństwa

Pytanie „od czego zależy poczucie bezpieczeństwa” wymaga uwzględnienia kilku zmiennych naraz. W regresji liniowej zmienną zależną był wynik skali, a predyktorami: zaniedbanie okolicy, zaufanie do policji, płeć, wiek i doświadczenie przestępstwa. Model wyjaśnił 28% zmienności, R² = .28, skorygowane R² = .27, F(5, 314) = 24.14, p < .001. Współczynniki VIF nie przekraczały 1.02, więc współliniowość nie była problemem.

Regresja liniowa poczucia bezpieczeństwa mieszkańców: współczynniki niestandaryzowane z 95% CI, współczynniki standaryzowane, t i p (N = 320)
Predyktorb [95% CI]βt(314)p
Zaniedbanie okolicy (1–5)−0.34 [−0.43, −0.26]−0.40−8.33< .001
Zaufanie do policji (1–5)0.21 [0.13, 0.28]0.265.45< .001
Kobieta (vs mężczyzna)−0.20 [−0.35, −0.05]−0.25−2.57.011
Wiek (lata)−0.002 [−0.006, 0.003]−0.03−0.62.535
Doświadczenie przestępstwa (tak vs nie)−0.39 [−0.61, −0.17]−0.49−3.45< .001

Dla zmiennych 0/1 kolumna β pokazuje różnicę w jednostkach odchylenia standardowego zmiennej zależnej, bo standaryzowanie zmiennej zero-jedynkowej nie ma sensu. Rysunek 2 zestawia te współczynniki. Najsilniej z niższym poczuciem bezpieczeństwa wiązały się zaniedbanie okolicy i doświadczenie przestępstwa, a z wyższym – zaufanie do policji. Wiek nie miał związku po uwzględnieniu pozostałych zmiennych. Pamiętaj, że to badanie przekrojowe: związek zaufania do policji z poczuciem bezpieczeństwa może działać w obie strony. Pisz „wiązało się”, a nie „wpływało”. Kolejne kroki modelu i diagnostykę reszt opisujemy w poradniku regresja wieloraka krok po kroku.

Współczynniki standaryzowane z 95% CI z regresji poczucia bezpieczeństwa (N = 320, R² = .28): zaniedbanie okolicy −0.40 [−0.50, −0.31], zaufanie do policji 0.26 [0.17, 0.36], kobieta −0.25 [−0.44, −0.06], wiek −0.03 [−0.12, 0.06] nieistotny, doświadczenie przestępstwa −0.49 [−0.77, −0.21]
Rysunek 2. Regresja liniowa poczucia bezpieczeństwa: współczynniki standaryzowane z 95% CI. Dla zmiennych 0/1 – różnica w odchyleniach standardowych zmiennej zależnej. Obliczenia: R (dane symulowane).
Skala poczucia bezpieczeństwa (6 pozycji, 1–5) miała wysoką rzetelność, α = .91, ωt = .91 (M = 3.28, SD = 0.80). Odsetek osób czujących się bezpiecznie w okolicy wynosił 57.5% w dzień i 19.7% po zmroku; po zmroku niżej oceniło swoje bezpieczeństwo 68.1% badanych, test Wilcoxona dla par: V = 1118, p < .001, korelacja rangowo-biseryjna rrb = −.92, 95% CI [−.93, −.89]. Mężczyźni (M = 3.39, SD = 0.80) mieli nieco wyższy wynik niż kobiety (M = 3.18, SD = 0.78), t(318) = 2.43, p = .016, g Hedgesa = 0.27, 95% CI [0.05, 0.49]. W regresji liniowej (R² = .28, F(5, 314) = 24.14, p < .001) niższe poczucie bezpieczeństwa wiązało się z wyższą oceną zaniedbania okolicy, b = −0.34, 95% CI [−0.43, −0.26], β = −0.40, p < .001, i z doświadczeniem przestępstwa, b = −0.39, 95% CI [−0.61, −0.17], p < .001, a wyższe – z zaufaniem do policji, b = 0.21, 95% CI [0.13, 0.28], β = 0.26, p < .001. Wiek nie wiązał się z wynikiem, p = .535.

Projekt 2. Zaufanie do służb: cztery oceny tej samej osoby

Te same 320 osób oceniło od 1 („zdecydowanie nie ufam”) do 5 („zdecydowanie ufam”) policję, straż pożarną, wojsko i straż miejską. To częsty temat prac o postawach wobec służb i instytucji bezpieczeństwa. Błąd polega na tym, że cztery kolumny ocen porównuje się testem Kruskala–Wallisa albo ANOVA dla grup niezależnych. Tymczasem każda osoba oceniła wszystkie służby, a ktoś, kto ogólnie ufa instytucjom, wystawi wyższe oceny wszystkim. Te oceny są zależne.

Właściwy jest test Friedmana, który porównuje rangi ocen w obrębie każdej osoby. Najwyżej oceniono straż pożarną (Me = 4, ufa jej 84.1% badanych), potem wojsko (Me = 4, 68.1%), policję (Me = 3, 45.9%) i straż miejską (Me = 3, 33.8%). Test Friedmana: χ²(3) = 320.37, p < .001. Jako wielkość efektu podaj W Kendalla: W = .33, czyli umiarkowaną zgodność badanych co do kolejności służb.

Wynik testu Friedmana mówi tylko, że gdzieś są różnice. Aby wskazać które, wykonaj porównania par testem Wilcoxona dla par z korektą na wielokrotne porównania. Pereira i in. (2015) w przeglądzie procedur post hoc po teście Friedmana pokazują, że różnią się one wyraźnie liberalnością, więc wybór procedury opisz w metodzie. W przykładzie wszystkie sześć porównań było istotnych po korekcie Holma (wszystkie p < .001). Przy 320 osobach nawet niewielka różnica bywa istotna, dlatego interpretuj odsetki i mediany, a nie same gwiazdki. Średnie ocen (od 3.05 dla straży miejskiej do 4.22 dla straży pożarnej) możesz podać pomocniczo. Gdy chcesz wyjaśnić zaufanie do jednej służby cechami respondentów, sięgnij po regresję porządkową.

Zaufanie do czterech służb różniło się istotnie, test Friedmana: χ²(3) = 320.37, p < .001, W Kendalla = .33 (N = 320). Najwięcej osób ufało straży pożarnej (84.1% odpowiedzi „raczej ufam” lub „zdecydowanie ufam”, Me = 4), następnie wojsku (68.1%, Me = 4), policji (45.9%, Me = 3) i straży miejskiej (33.8%, Me = 3). Wszystkie porównania par testem Wilcoxona z korektą Holma były istotne, p < .001.

Projekt 3. Porównanie grup zawodowych

Przykład: 132 osoby z czterech grup zawodowych – policjanci (n = 38), strażacy (n = 34), żołnierze (n = 31) i pracownicy administracji zajmujący się zarządzaniem kryzysowym (n = 29) – oceniły przygotowanie swojej jednostki do działań w sytuacji kryzysowej w ośmiu autorskich pozycjach 1–5 (α = .90). Takie badanie zwykle powstaje przez dobór celowy lub kulę śnieżną: ankieta trafia do znajomych funkcjonariuszy, a ci przekazują ją dalej. Grupy są więc małe i nierówne, a wyników nie wolno uogólniać na całe formacje.

Rozkład wyniku był lewoskośny (skośność −0.75), a 15.9% osób wybrało najwyższą odpowiedź we wszystkich pozycjach. To typowy efekt sufitu w samoocenie własnej jednostki. Przy takim rozkładzie i małych grupach bezpieczniejszy jest test Kruskala–Wallisa. Mediany wyniosły: policja 4.50 (Q1–Q3: 4.12–4.75), straż pożarna 4.69 (4.25–4.88), wojsko 4.50 (4.06–4.88), administracja 3.88 (3.38–4.50). Test Kruskala–Wallisa: H(3) = 15.26, p = .002. Wielkość efektu to rangowe epsilon-kwadrat: ε²R = .12.

Porównania par wykonano testem Dunna z korektą Holma. Pracownicy administracji oceniali przygotowanie niżej niż strażacy (p < .001), żołnierze (p = .033) i policjanci (p = .039). Między trzema formacjami mundurowymi różnice nie były istotne (p od .508 do .788). Uważaj na interpretację: to ocena własnej jednostki, a nie jej rzeczywiste przygotowanie. Niższa ocena urzędników może wynikać z innej wiedzy o procedurach, innej kultury organizacyjnej albo z większej szczerości w anonimowej ankiecie. Odpowiednik parametryczny i wielkości efektu dla testów rangowych opisujemy w poradniku testy nieparametryczne krok po kroku.

Ocena przygotowania własnej jednostki do działań w sytuacji kryzysowej (8 pozycji, 1–5; α = .90) różniła się między grupami zawodowymi, test Kruskala–Wallisa: H(3) = 15.26, p = .002, ε²R = .12. Pracownicy administracji zajmujący się zarządzaniem kryzysowym (n = 29, Me = 3.88, Q1–Q3: 3.38–4.50) oceniali przygotowanie niżej niż strażacy (n = 34, Me = 4.69, Q1–Q3: 4.25–4.88; p < .001), żołnierze (n = 31, Me = 4.50, Q1–Q3: 4.06–4.88; p = .033) i policjanci (n = 38, Me = 4.50, Q1–Q3: 4.12–4.75; p = .039); test Dunna z korektą Holma. Różnice między formacjami mundurowymi nie były istotne.

Projekt 4. Tabela krzyżowa: przygotowanie gospodarstw domowych

W pracach o bezpieczeństwie powszechnym i obronie cywilnej często pyta się o przygotowanie mieszkańców na sytuacje kryzysowe: zapasy, wiedzę o ewakuacji, źródła informacji. Przykład: czy gospodarstwa z dziećmi częściej mają zapas wody i żywności na co najmniej trzy dni? Obie zmienne mają dwie kategorie, więc powstaje tabela krzyżowa 2 × 2. Zapas miało 37.0% gospodarstw z dziećmi (44 z 119) i 23.9% gospodarstw bez dzieci (48 z 201).

Test chi-kwadrat niezależności: χ²(1) = 6.26, p = .012. Najmniejsza liczebność oczekiwana wynosiła 34.2, więc warunek testu był spełniony; test dokładny Fishera dał p = .015. W tabeli 2 × 2 najbardziej czytelną miarą efektu jest iloraz szans: OR = 1.87, 95% CI [1.14, 3.06]. Współczynnik φ wyniósł .13. Te same wyniki – χ², test Fishera, OR i RR – policzysz w kalkulatorze tabeli 2 × 2, wpisując cztery liczebności.

Gospodarstwa z dziećmi mogą różnić się wiekiem respondentów, a wiek może wiązać się z gromadzeniem zapasów. Aby sprawdzić związek z kontrolą wieku, użyj regresji logistycznej. Iloraz szans dla dzieci w gospodarstwie wyniósł wtedy 1.95, 95% CI [1.18, 3.22], p = .009, a dla wieku (na każde 10 lat) 1.13, 95% CI [0.96, 1.32], p = .146. Interpretację ilorazów szans i założenia modelu opisujemy w poradniku regresja logistyczna krok po kroku.

Zapas wody i żywności na co najmniej trzy dni deklarowało 37.0% gospodarstw z dziećmi (44 z 119) i 23.9% gospodarstw bez dzieci (48 z 201), χ²(1) = 6.26, p = .012, φ = .13, OR = 1.87, 95% CI [1.14, 3.06]. Związek utrzymał się po kontroli wieku respondenta w regresji logistycznej, OR = 1.95, 95% CI [1.18, 3.22], p = .009.

Projekt 5. Analiza dokumentów i danych urzędowych

Część prac z bezpieczeństwa narodowego nie ma ankiety. Materiałem są dokumenty – strategie, programy, plany, raporty – albo statystyki publikowane przez instytucje. Tu też potrzebna jest statystyka, choć prostsza.

Kodowanie dokumentów i zgodność kodujących

Przykład: 40 dokumentów strategicznych samorządów dotyczących bezpieczeństwa (18 z gmin miejskich i 22 z gmin wiejskich lub miejsko-wiejskich) zakodowano według klucza ośmiu elementów: diagnoza oparta na danych, mierzalne cele, wskaźniki, harmonogram, budżet, partnerzy, monitorowanie i konsultacje społeczne. Każdy element oznaczano jako obecny (1) albo nieobecny (0). Najczęściej dokumenty wymieniały partnerów (85.0%) i zawierały diagnozę (75.0%), najrzadziej – wskaźniki (27.5%) i budżet (22.5%).

Klucz kategorii jest narzędziem pomiaru, więc trzeba pokazać, że daje powtarzalne wyniki. Druga osoba niezależnie zakodowała te same dokumenty. Lombard i in. (2002) w przeglądzie badań z analizą treści stwierdzili, że autorzy często nie raportują zgodności kodujących albo podają tylko odsetek zgodności, który jest zbyt liberalnym wskaźnikiem. Policz więc kappę Cohena dla każdej kategorii. W przykładzie κ wynosiła od .49 (wskaźniki, 75.0% zgodnych decyzji, 95% CI [.24, .74]) do .93 (budżet). Niska zgodność przy wskaźnikach oznacza, że definicja tej kategorii jest niejasna: doprecyzuj ją w kluczu, uzgodnij rozbieżności i opisz tę procedurę.

Z ośmiu elementów powstał indeks kompletności 0–8. W gminach miejskich mediana wyniosła 4.50 (Q1–Q3: 4.00–5.75), a w pozostałych 3.50 (2.25–4.75); test Manna–Whitneya: W = 279, p = .026, korelacja rangowo-biseryjna rrb = .41, 95% CI [.07, .66]. Szeroki przedział to skutek małej liczby dokumentów.

Czterdzieści dokumentów zakodowały niezależnie dwie osoby według klucza ośmiu elementów. Zgodność kodujących wynosiła od κ = .49, 95% CI [.24, .74] (wskaźniki) do κ = .93 (budżet); rozbieżności uzgodniono po doprecyzowaniu definicji kategorii. Indeks kompletności (0–8) był wyższy w dokumentach gmin miejskich (n = 18, Me = 4.50, Q1–Q3: 4.00–5.75) niż gmin wiejskich i miejsko-wiejskich (n = 22, Me = 3.50, Q1–Q3: 2.25–4.75), test Manna–Whitneya: W = 279, p = .026, rrb = .41, 95% CI [.07, .66].

Statystyki urzędowe: co sprawdzić, zanim zaczniesz liczyć

  • Źródło i data. Podaj instytucję, nazwę zestawienia, adres strony i datę odczytu. Liczby z mediów i z prezentacji bez źródła nie nadają się do pracy.
  • Definicje. Sprawdź, co dokładnie zliczono (zdarzenia, postępowania, osoby) i czy definicja nie zmieniła się w analizowanych latach. Zmiana sposobu liczenia może wyglądać jak „wzrost” albo „spadek”.
  • Wskaźnik na liczbę mieszkańców. Porównując jednostki o różnej wielkości, przelicz liczby na 10 000 albo 100 000 mieszkańców, a mianownik weź z tego samego roku.
  • Poziom wnioskowania. Dane dla gmin czy powiatów opisują jednostki, a nie ludzi. Od klasycznego artykułu Robinsona (1950) o korelacjach ekologicznych, czyli liczonych na danych dla obszarów, pochodzi pojęcie błędu ekologicznego: związek widoczny między obszarami nie musi występować między osobami. Jeśli w powiatach z wyższym odsetkiem osób starszych zarejestrowano mniej zdarzeń, nie wynika z tego, że osoby starsze rzadziej ich doświadczają. Takie wnioskowanie to błąd ekologiczny.
  • Ciemna liczba. Statystyki rejestrowane obejmują tylko to, co zgłoszono i zarejestrowano. Pisz więc o „zarejestrowanych zdarzeniach”, a nie o „przestępczości”.

Jak opisać analizę statystyczną w pracy

Rozdział metodologiczny powinien pozwolić innej osobie powtórzyć badanie. W pracy z bezpieczeństwa narodowego opisz przede wszystkim definicję mierzonego pojęcia, pochodzenie pozycji ankiety (autorskie czy z opublikowanego narzędzia), dobór próby i sposób dotarcia do respondentów, zapewnienie anonimowości oraz – przy dokumentach – klucz kategorii i procedurę kodowania. Poniżej wzór akapitu o analizie statystycznej dla projektów 1 i 2.

Analizy wykonano w programie R. Rzetelność skal oceniono współczynnikami alfa Cronbacha i omega McDonalda. Pojedyncze pozycje skali Likerta opisano medianą i rozkładem odpowiedzi, a wyniki skal – średnią i odchyleniem standardowym. Ocenę bezpieczeństwa w dzień i po zmroku porównano testem Wilcoxona dla par z korelacją rangowo-biseryjną jako wielkością efektu. Wyniki kobiet i mężczyzn porównano testem t Welcha z g Hedgesa. Związek poczucia bezpieczeństwa z oceną zaniedbania okolicy, zaufaniem do policji, płcią, wiekiem i doświadczeniem przestępstwa oszacowano w regresji liniowej. Oceny zaufania do czterech służb porównano testem Friedmana z W Kendalla, a następnie testami Wilcoxona dla par z korektą Holma. Przyjęto poziom istotności α = .05, a wielkości efektu podano z 95% przedziałami ufności.

Gotowe zdania dla innych testów złożysz w generatorze opisu wyników w stylu APA, wpisując liczby z własnego wydruku. 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

Analizy z pięciu projektów w R

Kod odtwarza wszystkie liczby z tego wpisu, a ostatni przepis – rysunki i plik XLSX do pobrania. Najważniejszy jest przepis 1: pełna analiza ankiety mieszkańców (projekty 1, 2 i 4) od symulacji danych po regresję. Wielkości efektu liczy pakiet effectsize, rzetelność i kappę – pakiet psych, a test Dunna – pakiet DescTools.

1. Projekty 1, 2 i 4: ankieta mieszkańców – rzetelność, Wilcoxon dla par, Welch, regresja, Friedman i tabela 2 × 2

Dane wejściowe: 320 mieszkańców: 6 pozycji poczucia bezpieczeństwa, 3 pozycje zaniedbania okolicy, zaufanie do 4 służb, doświadczenie przestępstwa, zapas, dzieci, płeć i wiek (dane symulowane, set.seed(22101)); pakiety effectsize i psych.

Co odczytać: alfę i omegę, rozkład odpowiedzi w dzień i po zmroku, test Wilcoxona z korelacją rangowo-biseryjną, test t Welcha z g Hedgesa, tabelę regresji z b, β i 95% CI, R² i VIF, test Friedmana z W Kendalla i porównania par, tabelę 2 × 2 z χ², testem Fishera, OR, φ i regresją logistyczną.

R
# Projekty 1, 2 i 4: ankieta poczucia bezpieczeństwa mieszkańców jednego miasta (dane symulowane).
# 320 dorosłych mieszkańców; skala poczucia bezpieczeństwa (6 pozycji 1–5), ocena zaniedbania okolicy
# (3 pozycje 1–5), zaufanie do czterech służb (1–5), doświadczenie przestępstwa w ostatnich 3 latach,
# zapas wody i żywności na 3 dni, dzieci w gospodarstwie domowym, płeć i wiek.
suppressPackageStartupMessages({ library(effectsize); library(psych) })
set.seed(22101)
n <- 320
plec <- factor(ifelse(runif(n) < .53, "kobieta", "mężczyzna"), levels = c("mężczyzna", "kobieta"))
wiek <- round(pmin(84, pmax(18, rnorm(n, 46, 16))))
dzieci <- factor(ifelse(runif(n) < .36, "tak", "nie"), levels = c("nie", "tak"))
wiktymizacja <- factor(ifelse(runif(n) < .14, "tak", "nie"), levels = c("nie", "tak"))
likert <- function(y, progi) as.integer(cut(y, c(-Inf, progi, Inf)))
zan_lat <- rnorm(n)
zaniedbanie_poz <- sapply(c(0, .2, -.1), function(s) likert(0.8 * zan_lat + rnorm(n, s, .6), c(-1.5, -.5, .4, 1.3)))
colnames(zaniedbanie_poz) <- c("zan_oswietlenie", "zan_smieci", "zan_pustostany")
zaniedbanie <- rowMeans(zaniedbanie_poz)
zaufanie_lat <- rnorm(n)
zaufanie <- data.frame(
  policja        = likert(0.8 * zaufanie_lat + rnorm(n, .05, .7), c(-1.9, -.9, .1, 1.2)),
  straz_pozarna  = likert(0.5 * zaufanie_lat + rnorm(n, .95, .7), c(-1.9, -.9, .1, 1.2)),
  wojsko         = likert(0.6 * zaufanie_lat + rnorm(n, .55, .75), c(-1.9, -.9, .1, 1.2)),
  straz_miejska  = likert(0.6 * zaufanie_lat + rnorm(n, -.30, .8), c(-1.9, -.9, .1, 1.2)))
bezp_lat <- -0.45 * as.numeric(scale(zaniedbanie)) + 0.25 * as.numeric(scale(zaufanie$policja)) -
  0.35 * (plec == "kobieta") - 0.40 * (wiktymizacja == "tak") + 0.004 * (wiek - 46) + rnorm(n, 0, .8)
przes <- c(dom = .9, dzien = .7, zmrok = -.15, komunikacja = .1, centrum = .25, ogolne = .35)
bezp_poz <- sapply(names(przes), function(k) likert(0.85 * bezp_lat + rnorm(n, przes[[k]], .55), c(-1.7, -.7, .3, 1.3)))
colnames(bezp_poz) <- paste0("bezp_", names(przes))
bezp <- rowMeans(bezp_poz)
zapas <- factor(ifelse(runif(n) < plogis(-1.25 + .80 * (dzieci == "tak") + .015 * (wiek - 46)), "tak", "nie"), levels = c("nie", "tak"))
ank <- data.frame(id = 1:n, plec, wiek, dzieci, wiktymizacja, bezp_poz, bezp, zaniedbanie_poz, zaniedbanie,
                  zaufanie, zapas)

# --- Projekt 1. Rzetelność skali poczucia bezpieczeństwa i opis próby
om <- suppressWarnings(suppressMessages(psych::omega(bezp_poz, nfactors = 1, plot = FALSE)))
round(c(alfa = psych::alpha(bezp_poz, warnings = FALSE)$total$raw_alpha, omega_total = om$omega.tot), 2)
round(c(alfa_zaniedbanie = psych::alpha(zaniedbanie_poz, warnings = FALSE)$total$raw_alpha), 2)
round(c(M_bezp = mean(bezp), SD_bezp = sd(bezp), M_zan = mean(zaniedbanie), SD_zan = sd(zaniedbanie),
        proc_kobiet = 100 * mean(plec == "kobieta"), M_wiek = mean(wiek), SD_wiek = sd(wiek),
        proc_wiktym = 100 * mean(wiktymizacja == "tak")), 2)

# Pozycje „w dzień” i „po zmroku”: te same osoby, dwie oceny porządkowe -> test Wilcoxona dla par
round(100 * rbind(dzien = prop.table(table(factor(ank$bezp_dzien, 1:5))),
                  zmrok = prop.table(table(factor(ank$bezp_zmrok, 1:5)))), 1)
round(c(proc_bezp_dzien = 100 * mean(ank$bezp_dzien >= 4), proc_bezp_zmrok = 100 * mean(ank$bezp_zmrok >= 4),
        Me_dzien = median(ank$bezp_dzien), Me_zmrok = median(ank$bezp_zmrok),
        proc_nizej_po_zmroku = 100 * mean(ank$bezp_zmrok < ank$bezp_dzien),
        proc_wyzej_po_zmroku = 100 * mean(ank$bezp_zmrok > ank$bezp_dzien)), 1)
suppressWarnings(wilcox.test(ank$bezp_zmrok, ank$bezp_dzien, paired = TRUE, exact = FALSE))
rank_biserial(ank$bezp_zmrok, ank$bezp_dzien, paired = TRUE)

# Kobiety a mężczyźni: test t Welcha i g Hedgesa
aggregate(bezp ~ plec, ank, function(x) round(c(n = length(x), M = mean(x), SD = sd(x)), 2))
t.test(bezp ~ plec, data = ank)
hedges_g(bezp ~ plec, data = ank, pooled_sd = FALSE)

# Regresja liniowa: co wiąże się z poczuciem bezpieczeństwa
m1 <- lm(bezp ~ zaniedbanie + policja + plec + wiek + wiktymizacja, data = ank)
s1 <- summary(m1)
tab_reg <- data.frame(b = coef(m1), SE = s1$coefficients[, 2], t = s1$coefficients[, 3], p = s1$coefficients[, 4],
                      lo = confint(m1)[, 1], hi = confint(m1)[, 2])
mz <- lm(scale(bezp) ~ scale(zaniedbanie) + scale(policja) + plec + scale(wiek) + wiktymizacja, data = ank)
tab_reg$beta_lub_d <- coef(mz); tab_reg$beta_lo <- confint(mz)[, 1]; tab_reg$beta_hi <- confint(mz)[, 2]
print(cbind(round(tab_reg[, -4], 3), p = signif(tab_reg$p, 3)))
round(c(R2 = s1$r.squared, R2_adj = s1$adj.r.squared, F = unname(s1$fstatistic[1]),
        df1 = unname(s1$fstatistic[2]), df2 = unname(s1$fstatistic[3])), 3)
signif(pf(s1$fstatistic[1], s1$fstatistic[2], s1$fstatistic[3], lower.tail = FALSE), 3)
round(1 / (1 - sapply(c("zaniedbanie", "policja", "wiek"), function(v)
  summary(lm(as.formula(paste(v, "~ .")), data = data.frame(zaniedbanie = ank$zaniedbanie, policja = ank$policja,
                                                             wiek = ank$wiek, kobieta = as.numeric(ank$plec == "kobieta"),
                                                             wiktym = as.numeric(ank$wiktymizacja == "tak"))))$r.squared)), 2)

# --- Projekt 2. Zaufanie do czterech służb: te same osoby -> test Friedmana, W Kendalla, porównania par
sl <- as.matrix(ank[, c("policja", "straz_pozarna", "wojsko", "straz_miejska")])
round(rbind(Me = apply(sl, 2, median), M = colMeans(sl), proc_ufa = 100 * colMeans(sl >= 4)), 2)
friedman.test(sl)
suppressWarnings(kendalls_w(sl))
dl <- data.frame(id = rep(1:n, 4), sluzba = factor(rep(colnames(sl), each = n), levels = colnames(sl)), ocena = as.vector(sl))
suppressWarnings(pairwise.wilcox.test(dl$ocena, dl$sluzba, paired = TRUE, p.adjust.method = "holm", exact = FALSE))

# --- Projekt 4. Tabela 2 × 2: zapas wody i żywności a dzieci w gospodarstwie
tab <- table(dzieci = ank$dzieci, zapas = ank$zapas); tab
round(100 * prop.table(tab, 1), 1)
chisq.test(tab, correct = FALSE)
round(chisq.test(tab, correct = FALSE)$expected, 1)
fisher.test(tab)$p.value
or <- (tab[2, 2] * tab[1, 1]) / (tab[2, 1] * tab[1, 2]); se_log <- sqrt(sum(1 / tab))
round(c(OR = or, lo = exp(log(or) - 1.96 * se_log), hi = exp(log(or) + 1.96 * se_log),
        phi = effectsize::phi(tab, alternative = "two.sided")$phi), 2)
# Ten sam związek z kontrolą wieku: regresja logistyczna
m2 <- glm(zapas ~ dzieci + I(wiek / 10), data = ank, family = binomial)
round(cbind(OR = exp(coef(m2)), exp(confint.default(m2))), 2)
signif(summary(m2)$coefficients[, 4], 3)
Wynik w R
       alfa omega_total 
       0.91        0.91 
alfa_zaniedbanie 
            0.83 
     M_bezp     SD_bezp       M_zan      SD_zan proc_kobiet      M_wiek     SD_wiek proc_wiktym 
       3.28        0.80        3.12        0.93       49.38       47.55       15.57       13.44 
         1    2    3    4    5
dzien  0.9 11.2 30.3 38.1 19.4
zmrok 10.0 30.3 40.0 15.9  3.8
     proc_bezp_dzien      proc_bezp_zmrok             Me_dzien             Me_zmrok proc_nizej_po_zmroku 
                57.5                 19.7                  4.0                  3.0                 68.1 
proc_wyzej_po_zmroku 
                 3.8 

	Wilcoxon signed rank test with continuity correction

data:  ank$bezp_zmrok and ank$bezp_dzien
V = 1118, p-value < 2.2e-16
alternative hypothesis: true location shift is not equal to 0

r (rank biserial) |         95% CI
----------------------------------
-0.92             | [-0.93, -0.89]
       plec bezp.n bezp.M bezp.SD
1 mężczyzna 162.00   3.39    0.80
2   kobieta 158.00   3.18    0.78

	Welch Two Sample t-test

data:  bezp by plec
t = 2.4263, df = 318, p-value = 0.01581
alternative hypothesis: true difference in means between group mężczyzna and group kobieta is not equal to 0
95 percent confidence interval:
 0.04062681 0.38899761
sample estimates:
mean in group mężczyzna   mean in group kobieta 
               3.389918                3.175105 

Hedges' g |       95% CI
------------------------
0.27      | [0.05, 0.49]

- Estimated using un-pooled SD.                     b    SE      t     lo     hi beta_lub_d beta_lo beta_hi        p
(Intercept)      3.874 0.227 17.036  3.427  4.321      0.188   0.052   0.324 1.51e-46
zaniedbanie     -0.345 0.041 -8.334 -0.426 -0.264     -0.400  -0.495  -0.306 2.47e-15
policja          0.209 0.038  5.449  0.134  0.285      0.263   0.168   0.359 1.03e-07
pleckobieta     -0.197 0.077 -2.568 -0.348 -0.046     -0.247  -0.437  -0.058 1.07e-02
wiek            -0.002 0.002 -0.622 -0.006  0.003     -0.030  -0.125   0.065 5.35e-01
wiktymizacjatak -0.391 0.113 -3.445 -0.614 -0.168     -0.490  -0.769  -0.210 6.49e-04
     R2  R2_adj       F     df1     df2 
  0.278   0.266  24.140   5.000 314.000 
   value 
1.49e-20 
zaniedbanie     policja        wiek 
       1.00        1.02        1.01 
         policja straz_pozarna wojsko straz_miejska
Me          3.00          4.00   4.00          3.00
M           3.40          4.22   3.88          3.05
proc_ufa   45.94         84.06  68.12         33.75

	Friedman rank sum test

data:  sl
Friedman chi-squared = 320.37, df = 3, p-value < 2.2e-16

Kendall's W |       95% CI
--------------------------
0.33        | [0.29, 1.00]

- One-sided CIs: upper bound fixed at [1.00].
	Pairwise comparisons using Wilcoxon signed rank test with continuity correction 

data:  dl$ocena and dl$sluzba 

              policja straz_pozarna wojsko 
straz_pozarna < 2e-16 -             -      
wojsko        1.5e-11 7.9e-09       -      
straz_miejska 9.2e-08 < 2e-16       < 2e-16

P value adjustment method: holm 
      zapas
dzieci nie tak
   nie 153  48
   tak  75  44
      zapas
dzieci  nie  tak
   nie 76.1 23.9
   tak 63.0 37.0

	Pearson's Chi-squared test

data:  tab
X-squared = 6.2564, df = 1, p-value = 0.01237

      zapas
dzieci   nie  tak
   nie 143.2 57.8
   tak  84.8 34.2
[1] 0.0151296
  OR   lo   hi  phi 
1.87 1.14 3.06 0.13 
              OR 2.5 % 97.5 %
(Intercept) 0.17  0.07   0.42
dziecitak   1.95  1.18   3.22
I(wiek/10)  1.13  0.96   1.32
(Intercept)   dziecitak  I(wiek/10) 
   7.77e-05    8.67e-03    1.46e-01 

2. Projekty 3 i 5: grupy zawodowe (Kruskal–Wallis, Dunn) i kodowanie dokumentów (kappa, Mann–Whitney)

Dane wejściowe: 132 osoby z czterech grup zawodowych (set.seed(22103)) i 40 dokumentów zakodowanych przez dwie osoby (set.seed(22105)); pakiety effectsize, psych i DescTools.

Co odczytać: alfę skali, mediany i kwartyle w grupach, skośność i odsetek wyników maksymalnych, test Kruskala–Wallisa z ε² rangowym, test Dunna z korektą Holma, zgodność i kappę z 95% CI dla każdego elementu, indeks kompletności w dwóch typach gmin, test Manna–Whitneya z korelacją rangowo-biseryjną i odsetki elementów.

R
# Projekt 3: porównanie czterech grup zawodowych; projekt 5: analiza dokumentów samorządów (dane symulowane).
suppressPackageStartupMessages({ library(effectsize); library(psych); library(DescTools) })

# --- Projekt 3. Ocena przygotowania własnej jednostki do działań w sytuacji kryzysowej
# 132 osoby z czterech grup zawodowych (dobór celowy); skala autorska: średnia z 8 pozycji 1–5.
set.seed(22103)
grupy <- c("policja", "straż pożarna", "wojsko", "administracja (zarządzanie kryzysowe)")
ng <- c(38, 34, 31, 29)
grupa <- factor(rep(grupy, ng), levels = grupy)
lat <- rnorm(sum(ng), c(0, .55, .35, -.35)[as.integer(grupa)], 1)
poz <- sapply(1:8, function(j) as.integer(cut(0.8 * lat + rnorm(sum(ng), 1.0, .6), c(-Inf, -1.8, -.8, .2, 1.1, Inf))))
gz <- data.frame(id = seq_along(grupa), grupa, staz = round(pmax(1, rnorm(sum(ng), 12, 7))), poz)
gz$przygotowanie <- rowMeans(poz)
round(psych::alpha(poz, warnings = FALSE)$total$raw_alpha, 2)
aggregate(przygotowanie ~ grupa, gz, function(x) round(c(n = length(x), Me = median(x), Q1 = unname(quantile(x, .25)),
                                                          Q3 = unname(quantile(x, .75)), M = mean(x), SD = sd(x)), 2))
round(c(skosnosc = psych::skew(gz$przygotowanie), proc_max = 100 * mean(gz$przygotowanie == 5)), 2)
kruskal.test(przygotowanie ~ grupa, data = gz)
rank_epsilon_squared(przygotowanie ~ grupa, data = gz)
DunnTest(przygotowanie ~ grupa, data = gz, method = "holm")

# --- Projekt 5. Analiza dokumentów: 40 dokumentów strategicznych samorządów dotyczących bezpieczeństwa,
# 8 elementów kodowanych 0/1 przez dwie osoby kodujące; indeks kompletności 0–8.
set.seed(22105)
el <- c("diagnoza_z_danymi", "cele_mierzalne", "wskazniki", "harmonogram", "budzet", "partnerzy", "monitorowanie", "konsultacje")
typ <- factor(rep(c("gmina miejska", "gmina wiejska lub miejsko-wiejska"), c(18, 22)))
pr <- c(.75, .45, .40, .55, .35, .85, .50, .30)
prawda <- sapply(seq_along(el), function(j) rbinom(40, 1, plogis(qlogis(pr[j]) + .7 * (typ == "gmina miejska") - .35)))
blad <- function(x, q) ifelse(runif(length(x)) < q, 1 - x, x)
k1 <- prawda
k2 <- sapply(seq_along(el), function(j) blad(prawda[, j], c(.05, .15, .12, .05, .05, .05, .17, .07)[j]))
colnames(k1) <- colnames(k2) <- el
kappy <- sapply(el, function(e) {
  k <- suppressWarnings(psych::cohen.kappa(cbind(k1[, e], k2[, e]))); c(zgodnosc = 100 * mean(k1[, e] == k2[, e]), kappa = k$kappa,
                                                       lo = k$confid[1, 1], hi = k$confid[1, 3]) })
round(t(kappy), 2)
dok <- data.frame(dokument = 1:40, typ, k1)
dok$kompletnosc <- rowSums(k1)
aggregate(kompletnosc ~ typ, dok, function(x) round(c(n = length(x), Me = median(x), Q1 = unname(quantile(x, .25)),
                                                      Q3 = unname(quantile(x, .75)), M = mean(x)), 2))
suppressWarnings(wilcox.test(kompletnosc ~ typ, data = dok, exact = FALSE))
rank_biserial(kompletnosc ~ typ, data = dok)
round(100 * colMeans(k1), 1)
Wynik w R
[1] 0.9
                                  grupa przygotowanie.n przygotowanie.Me przygotowanie.Q1 przygotowanie.Q3
1                               policja           38.00             4.50             4.12             4.75
2                         straż pożarna           34.00             4.69             4.25             4.88
3                                wojsko           31.00             4.50             4.06             4.88
4 administracja (zarządzanie kryzysowe)           29.00             3.88             3.38             4.50
  przygotowanie.M przygotowanie.SD
1            4.35             0.55
2            4.50             0.57
3            4.38             0.52
4            3.88             0.70
skosnosc proc_max 
   -0.75    15.91 

	Kruskal-Wallis rank sum test

data:  przygotowanie by grupa
Kruskal-Wallis chi-squared = 15.264, df = 3, p-value = 0.001605

Epsilon2 (rank) |       95% CI
------------------------------
0.12            | [0.06, 1.00]

- One-sided CIs: upper bound fixed at [1.00].
 Dunn's test of multiple comparisons using rank sums : holm  

                                                    mean.rank.diff    pval    
straż pożarna-policja                                    12.360681 0.50778    
wojsko-policja                                            2.482598 0.78771    
administracja (zarządzanie kryzysowe)-policja           -24.272686 0.03904 *  
wojsko-straż pożarna                                     -9.878083 0.59275    
administracja (zarządzanie kryzysowe)-straż pożarna     -36.633367 0.00085 ***
administracja (zarządzanie kryzysowe)-wojsko            -26.755284 0.03276 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

                  zgodnosc kappa   lo   hi
diagnoza_z_danymi     90.0  0.75 0.52 0.98
cele_mierzalne        82.5  0.64 0.41 0.88
wskazniki             75.0  0.49 0.24 0.74
harmonogram           95.0  0.90 0.76 1.00
budzet                97.5  0.93 0.80 1.00
partnerzy             92.5  0.76 0.50 1.00
monitorowanie         92.5  0.85 0.69 1.00
konsultacje           95.0  0.89 0.75 1.00
                                typ kompletnosc.n kompletnosc.Me kompletnosc.Q1 kompletnosc.Q3 kompletnosc.M
1                     gmina miejska         18.00           4.50           4.00           5.75          4.56
2 gmina wiejska lub miejsko-wiejska         22.00           3.50           2.25           4.75          3.45

	Wilcoxon rank sum test with continuity correction

data:  kompletnosc by typ
W = 279, p-value = 0.02563
alternative hypothesis: true location shift is not equal to 0

r (rank biserial) |       95% CI
--------------------------------
0.41              | [0.07, 0.66]
diagnoza_z_danymi    cele_mierzalne         wskazniki       harmonogram            budzet         partnerzy 
             75.0              42.5              27.5              55.0              22.5              85.0 
    monitorowanie       konsultacje 
             47.5              40.0 

3. Rysunki i plik XLSX

Dane wejściowe: wyniki przepisów 1–2 (wczytywane przez source() z tego samego folderu); pakiety ggplot2, svglite i openxlsx; motyw rysunków zdefiniowany w skrypcie.

Co odczytać: odsetki odpowiedzi 4 i 5 na rysunku 1, współczynniki standaryzowane na rysunku 2, liczbę wierszy w arkuszach zapisanego pliku i metadane autora.

R
# Rysunki i plik XLSX do wpisu (uruchom z folderu kod/): LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 Rscript b221-rysunki.R > b221-rysunki-wynik.txt
suppressPackageStartupMessages({ library(ggplot2); library(svglite); library(openxlsx) })
# Motyw i zapis rysunków zdefiniowane lokalnie
KOLORY <- c(akcent = "#e50101", drugi = "#1f78b4", dane = "grey55", neutralny = "#8C8C8C", granat = "#0f1d3a")
theme_metodolog <- function(base_size = 14) {
  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"),
          strip.text = element_text(face = "bold", colour = KOLORY[["granat"]]), 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)))
}
minus <- function(x) gsub("-", "−", x)
pdf(NULL)
invisible(capture.output({ for (f in c("b221-1-ankieta-mieszkancow.R", "b221-2-grupy-dokumenty.R")) source(f) }))

# Rysunek 1: poczucie bezpieczeństwa w okolicy w dzień i po zmroku – te same osoby, według płci
d1 <- do.call(rbind, lapply(c("bezp_dzien", "bezp_zmrok"), function(v) do.call(rbind, lapply(levels(ank$plec), function(g) {
  x <- ank[[v]][ank$plec == g]
  data.frame(pora = ifelse(v == "bezp_dzien", "w dzień", "po zmroku"), plec = g, n = length(x),
             odp = factor(1:5, levels = 5:1), proc = 100 * as.vector(prop.table(table(factor(x, 1:5))))) }))))
d1$wiersz <- factor(paste0(d1$plec, "\n(n = ", d1$n, ")"))
d1$pora <- factor(d1$pora, levels = c("w dzień", "po zmroku"))
et1 <- aggregate(proc ~ pora + plec + wiersz, subset(d1, odp %in% c("4", "5")), sum)
print(et1[, c("pora", "plec", "proc")], digits = 3, row.names = FALSE)
r1 <- ggplot(d1, aes(proc, wiersz, fill = odp)) + geom_col(width = .66, colour = "white", linewidth = .2) +
  geom_text(data = et1, aes(x = 101, y = wiersz, label = sprintf("%.1f%%", proc)), inherit.aes = FALSE, hjust = 0, size = 3.8,
            colour = KOLORY[["akcent"]], fontface = "bold") +
  facet_wrap(~ pora, ncol = 1) +
  scale_fill_manual(values = c(`5` = KOLORY[["drugi"]], `4` = "#9ecae1", `3` = "grey82", `2` = "#f4a3a3", `1` = KOLORY[["akcent"]]),
                    breaks = as.character(1:5), name = NULL,
                    labels = c("1 – zdecydowanie niebezpiecznie", "2", "3", "4", "5 – zdecydowanie bezpiecznie")) +
  scale_x_continuous(limits = c(0, 112), breaks = c(0, 25, 50, 75, 100), labels = function(x) paste0(x, "%"),
                     expand = expansion(mult = c(0, 0))) +
  labs(title = "Poczucie bezpieczeństwa w okolicy w dzień i po zmroku (N = 320)",
       subtitle = "Rozkład odpowiedzi 1–5; czerwona liczba to odsetek odpowiedzi 4 i 5",
       x = "Odsetek odpowiedzi", y = NULL) + theme_metodolog(13) + guides(fill = guide_legend(nrow = 1))
zapisz_svg(r1, "../statystyka-bezpieczenstwo-dzien-zmrok.svg", szer = 10, wys = 5.6)

# Rysunek 2: regresja – standaryzowane współczynniki z 95% CI
d2 <- tab_reg[-1, c("beta_lub_d", "beta_lo", "beta_hi", "p")]
d2$zm <- c("Zaniedbanie okolicy (1 SD)", "Zaufanie do policji (1 SD)", "Kobieta (vs mężczyzna)", "Wiek (1 SD)",
           "Doświadczenie przestępstwa (tak vs nie)")
d2$zm <- factor(d2$zm, levels = rev(d2$zm))
d2$etyk <- minus(sprintf("%.2f [%.2f, %.2f]", d2$beta_lub_d, d2$beta_lo, d2$beta_hi))
print(d2[, c("zm", "beta_lub_d", "beta_lo", "beta_hi")], digits = 3, row.names = FALSE)
r2 <- ggplot(d2, aes(beta_lub_d, zm)) + geom_vline(xintercept = 0, linetype = 2, colour = "grey50") +
  geom_errorbar(aes(xmin = beta_lo, xmax = beta_hi), width = .16, orientation = "y", colour = KOLORY[["drugi"]], linewidth = 1) +
  geom_point(aes(colour = p < .05), size = 3.6) +
  geom_text(aes(label = etyk), nudge_y = .32, size = 3.6, colour = "grey20") +
  scale_colour_manual(values = c(`TRUE` = KOLORY[["akcent"]], `FALSE` = KOLORY[["neutralny"]]),
                      labels = c(`TRUE` = "p < .05", `FALSE` = "p ≥ .05"), name = NULL) +
  scale_x_continuous(limits = c(-0.9, 0.5), breaks = seq(-0.8, 0.4, .2), labels = function(x) minus(sprintf("%.1f", x))) +
  labs(title = "Co wiąże się z poczuciem bezpieczeństwa mieszkańców?",
       subtitle = "Regresja liniowa, N = 320, R² = .28; zmienna zależna w jednostkach SD",
       x = "Współczynnik standaryzowany z 95% CI (dla zmiennych 0/1: różnica w SD)", y = NULL) + theme_metodolog(13)
zapisz_svg(r2, "../statystyka-bezpieczenstwo-regresja.svg", szer = 10, wys = 5)

# Plik XLSX z danymi do pobrania
wb <- createWorkbook(creator = "Metodolog.pl", title = "Statystyka w pracy z bezpieczeństwa narodowego – dane przykładowe")
setLastModifiedBy(wb, "Metodolog.pl")
opis <- data.frame(arkusz = c("Ankieta_mieszkancow", "Grupy_zawodowe", "Dokumenty_koder1", "Dokumenty_koder2"),
  zawartosc = c("320 mieszkańców: 6 pozycji poczucia bezpieczeństwa (1–5) i wynik skali, 3 pozycje zaniedbania okolicy, zaufanie do 4 służb (1–5), doświadczenie przestępstwa, zapas wody i żywności, dzieci, płeć, wiek",
                "132 osoby z 4 grup zawodowych: 8 pozycji oceny przygotowania jednostki (1–5), wynik skali, staż",
                "40 dokumentów samorządów: 8 elementów (0/1) według pierwszej osoby kodującej, typ gminy, indeks kompletności",
                "Te same 40 dokumentów według drugiej osoby kodującej"),
  uwaga = "Dane symulowane do nauki analizy; nie pochodzą z prawdziwego badania.")
for (ark in list(list("Opis", opis), list("Ankieta_mieszkancow", ank), list("Grupy_zawodowe", gz),
                 list("Dokumenty_koder1", dok), list("Dokumenty_koder2", data.frame(dokument = 1:40, typ, k2)))) {
  addWorksheet(wb, ark[[1]]); writeData(wb, ark[[1]], ark[[2]]); setColWidths(wb, ark[[1]], 1:ncol(ark[[2]]), "auto") }
plik <- "../statystyka-bezpieczenstwo-dane-przyklad.xlsx"
saveWorkbook(wb, plik, overwrite = TRUE)
# Kontrola pliku: arkusze, liczba wierszy, metadane autora i rozmiar
sapply(getSheetNames(plik), function(s) nrow(read.xlsx(plik, s)))
tmp <- tempfile(); unzip(plik, exdir = tmp)
core <- paste(readLines(file.path(tmp, "docProps", "core.xml"), warn = FALSE, encoding = "UTF-8"), collapse = "")
cat("creator:", sub(".*<dc:creator>(.*?)</dc:creator>.*", "\\1", core), "| lastModifiedBy:",
    sub(".*<cp:lastModifiedBy>(.*?)</cp:lastModifiedBy>.*", "\\1", core), "\n")
cat("rozmiar KB:", round(file.info(plik)$size / 1024), "\n")
Wynik w R
      pora      plec proc
   w dzień   kobieta 50.6
 po zmroku   kobieta 17.1
   w dzień mężczyzna 64.2
 po zmroku mężczyzna 22.2
Zapisano ../statystyka-bezpieczenstwo-dzien-zmrok.svg: w HTML width="1000" height="560" (12 KB)
                                      zm beta_lub_d beta_lo beta_hi
              Zaniedbanie okolicy (1 SD)    -0.4005  -0.495 -0.3059
              Zaufanie do policji (1 SD)     0.2635   0.168  0.3586
                  Kobieta (vs mężczyzna)    -0.2472  -0.437 -0.0578
                             Wiek (1 SD)    -0.0299  -0.125  0.0647
 Doświadczenie przestępstwa (tak vs nie)    -0.4898  -0.769 -0.2100
Zapisano ../statystyka-bezpieczenstwo-regresja.svg: w HTML width="1000" height="500" (9 KB)
               Opis Ankieta_mieszkancow      Grupy_zawodowe    Dokumenty_koder1 
                  4                 320                 132                  40 
   Dokumenty_koder2 
                 40 
creator: Metodolog.pl | lastModifiedBy: Metodolog.pl 
rozmiar KB: 44 

Bibliografia oprogramowania

Wyniki na tej stronie pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (funkcje wilcox.test(), t.test(), lm(), glm(), friedman.test(), pairwise.wilcox.test(), kruskal.test(), chisq.test() i fisher.test() z pakietu stats); rysunki przygotowano w pakiecie ggplot2. 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. effectsize (wersja 1.0.2): Ben-Shachar, M. S., Lüdecke, D., & Makowski, D. (2020). effectsize: Estimation of effect size indices and standardized parameters. Journal of Open Source Software, 5(56), 2815. https://doi.org/10.21105/joss.02815
  3. 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
  4. DescTools (wersja 0.99.60): Signorell, A. (2025). DescTools: Tools for descriptive statistics (R package version 0.99.60) [Computer software]. https://CRAN.R-project.org/package=DescTools
  5. openxlsx (wersja 4.2.8.1): Schauberger, P., & Walker, A. (2025). openxlsx: Read, write and edit xlsx files (R package version 4.2.8.1) [Computer software]. https://doi.org/10.32614/CRAN.package.openxlsx
  6. ggplot2 (wersja 4.0.2): Wickham, H. (2016). ggplot2: Elegant graphics for data analysis. Springer. https://ggplot2.tidyverse.org
  7. 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 bezpieczeństwa narodowego

  • Oceny tej samej osoby analizowane jak niezależne grupy – np. zaufanie do czterech służb porównane testem Kruskala–Wallisa albo pozycje „w dzień” i „po zmroku” testem Manna–Whitneya.
  • Mieszanie pojęć: pytanie o ocenę ryzyka opisane jako lęk przed przestępczością albo jedno ogólne pytanie jako „poczucie bezpieczeństwa”.
  • Uogólnianie wyników ankiety internetowej na mieszkańców miasta, „Polaków” albo całą formację.
  • Brak rzetelności skali przed policzeniem wyniku jako średniej z pozycji.
  • Same wartości p bez wielkości efektu i bez odsetków – zwłaszcza przy dużej próbie, w której istotne są nawet drobne różnice.
  • Język przyczynowy w badaniu przekrojowym: „zaufanie do policji zwiększa poczucie bezpieczeństwa” zamiast „wiązało się z wyższym poczuciem bezpieczeństwa”.
  • Metryczka, która ujawnia tożsamość respondentów z małych jednostek, i wyniki pokazywane dla kilkuosobowych grup.
  • Kodowanie dokumentów przez jedną osobę bez klucza kategorii i bez zgodności kodujących.
  • Statystyki urzędowe bez źródła, daty i definicji oraz wnioski o osobach z danych dla gmin lub powiatów.

Najczęstsze pytania

Jakie analizy statystyczne wybrać do pracy magisterskiej z bezpieczeństwa narodowego?

Zależy od pytania i danych. Wynik skali poczucia bezpieczeństwa porównasz między grupami testem t Welcha i wyjaśnisz regresją liniową; oceny tej samej osoby (np. zaufanie do kilku służb) – testem Friedmana; trzy i więcej grup zawodowych przy skośnym wyniku – testem Kruskala–Wallisa z testem Dunna; dwie zmienne kategorialne – tabelą krzyżową z χ² i ilorazem szans. Do każdego testu podaj wielkość efektu z 95% CI.

Jak zmierzyć poczucie bezpieczeństwa mieszkańców w ankiecie?

Użyj kilku pozycji o konkretnych sytuacjach (w domu, w okolicy w dzień, po zmroku, w komunikacji publicznej) zamiast jednego ogólnego pytania, policz rzetelność (alfa i omega) i wynik jako średnią pozycji. Oddziel poczucie bezpieczeństwa od oceny ryzyka i od lęku przed przestępczością – to różne pojęcia, a w literaturze pokazano, że miary ryzyka i lęku korelują tylko umiarkowanie.

Czy można porównać zaufanie do policji, straży pożarnej i wojska u tych samych respondentów?

Tak, ale te oceny są zależne, bo pochodzą od tych samych osób. Użyj testu Friedmana z W Kendalla jako wielkością efektu, a potem porównań par testem Wilcoxona z korektą Holma. Nie porównuj tych ocen testem Kruskala–Wallisa ani ANOVA dla grup niezależnych.

Jak opisać w pracy ankietę przeprowadzoną wśród policjantów lub żołnierzy?

Opisz dobór próby (zwykle celowy lub kula śnieżna), zgody instytucji i uczestników, sposób zapewnienia anonimowości i liczbę osób w każdej grupie. Nie zbieraj zmiennych, które razem pozwalają rozpoznać osobę w małej jednostce (np. stopień, staż i komórka), a wyniki pokazuj tylko dla grup na tyle licznych, by nikt nie był identyfikowalny. Wniosków nie uogólniaj na całą formację.

Jak analizować dokumenty i statystyki urzędowe w pracy z bezpieczeństwa?

Dokumenty koduj według klucza kategorii, a część materiału daj do niezależnego zakodowania drugiej osobie i policz kappę Cohena dla każdej kategorii. Przy statystykach urzędowych podaj źródło z datą odczytu, definicje wskaźników i jednostkę (np. gmina, powiat), licz wskaźniki na liczbę mieszkańców i pamiętaj, że z danych zagregowanych nie wolno wnioskować o pojedynczych osobach (błąd ekologiczny).

Powiązane hasła

Przeczytaj też

Piszesz pracę z bezpieczeństwa narodowego i masz dane z ankiety?

Pomożemy dobrać analizy do Twoich pytań – od skali poczucia bezpieczeństwa po porównanie grup zawodowych – policzyć je z wielkością efektu i wyjaśnić tak, abyś umiał(a) samodzielnie je opisać i obronić.

Oferta dla studentówWyceń analizę

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Bethlehem, J. (2010). Selection bias in web surveys. International Statistical Review, 78(2), 161–188. https://doi.org/10.1111/j.1751-5823.2010.00112.x ● Otwarty dostęp
  2. Delacre, M., Lakens, D., & Leys, C. (2017). Why psychologists should by default use Welch's t-test instead of Student's t-test. International Review of Social Psychology, 30(1), 92–101. https://doi.org/10.5334/irsp.82 ● Otwarty dostęp
  3. Dunn, T. J., Baguley, T., & Brunsden, V. (2014). From alpha to omega: A practical solution to the pervasive problem of internal consistency estimation. British Journal of Psychology, 105(3), 399–412. https://doi.org/10.1111/bjop.12046 ● Otwarty dostęp: pełny tekst
  4. Farrall, S., Bannister, J., Ditton, J., & Gilchrist, E. (1997). Questioning the measurement of the ‘fear of crime’: Findings from a major methodological study. British Journal of Criminology, 37(4), 658–679. https://doi.org/10.1093/oxfordjournals.bjc.a014203
  5. 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
  6. Lombard, M., Snyder-Duch, J., & Bracken, C. C. (2002). Content analysis in mass communication: Assessment and reporting of intercoder reliability. Human Communication Research, 28(4), 587–604. https://doi.org/10.1111/j.1468-2958.2002.tb00826.x
  7. Pereira, D. G., Afonso, A., & Medeiros, F. M. (2015). Overview of Friedman’s test and post-hoc analysis. Communications in Statistics - Simulation and Computation, 44(10), 2636–2653. https://doi.org/10.1080/03610918.2014.931971
  8. Robinson, W. S. (1950). Ecological correlations and the behavior of individuals. American Sociological Review, 15(3), 351–357. https://doi.org/10.2307/2087176
  9. Sullivan, G. M., & Artino, A. R., Jr. (2013). Analyzing and interpreting data from Likert-type scales. Journal of Graduate Medical Education, 5(4), 541–542. https://doi.org/10.4300/JGME-5-4-18 ● Otwarty dostęp
  10. 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

Cytowania BibTeX

@article{bethlehem2010selection, author={Bethlehem, Jelke}, title={{Selection bias in web surveys}}, journal={International Statistical Review}, year={2010}, volume={78}, number={2}, pages={161--188}, doi={10.1111/j.1751-5823.2010.00112.x}}
@article{delacre2017why, author={Delacre, Marie and Lakens, Daniël and Leys, Christophe}, title={{Why psychologists should by default use Welch's t-test instead of Student's t-test}}, journal={International Review of Social Psychology}, year={2017}, volume={30}, number={1}, pages={92--101}, doi={10.5334/irsp.82}}
@article{dunn2014alpha, author={Dunn, Thomas J. and Baguley, Thom and Brunsden, Vivienne}, title={{From alpha to omega: A practical solution to the pervasive problem of internal consistency estimation}}, journal={British Journal of Psychology}, year={2014}, volume={105}, number={3}, pages={399--412}, doi={10.1111/bjop.12046}}
@article{farrall1997questioning, author={Farrall, S. and Bannister, J. and Ditton, J. and Gilchrist, E.}, title={{Questioning the measurement of the ‘fear of crime’: Findings from a major methodological study}}, journal={British Journal of Criminology}, year={1997}, volume={37}, number={4}, pages={658--679}, doi={10.1093/oxfordjournals.bjc.a014203}}
@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{lombard2002content, author={Lombard, Matthew and Snyder-Duch, Jennifer and Bracken, Cheryl Campanella}, title={{Content analysis in mass communication: Assessment and reporting of intercoder reliability}}, journal={Human Communication Research}, year={2002}, volume={28}, number={4}, pages={587--604}, doi={10.1111/j.1468-2958.2002.tb00826.x}}
@article{pereira2015overview, author={Pereira, Dulce G. and Afonso, Anabela and Medeiros, Fátima Melo}, title={{Overview of Friedman’s test and post-hoc analysis}}, journal={Communications in Statistics - Simulation and Computation}, year={2015}, volume={44}, number={10}, pages={2636--2653}, doi={10.1080/03610918.2014.931971}}
@article{robinson1950ecological, author={Robinson, W. S.}, title={{Ecological correlations and the behavior of individuals}}, journal={American Sociological Review}, year={1950}, volume={15}, number={3}, pages={351--357}, doi={10.2307/2087176}}
@article{sullivan2013analyzing, author={Sullivan, Gail M. and Artino, Jr., Anthony R.}, title={{Analyzing and interpreting data from Likert-type scales}}, journal={Journal of Graduate Medical Education}, year={2013}, volume={5}, number={4}, pages={541--542}, doi={10.4300/jgme-5-4-18}}
@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}}
R