---
title: "Pixar Film Ratings"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{pixar_film_ratings}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

## Overview

This vignette is to recreate an analysis on Pixar ratings that can be found
[here](https://pierrecom.github.io/Pixars%20Movies.html).


```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
```


## Setup

```{r setup, warning=FALSE}
library(pixarfilms)
library(dplyr)
library(tidyr)
library(forcats)
library(ggplot2)
library(irr)
```


## Data wrangling

Before we can visualize our data, let's wrangle our data to help us visualize it
later on.

```{r}
df <-
  public_response %>%
  select(-cinema_score) %>%
  mutate(film = fct_inorder(film)) %>%
  pivot_longer(cols = c("rotten_tomatoes", "metacritic", "critics_choice"),
               names_to = "ratings",
               values_to = "value") %>%
  mutate(ratings = case_when(
    ratings == "metacritic" ~ "Metacritic",
    ratings == "rotten_tomatoes" ~ "Rotten Tomatoes",
    ratings == "critics_choice" ~ "Critics Choice"
  )) %>%
  drop_na()
```


## Ratings over time

Their first plot was comparing the Pixar films' ratings over time.

```{r fig.height=5, fig.width=6}
df %>%
  ggplot(aes(x = film, y = value, col = ratings)) +
  geom_point() +
  geom_line(aes(group = ratings)) +
  scale_color_brewer(palette = "Dark2") +
  labs(x = "Pixar film", y = "Rating value") +
  guides(col = guide_legend(title = "Ratings")) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5),
        legend.position = "bottom") 
```


**Verdict**: people and critics generally agree that Cars 2 was not as good as
the other Pixar films.


## Ratings by rating group

Next, let's group the rating categories to see if there is a consistency across.

```{r fig.height=6, fig.width=5}
df %>%
  ggplot(aes(x = ratings, y = value, col = ratings)) +
  geom_boxplot(width = 1.75 / length(unique(df$ratings))) +
  ggbeeswarm::geom_beeswarm() +
  ggrepel::geom_text_repel(data = . %>%
                             filter(film == "Cars 2" ) %>%
                             filter(ratings == "Rotten Tomatoes"),
                           aes(label = film),
                           point.padding = 0.4) +
  scale_color_brewer(palette = "Dark2") +
  guides(col = guide_legend(title = "Ratings")) +
  labs(x = "Rating group", y = "Rating value") +
  ylim(c(30, 100)) +
  theme_minimal() +
  theme(legend.position = "bottom") 
```


**Verdict**: people at Rotten Tomatoes generally like Pixar films more than
Metacritic and Critics Choice. The exception to this is Cars 2, which rated the
lowest out of all critic groups.


## Rating consistency

Are the groups statistically consistent? Let's perform
[an interclass correlation](https://en.wikipedia.org/wiki/Intraclass_correlation)
among the different critic groups.

```{r}
public_response %>%
  select(-c(cinema_score, film)) %>%
  drop_na() %>%
  icc(model = "twoway", type = "consistency")
```

**Verdict**: with a null hypothesis that all critic groups are not consistent,
for the 21 Pixar films we have data for all critic groups, all groups are
consistent in rating Pixar films (p < 0.001).


## Session information

```{r}
sessionInfo()
```

