--- title: 'Różne rodzaje wykresów w `ggpubr` na podstawie Study 1 z artykułu "Morality constrains the default representation of what is possible", Jonathan Phillips & Fiery Cushman' author: "Bartosz Maćkiewicz na zajęcia Statystyka I z R" output: html_document editor_options: chunk_output_type: console --- # 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: - [(a)] 48 "zwykłe" zdarzenia, które nie naruszały żadnych norm - [(b)] 24 zdarzenia, które naruszały normy statystyczne - [(c)] 24 zdarzenia, które naruszały prawa fizyki - [(d)] 24 zdarzenia, które naruszały normy moralne - [(e)] 24 zdarzenia, które naruszały normy racjonalności Przykładowo: *Is it possible or impossible for Josh to:* - [(a)] *hail a taxi at the intersection* - [(b)] *fix his car by banging on it* - [(c)] *teleport himself to the airport* - [(d)] *sneak onto public transportation* - [(e)] *sell his car for a ride to the airport* 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`. ```{r} library(tidyverse) library(ggplot2) library(ggpubr) ``` # 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`. ```{r} study1 <- read_csv("study1possibilityData.csv") study1 <- study1 %>% mutate( Judgment = case_when( responses == "f" ~ 0, responses == "j" ~ 1, responses == "99" ~ NA ), LogRTs = log(RTs), Condition = condition3, KindOfEvent = condition1 ) %>% filter(Condition != "na") ``` # 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. ```{r} # Tutaj miejsce na kod ``` ### 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. ```{r} # Tutaj miejsce na kod ``` ## 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. ```{r} # Tutaj miejsce na kod ``` ### 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! ```{r} # Tutaj miejsce na kod ``` ### 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" ```{r} # Tutaj miejsce na kod ``` ### 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](https://www.pnas.org/cms/10.1073/pnas.1619717114/asset/674f0a7b-8895-44da-9564-285378ef5c30/assets/graphic/pnas.1619717114fig01.jpeg) ```{r} # Tutaj miejsce na kod ``` ## 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 ```{r} # Tutaj miejsce na kod ``` ### 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. ```{r} # Tutaj miejsce na kod ```