.

Сделать репост в соц сети!

воскресенье, 10 марта 2019 г.

Гарри Поттер и Rstudio. Возможности языка R для различных целей





Язык программирования R используется для статистической обработки данных и работы с графикой. С его помощью можно сделать серьезные расчеты и несерьезные, например, те, что Вы увидите в данном посте. Для ясности, эту работу делал новичок в R с целью выработки навыков работы с программой, поэтому, если у Вас есть дополнения или критика, пожалуйста, напишите в комментариях.

Так как я поклонница вселенной Гарри Поттера, мне пришла в голову мысль поработать с какими-нибудь данными, связанными с фильмами о «Мальчике, который выжил».
Хотите узнать насколько кассовые сборы фильмов о Гарри Поттере больше, чем бюджет, затраченный на их съемки? Также я поставила перед собой цель проверить гипотезу о том, что, чем больше бюджет фильма, тем выше кассовые сборы от него.
Загрузим с Википедии таблицу с данными:
library(rvest)
page <- "https://ru.wikipedia.org/wiki/%D0%93%D0%B0%D1%80%D1%80%D0%B8_%D0%9F%D0%BE%D1%82%D1%82%D0%B5%D1%80_(%D1%81%D0%B5%D1%80%D0%B8%D1%8F_%D1%84%D0%B8%D0%BB%D1%8C%D0%BC%D0%BE%D0%B2)"
kino <- html_table(html_nodes(read_html(page), "table") [[3]], header = TRUE, fill = TRUE, dec=".")
Загруженный датасет, которому я присвоила имя «kino», имеет вид:

Вы наверняка заметили, что таблица загрузилась не в том виде, в котором она представлена на странице Википедии. Выполним небольшие преобразования (удалим ненужные столбцы и строки, дадим новые имена столбцам и др.):
kino <- kino[-c(1,10:12),-7]
kino= `colnames<-`(kino, c('Фильм',"Сборы в США", "Сборы в других странах", "Всего сборы","Бюджет","Год"))
row.names(kino)=c(1:nrow(kino))
kino$`Сборы в США` <- as.numeric(gsub("\\D", "", kino[,2]))/1000000
kino$`Сборы в других странах` <- as.numeric(gsub("\\D", "", kino[,3]))/1000000
kino$`Всего сборы` <- as.numeric(gsub("\\D", "", kino[,4]))/1000000
kino$Бюджет <- as.numeric(gsub("\\D", "", kino[,5]))/1000000
 Теперь датасет выглядит намного лучше (единица измерения - млн долл.):
                            

Посмотрим summary(kino):
Из сводки видно, что максимальная сумма, потраченная на съемки фильма (столбец «Бюджет») равна 250 млн долл., а минимальная сумма кассовых сборов (столбец «Всего сборы») более 796 млн. долл. Выгода – более, чем в 3 раза.
Давайте визуализируем данные о бюджете всех фильмов:
library(ggplot2)
ggplot(data=kino, aes(x=Фильм, y=Бюджет)) +geom_col(size=2, fill="pink3",color = 'black') +   geom_text(aes(label=Бюджет), size=5, vjust = -0.5, hjust = 0.5) +  theme_minimal(base_size = 20) +   theme(axis.text.x = element_text(angle = 90, hjust = 1)) 


          Точечная диаграмма между «Бюджетом» и «Всего сборами» представлена ниже. Цифры рядом с точками означают порядковый номер фильма из датасета «kino».
ggplot(data=kino, aes(x=`Всего сборы`, y=Бюджет)) +geom_count(size=4, fill="pink3",color = 'black') +   geom_text(aes(label=rownames(kino)), size=6, vjust = -0.5, hjust = 0.5) +  theme_grey(base_size = 20) +   theme(axis.text.x = element_text(angle = 90, hjust = 1))+  scale_x_continuous(breaks = round(seq(700, 1400, by = 100),0),    limits = c (700, 1400))


Если рассмотреть общую сумму бюджета всех 8 фильмов и общую сумму кассовых сборов, то мы получим такой «пирог»:
a <- t(data.frame(sum(kino$Бюджет),sum(kino$`Всего сборы`)))
pie(a, labels=a[,1],col=c("cyan", "aquamarine"))

Из рисунка видно, что затраченные средства (в размере 1155 млн долл.) на съемки 8 фильмов намного меньше, чем выручка (7725 млн долл.) от них.
 Кстати говоря, мы можем использовать не только R, но и прибегнуть к помощи Excel. Сохраним датасет «kino» в рабочей директории в формате csv.
write.csv2(kino,"kino.csv")
 Нарисуем диаграмму в Excel:

И снова мы наглядно убеждаемся, что кассовые сборы намного превышают бюджет фильмов.

Чтобы проверить зависимость между бюджетом, затраченным на съемки и полученной прибылью от кассовых сборов воспользуемся коэффициентом корреляции Спирмена, так как обе выборки имеют ненормальное распределение (проверка с помощью критерия Шапиро-Уилка):
cor.test(kino$Бюджет,kino$`Всего сборы`,method="spearman")


Получается, что можно подтвердить нулевую гипотезу о том, что нет связи между бюджетом фильма и кассовыми сборами от него, слишком велико p-value (гораздо больше «положенных» 0.05 и даже «либеральных» 0.1).
 Таким образом, с помощью языка R мы провели анализ выгоды съемок фильмов о Гарри Поттере и визуализировали результаты. Надеюсь, что статья была интересной. Пишите в комментариях, а в каких целях Вы используете R.




Комментариев нет:

Отправить комментарий