jamovi — poradnik do ćwiczenia
Podstawy dziennikarstwa danych
Do czego służy ten handout: towarzyszy ćwiczeniu „analiza i wizualizacja danych o przestępczości” (seminarium 3). Pokazuje, jak działa jamovi i na co zwracać uwagę przy analizie opisowej, ale nie rozwiązuje za was pytań analitycznych — te są w karcie ćwiczenia.
Dlaczego jamovi
jamovi to bezpłatny, open-source program do analizy statystycznej. Działa jak SPSS — wszystko klika się w GUI, nie trzeba nic programować — ale jest darmowy i generuje wyniki w formacie APA, gotowe do wklejenia do raportu.
Kiedy sięgacie po jamovi zamiast Google Sheets:
- Potrzebujecie statystyk opisowych z podziałem na grupy (Split by) — w Sheets trzeba pisać formuły
- Chcecie szybki histogram / boxplot z opisem APA
- Planujecie testy statystyczne (korelacje, regresje, ANOVA) na późniejszych etapach projektu
- Dane mają więcej niż kilkaset wierszy i pivot tables w Sheets robią się wolne
Kiedy jamovi nie wystarcza:
- Bardzo duże zbiory (>100 tys. wierszy) — używajcie R / Python
- Skomplikowane czyszczenie danych — do tego jest OpenRefine
- Wizualizacja publikacyjna — jamovi produkuje proste wykresy robocze, do publikacji używajcie Datawrapper
Pobranie i uruchomienie
- Wejdźcie na jamovi.org → Download
- Wybierzcie wersję dla waszego systemu (macOS / Windows / Linux). Jest też wersja cloud dla osób, które nie chcą instalować — działa w przeglądarce, ale wolniej.
- Instalacja standardowa (~200 MB). Po uruchomieniu widzicie pusty arkusz.
Pierwsze kroki — wczytanie danych
- File → Open → Browse → wybierzcie plik CSV
- Jamovi rozpozna nagłówki i separatory automatycznie. Dla polskich znaków — jeśli wyglądają dziwnie, zapiszcie CSV ponownie jako UTF-8 i wczytajcie ponownie.
- Dane pojawiają się jako tabela. Nie zapisujcie na razie (plik .omv powstanie przy pierwszym Save).
jamovi nie modyfikuje oryginalnego CSV. Wszystkie zmiany (typy pomiaru, filtry, computed columns) są w pliku .omv, nie w źródłowym CSV. To pozwala wrócić do surowych danych, kiedy chcecie.
Krok obowiązkowy: ustawienie typów pomiaru
To najczęstszy błąd studentów, który powoduje, że potem Split by daje dziwne wyniki albo nic.
W każdej kolumnie, obok nazwy, jest ikonka typu pomiaru. Dwuklik na nagłówku → otwiera panel, gdzie możecie zmienić:
- ID — unikalny identyfikator (np. nazwa powiatu, numer respondenta). Nie używane w analizach, tylko do identyfikacji wiersza.
- Nominal — kategoria bez porządku (typ_powiatu, województwo, płeć). Używajcie tego dla grupowania.
- Ordinal — kategoria z porządkiem (wykształcenie, oceny od 1 do 5 gdy są skalą).
- Continuous — zmienna liczbowa (przestępstwa_ogółem, ludność, wiek).
Dlaczego to ważne: Split by w Descriptives przyjmuje tylko zmienne Nominal / Ordinal. Jeśli zostawicie tekstową kolumnę z domyślnym typem (Continuous albo ID), pole Split by będzie puste albo zwróci bezsensowne wyniki.
Analyses → Exploration → Descriptives
To główne narzędzie do statystyk opisowych. Okno jest proste, ale warto wiedzieć, co robi każde pole:
- Variables — zmienne, których statystyki chcecie. Mogą być 1, 2 lub 10.
- Split by — zmienna kategorialna. Wyniki policzą się dla każdej grupy osobno.
- Frequency tables — zaznaczcie dla zmiennych Nominal, jeśli chcecie dowiedzieć się, ile jest wierszy każdej kategorii.
Panel Statistics
Rozwińcie strzałką. Standardowo zaznaczone: N, Missing, Mean, Median, Minimum, Maximum. Dla analizy dziennikarskiej warto dodać:
- Std. deviation — miara rozrzutu. Duża SD = duża różnorodność w grupie; mała SD = grupa jednorodna.
- Skewness (skośność) — kluczowa dla wyboru skali na wykresie:
- Skośność bliska 0 → rozkład symetryczny → skala liniowa na wykresie OK
- Skośność > 1 → silnie prawoskośny (kilka dużych wartości ciągnie średnią) → rozważcie skalę logarytmiczną lub kwantyle
- Skośność < −1 → silnie lewoskośny → to samo w drugą stronę
- Sum — suma wartości per grupa. Przydatna, kiedy chcecie sumować liczby (np. ruch graniczny), a nie je uśredniać.
- Quartiles — 25., 50. (mediana), 75. percentyl. Pozwala zobaczyć rozkład bez rysowania histogramu.
Mediana vs średnia — kiedy bardzo się różnią, w danych jest outlier. To sygnał, który warto zawsze komentować: „średnia 525, mediana 48 — typowe wartości są niskie, ale kilka ekstremalnie wysokich ciągnie średnią w górę.”
Panel Plots
Rozwińcie. Standardowe opcje:
- Histogram — rozkład zmiennej ciągłej. Pokazuje kształt (normalny, skośny, bimodalny).
- Box plot — mediana + kwartyle + wartości odstające. Idealny przy Split by — widzicie od razu, która grupa ma wyższe wartości i więcej outlierów.
- Q-Q plot — rzadko potrzebny w dziennikarstwie, głównie do sprawdzania założeń testów statystycznych.
Boxplot z Split by to najefektywniejszy wykres eksploracyjny — jeden rzut oka mówi wam wszystko o różnicach między grupami.
Frequencies — gdy patrzycie na kategorie
Dla pytań typu „ile obserwacji per kategoria?“ używajcie:
- Analyses → Frequencies → Frequency Tables (N Outcomes) dla jednej zmiennej
- Frequencies → Contingency Tables dla krzyżowej tabeli dwóch zmiennych
Contingency Tables — uwaga na Counts
Domyślnie Contingency Tables liczy wiersze. Jeśli chcecie krzyżową tabelę sum wartości (np. Odcinek × Kierunek z sumą ruchu), wrzućcie zmienną liczbową do pola Counts w panelu poniżej.
Kiedy jest to nieoczywiste i jamovi nie robi tego prosto:
- Opcja 1: dodajcie computed column (prawy klik na dowolnym nagłówku → Add Variable → NEW COMPUTED VARIABLE) z formułą typu
IF(Kierunek == 'przyjazd', Razem, 0), i jeszcze jedną dla wyjazd. Wtedy Descriptives z Split by i zaznaczonym Sum da wam to, czego szukaliście. - Opcja 2: użyjcie filtrów (ikona lejka u góry arkusza) — odfiltrujcie jedną wartość, uruchomcie Descriptives, zapiszcie wyniki, zmieńcie filtr, uruchomcie ponownie.
Sortowanie i rankingi
Jamovi nie ma funkcji sortowania danych (to jest świadoma decyzja — jamovi nie zmienia kolejności wierszy, żeby analizy pozostały reprodukowalne). Dla rankingów top 10 macie trzy opcje:
- Kliknijcie na nagłówek kolumny → strzałka sortująca w widoku. Kolejność wierszy w arkuszu się nie zmienia, ale widzicie rankingi. Skopiujcie top 10 do notatnika.
- Otwórzcie CSV w Excelu / Google Sheets, posortujcie, zapiszcie top 10.
- Filtrem ograniczcie widok do „wartość > X” i patrzcie, ile spełnia warunek.
Dla zaliczenia tego ćwiczenia wystarczy pierwsza lub druga opcja.
Computed columns — pomocny, kiedy potrzebny
Dodanie nowej zmiennej wyliczonej z innych:
- Prawy klik na nagłówku dowolnej kolumny → Add Variable → NEW COMPUTED VARIABLE
- Nazwa i typ pomiaru (zwykle Continuous)
- Formuła: standardowe operatory (
+,-,*,/), funkcjeIF(warunek, wartość_true, wartość_false),MEAN(...),SUM(...)
Typowe zastosowania w dziennikarstwie:
- Wskaźnik per capita:
przestepstwa_ogółem / ludność * 100000 - Recoding kategorii:
IF(ludność > 500000, 'duże miasto', 'małe') - Filtrowanie warunkowe sum:
IF(typ_powiatu == 'miejski', wartość, 0)
Computed columns są automatyczne — jeśli zmienicie wartość w kolumnie źródłowej, wyliczona zaktualizuje się natychmiast.
Filtry — czasowe zawężenie widoku
Ikona lejka u góry arkusza. Filtry nie usuwają wierszy — tylko ukrywają je na czas analiz. Kiedy filtr jest aktywny, wszystkie Descriptives, Frequencies, wykresy liczą się na podzbiorze.
Formuła filtru to wyrażenie boolowskie: Kto_pelne == 'Cudzoziemcy' and Odcinek != 'z Republiką Federalną Niemiec'.
Zastosowania w ćwiczeniu: jeśli chcecie analizować tylko ziemskie powiaty albo tylko granicę z Ukrainą — filtr robi to natychmiast, bez edytowania danych.
Eksport wyników
Każda tabela / wykres w panelu wyników po prawej stronie ma menu kontekstowe (prawy klik):
- Copy — do schowka, można wkleić do Worda / Google Docs jako obraz
- Export → PDF / PNG / HTML — do pliku
- Save data as… — zapisać cały plik jako CSV z dodanymi computed columns
Wyniki nie są w formacie do bezpośredniej publikacji (wyglądają statycznie, APA) — jamovi nie jest narzędziem wizualizacyjnym. Do publikacji eksportujcie do Datawrapper.
Na co zwracać uwagę przy analizie dziennikarskiej
Porównujcie medianę ze średnią
- Bliskie → rozkład symetryczny, średnia jest dobrym opisem
- Średnia >> mediana → silnie prawoskośny, mediana bardziej reprezentatywna dla typowego przypadku
- W dziennikarstwie: jeśli piszecie „przeciętny powiat ma X przestępstw”, prawie zawsze chcecie mediany, nie średniej
Sprawdzajcie skośność przed wyborem skali
Skośność > 1 mówi wam, że liniowa skala na wykresie spłaszczy 90 % danych. To decyzja wizualizacyjna, która zapada w Części 1, zanim dotkniecie Datawrapper.
Dzielcie grupy przez Split by, zanim coś zsumujecie
Średnia krajowa ukrywa różnice. Jeśli macie kategorię grupującą (typ_powiatu, województwo, płeć), Split by w Descriptives pokaże, czy historia jest jedna, czy różna per grupa.
Wartości odstające to często historia
Boxplot z kropkami poza wąsami nie jest „błędem w danych” — może być sercem artykułu. W ćwiczeniu powiat, który wyraźnie odstaje per capita, jest właśnie tym, o czym warto pisać.
Częste problemy i rozwiązania
| Problem | Rozwiązanie |
|---|---|
| Split by jest puste / szare | Zmienna, którą tam wrzucacie, musi być Nominal lub Ordinal. Dwuklik na nagłówku → zmień typ. |
| Wszystkie wartości to “N/A” | Jamovi rozpoznał kolumnę jako text. Dwuklik → typ Continuous. |
| Polskie znaki wyświetlają się dziwnie | Zapiszcie CSV w UTF-8 (np. w VS Code → Save with Encoding). |
| Brakuje funkcji / modułu | Modules → jamovi library → darmowe dodatki (np. jAMM, scatr). Aktywujcie jednym kliknięciem. |
| Wyniki znikają po zamknięciu pliku | File → Save → plik .omv zachowuje dane + wszystkie analizy + wykresy. Otwarcie go przywraca stan. |
Przydatne zasoby
- Dokumentacja jamovi — oficjalna, darmowa, po angielsku
- User Guide na YouTube — oficjalne filmy (po angielsku)
- Learning Statistics with jamovi — darmowy podręcznik Danielle Navarro, od podstaw
- Forum: forum.jamovi.org — deweloperzy odpowiadają osobiście, również na pytania niepubliczne (przez formularz)