Wstęp

Jonathan Phillips i Fiery Cushman zastanawiali się, w jaki sposób ludzie reprezentują możliwości i w jaki sposób o nich rozumują. Zauważyli, że sądy przyczynowe i sądy dotyczące moralności, które zwykle wymagają od nas znajomości rozmaitych możliwości, są zwykle formułowane przez ludzi bez żadnego wysiłku i bardzo szybko. Tymczasem sądy, które w sposób jawny dotyczą możliwości zajścia pewnych zdarzeń, z reguły wymagają bardziej refleksyjnego postępowania i namysłu, mentalnej symulacji rozmaitych alternatywnych, kontrfaktycznych rozumowań, itp.

Badacze postawili więc hipotezę, że istnieją dwa systemy reprezentacji mentalnej możliwości. Pierwszy, domyślny system reprezentacji, jest szybki i bardzo rudymentarny oraz inkorporuje informacje na temat preskryptywnych i deskryptywnych norm. Drugi jest bardziej dokładny, ale jego użycie wymaga od nas większego wysiłku.

W pierwszym eksperymencie Phillips i Cushman chcieli dowiedzieć się, czy istnieją rzeczywiście różnice między sądami modalnymi (dotyczącymi możliwości) związane z tym, że sądy dokonywane były po odpowiednim namyśle. W swoim eksperymencie prosili oni o ocenę, czy dane zdarzenie jest możliwe czy niemożliwe w danym kontekście. Przykładowy kontekst znajduje się poniżej:

Josh is on the way to the airport to catch a flight for a hunting safari in Africa. He leaves with plenty of time to make it there, but his car breaks down on the highway. Now Josh is sitting in his car near a busy intersection and knows he needs to get to airport soon if he is going to catch his flight.

Badani czytali 6 różnych kontekstów . Po każdym z nich prezentowano im pewne zdarzenia. Zadaniem uczestników byłow wskazanie za pomocą naciśnięcia klawisza, czy dane zdarzenie jest możliwe, czy niemożliwe. W badaniu zostały użyte zdarzenia należące do 5 kategorii:

Przykładowo:

Is it possible or impossible for Josh to:

Badani podzieleni byli na dwie grupy. W jednej grupie byli zmuszeniu do udzielenia odpowiedzi bardzo szybko (odpowiedzi < 1500 ms), w drugiej poproszeni zostali o zwiększony namysł nad możliwością każdego zdarzenia (odpowiedź > 1500 ms)

Wczytywanie pakietów

Na zajęciach będziemy korzystać z trzech pakietów. Pierwszy to pakiet tidyverse, służący do manipulacji danymi. Oprócz tego będziemy używać pakietu do tworzenia wykresów ggplot2 oraz pakietu ggpubr, który pozwala tworzyć publication ready wizualizacje danych korzystając z możliwości ggplot2.

knitr::opts_chunk$set(echo = F)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.3     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.4     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

Wczytywanie i przygotowanie danych

Dane znajdują się w pliku study1possibilityData.csv. Nas będzie interesowała kolumna responses, w której znajduje się informacja o tym, który klawisz nacisnął badany w danej próbie eksperymentalnej (f - możliwe, j - niemożliwe; musimy to przekodować), kolumna RTs, gdzie przechowywany jest czas naciśnięcia przycisku oraz kolumny, w których zakodowane mamy najważniejsze informacje o próbie - condition1, condtion2, condition3.

## Rows: 50796 Columns: 51
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (30): type, condition1, condition2, condition3, trialNo, target, stim1, ...
## dbl (13): ITI, randomBlock, subjectGroup, timestamp, RTs, correct, turkID, a...
## lgl  (8): sexOrientation, ethnicity, other1, other2, other3, other4, other5, ip
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
## Warning: There was 1 warning in `mutate()`.
## ℹ In argument: `LogRTs = log(RTs)`.
## Caused by warning in `log()`:
## ! wyprodukowano wartości NaN

Rodzaje wykresów dostępnych w ggpubr

Wykresy dla jednej zmiennej

Histogramy

Na początek zadamy sobie pytanie, na które niekoniecznie znajdziemy odpowiedź w tekście. Jak wyglądały rozkłady czasów odpowiedzi dla poszczególnych warunków eksperymentalnych? Rozkłady te możemy przedstawić na serii histogramów.

## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.

## Warning: Using `bins = 30` by default. Pick better value with the argument
## `bins`.

Wykresy gęstości

Jeśli histogramy wydają nam się zbyt prymitywną formą wizualizacji, możemy stworzyć wykres gęstości. Idea tego wykresu jest bardzo podobna jak histogramu; można ten wykres traktować jako “wygładzoną” wersję histogramu. Zasadniczo, jeśli chcemy być bardziej techniczni, to wykres ten rysuje nam krzywą gęstości prawdopodobieństwa dla naszego rozkładu, którą estymuje za pomocą estymatora jądrowego gęstości.

Wykresy dla dwóch zmiennych X i Y gdzie X jest dyskretna a Y porządkowa

Wykres pudełkowy

Standardowy wykres pudełkowy. W tym wypadku wykresy pudełkowe nie będą wyglądały zbyt dobrze ze względu na bardzo długi ogon rozkładów bardzo dużą niesymetryczność. Mimo to stworzymy wykres pudełkowy obrazujący rozkład czasów reakcji dla poszczególnych rodzajów zdarzeń. Zobaczymy również, czy użycie logarytmu z czasu zamiast czasu sprawia, że dane wyglądają inaczej.

Wykres skrzypcowy

Wykres skrzypcowy to “nowoczesny” odpowiednik wykresu pudełkowego. Możemy bardzo łatwo przerobić stworzony przez nas przed chwilą wykres pudełkowy na wykres skrzypcowy. Ba! Możemy nawet połączyć je w jeden wykres!

Wykres liniowy

Z reguły w tym rodzaju wykresu punktom odpowiadają jakieś zagregowane statystyki (np. średnia, mediana, itp.). Zadadniczo wykres taki lepszy jest od wykresu słupkowego wówczas, gdy 0 nie ma żadnej interesującej teoretycznie interpretacji. W tym wypadku stworzymy wykres punktowy obrazujący średni czas reakcji dla poszczególnych warunków eksperymentalnych. Spróbujemy również nałożyć na wykres wyniki odpowiednich porównań statystycznych. Na potrzeby zadania założymy, że interesują nas porównania średnich czasów reakcji dotyczące następujących grup:

  • “impossible” i “possible”
  • “impossible” i “improbable”
  • “impossible i”immoral”
  • “irrational” i “improbable”

Wykres słupkowy

Na tym wykresie słupkowym będziemy chcieli zreplikować Fig 1. z artykułu. Wysokość słupka odpowiada % zdarzeń ocenionych przez badanych jako niemożliwe. Każdy z 5 paneli przedstawia inną kategorię zdarzeń a dwa kolory słupków odpowiadają dwóm warunkom eksperymentalnym (odpowiadaniu szybkiemu i z namysłem).

Figure 1 z artykułu
Figure 1 z artykułu
## Warning: Removed 2463 rows containing non-finite values (`stat_summary()`).

Wykresy dla dwóch zmiennych ciągłych

ggpubr pozwala robić ładne wykresy rozrzutu. W tym przykładzie przeanalizujemy zależność między wiekiem (age) a średnim czasem odpowiedzi dla każdego uczestnika badania (turkID).

Wykres rozrzutu

## `summarise()` has grouped output by 'turkID', 'Condition'. You can override
## using the `.groups` argument.

Wykres rozrzutu z histogramami brzegowymi

Bardziej fancy wersją zwykłego wykresu rozrzutu jest wykres rozrzutu, w którym na marginesach osi dodajemy dodatkowe informacje dla obu zmiennych (wykresy gęstości, wykresu pudełkowe, histogramy). W tym przykładzie zrobimy taki wykres dla badanych z warunku refleksyjnego, używając jako koordynatów punktów tych samych zmiennych, co na poprzednim wykresie.

## `summarise()` has grouped output by 'turkID', 'Condition', 'age'. You can
## override using the `.groups` argument.