Özet

Bu çalışmada İngilizce filmlerin yıl bazında özellikleri ile IMDB sitesinde izleyicilerden aldıkları puanların arasında ilişki olup olmadığının analizi yapılmıştır. Filmlerin kadın ve erkek oyuncuları, yapımcı ülke, filmin türü, filmin uzunluğu ve harcanan bütçe, gişe hasılatı ilgili özellikler olarak kullanılmıştır. Kategorik değişkenler için nokta grafikleri çizdirilmiş ve analizi yapılmıştır. Bütçe, filmin uzunluğu ve gişe hasılatı değişkenleri ise ayrı ayrı basit doğrusal regresyon modeline girdi olarak kabul edilmiş ve IMDB puanları ile bu ilişkilerinin olup olmadığı incelenmiştir.

Hazırlık

Projede grafikler ggplot kullanılarak üretilmiştir. Öncelikle bazı temel ayarların yapılmasına gerekmektedir.

options(stringsAsFactors=FALSE)
options(repos="http://cran.rstudio.com/")
options(dplyr.width = Inf)
options(scipen = 7)

Daha sonra gerekli paketler yüklenmesi ve okutulması gerekmektedir.

install.packages("devtools")
install.packages("tidyverse")
library(tidyverse)

Analiz

İlk olarak kategorik değişkenler kullanılarak nokta grafikleri çizdirilmiş ve yorumlanmıştır.

Nokta Grafikleri

movies=read.csv("movies.csv",header=TRUE,sep=",")
dat= movies %>%
  select(country,title_year,imdb_score) %>%
  filter(country=="USA" | country=="UK" | country=="Canada" | country=="France" | country=="Germany")

film_degerlendirme <-
  ggplot(data=dat,aes(x=title_year,y=imdb_score)) + geom_point(aes(color=country),size=2)

film_degerlendirme +
labs(x = "Yıllar",
     y="IMDB Puanı",
     title="Ülkelerin Yıllara Göre IMDB Puanları",
     color="Ülke") +
  theme(legend.position="top",
        plot.title=element_text(hjust=0.5))

Yukarıdaki grafikte görüldüğü üzere ilk IMDB’de puanlanan film sayısı oldukça azdır. Yıllar ilerledikçe teknolojinin ilerlemesi film endüstrisinde de gelişmesine olanak sağlamış ve değerlendirilen filmler artmıştır. Aynı zamanda bu değerlendirmeler filmleri izlemek isteyenler veya kritikleri için de oldukça önem kazanmıştır. Son yıllarda da sektörü Amerikan ve İngiliz filmlerinin domine ettiklerini görüyoruz. Bu etkiyi daha net görebilmek için Amerika ve İngiltere’nin 1992 yılından günümüze kadar piyasaya sürdükleri ve IMDB’de puanlanan filmlerin çizgi grafiğini oluşturuldu.

datusa= movies %>%
  filter(country=="USA"&title_year>1991) %>%
  group_by(title_year)%>%
  summarise(
    sayi=n()
  )


datuk= movies %>%
  filter(country=="UK"&title_year>1991) %>%
  group_by(title_year)%>%
  summarise(
    sayi=n()
  )

datc=cbind(datusa,datuk[-1])
film_degerlendirme=ggplot(data=datc,aes(x=title_year)) + geom_line(aes(y=datc[2],color="USA"),size=2) + geom_line(aes(y=datc[3],color="UK"),size=2)

film_degerlendirme +
  labs(x = "Yıllar",
       y="Film Sayısı",
       title="Ülkelerin Yıllara Göre Film Sayıları",
       color="Ülke") +
  theme(legend.position="top",
        plot.title=element_text(hjust=0.5))

Sektörü domine eden bu iki ülke içinde de Amerikan üretimi filmlerin sayı olarak gözle görülebilir bir fazlalığı bulunmaktadır.

datm= movies %>%
  select(actor_1_name,title_year,imdb_score,genres) %>%
  filter(actor_1_name=="Johnny Depp" | actor_1_name=="Tom Cruise" | actor_1_name=="Robert Downey Jr." | actor_1_name=="Leonardo DiCaprio" | actor_1_name=="Nicolas Cage")

film_degerlendirme <-
  ggplot(data=datm,aes(x=title_year,y=imdb_score)) + geom_point(aes(color=genres,shape=actor_1_name),size=2)

film_degerlendirme +
  labs(x = "Yıllar",
       y="IMDB Puanı",
       title="Erkek Oyuncuların Rol Aldığı Filmlerin IMDB Puanları",
       color="Tür",
       shape="Oyuncu") +
  theme(legend.position="top",
        plot.title=element_text(hjust=0.5))+
        guides(shape=guide_legend(nrow=2))

Yukarıdaki grafikte erkek oyuncuların rol aldığı filmlerin IMDB puanları gösterilmiştir. Grafikte oyuncular farklı şekillerle ifade edilirken, film türleri de farklı renklerle ifade edilmiştir. Son yıllarda Leonardo DiCaprio’nun rol aldığı filmlerin türden bağımsız olmak üzere IMDB puanları açıkça yükselmiştir. Ayrıca yaşının da artması ile Nicolas Cage’in artık aksiyon filmlerinde oynamaması ve drama filmlerine ağırlık vermesi gerektiği izleyici tarafından söylenmektedir. Ayrıca oyuncu çeşitliliğinin artarken film çeşitliği de artmaktadır.

datw= movies %>%
  select(actor_1_name,title_year,imdb_score,genres) %>%
  filter(actor_1_name=="Jennifer Lawrence" | actor_1_name=="Scarlett Johansson" | actor_1_name=="Angelina Jolie Pitt" | actor_1_name=="Emma Stone" | actor_1_name=="Anne Hathaway")

film_degerlendirme <-
  ggplot(data=datw,aes(x=title_year,y=imdb_score)) + geom_point(aes(color=genres,shape=actor_1_name),size=2)

film_degerlendirme +
  labs(x = "Yıllar",
       y="IMDB Puanı",
       title="Kadın Oyuncuların Rol Aldığı Filmlerin IMDB Puanları",
       color="Tür",
       shape="Oyuncu") +
  theme(legend.position="top",
        plot.title=element_text(hjust=0.5))+
        guides(shape=guide_legend(nrow=2))

Leonardo DiCaprio’nun yerini kadın oyuncularda Jennifer Lawrence doldurmaktadır. Her türde oynadığı filmlerde aktris izleyici tarafından oldukça beğenilmektedir. Emma Stone ise drama alanında en beğenilen film oyuncusu iken sanırız kendisi pek komik bir oyuncu değil ki 2010 yılındaki filmi ile 5 puanın altında kalmıştır.

Basit Doğrusal Regresyon

Başlangıçta bütçe değişkeni kafamızı karıştırsa da filmin uzunluğunun ve gişe hasılatının IMDB puanlamasına doğrusal bir etki etmediğinden şüphelendik.

movies$budget=scales::rescale(movies$budget,to=c(0,10))
regression1=lm('imdb_score~budget',movies)

summary(regression1)
## 
## Call:
## lm(formula = "imdb_score~budget", data = movies)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.7908 -0.5972  0.1064  0.7195  2.8939 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  6.37413    0.02291 278.236  < 2e-16 ***
## budget       0.07679    0.02321   3.309 0.000947 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.05 on 3704 degrees of freedom
## Multiple R-squared:  0.002947,   Adjusted R-squared:  0.002677 
## F-statistic: 10.95 on 1 and 3704 DF,  p-value: 0.0009467
budgetg=ggplot(movies, aes(x=budget, y=imdb_score)) + geom_point(shape=1) + geom_smooth(method=lm, se=FALSE)

budgetg +
  labs(x = "Bütçe",
       y="IMDB Puanı",
       title="Bütçenin IMDB Puanları Üzerindeki Etkisi"
       ) +
  theme(legend.position="top",
        plot.title=element_text(hjust=0.5))   

Öncelikle harcanan paralar milyonlarla ölçüldüğü için bütçenin etkisinin görülebilmesi için değişken 1 ile 10 arasında ölçeklendirilmiştir. Çıkan sonuçlardan görüldüğü üzere doğrusal modelin katsayıları istatistiksel olarak anlamlı görülmesine rağmen bütçe değişkeninin katsayısı 0 kabul edilebilecek kadar küçüktür. Ayrıca \(R_{adj}^2=0.0027\) çok küçük olduğu için doğrusal modelin ilişkiyi doğru yansıtmadığı sonucu çıkarılabilir.

movies$duration=scales::rescale(movies$duration,to=c(0,10))
regression2=lm('imdb_score~duration',movies)

summary(regression2)
## 
## Call:
## lm(formula = "imdb_score~duration", data = movies)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.9186 -0.5559  0.0910  0.6604  2.7148 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  5.10426    0.05691   89.69   <2e-16 ***
## duration     0.51683    0.02138   24.17   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9769 on 3704 degrees of freedom
## Multiple R-squared:  0.1362, Adjusted R-squared:  0.136 
## F-statistic: 584.2 on 1 and 3704 DF,  p-value: < 2.2e-16
durationg=ggplot(movies, aes(x=duration, y=imdb_score)) + geom_point(shape=1) + geom_smooth(method=lm, se=FALSE)    
durationg +
  labs(x = "Film Süresi",
       y="IMDB Puanı",
       title="Film Süresinin IMDB Puanları Üzerindeki Etkisi"
  ) +
  theme(legend.position="top",
        plot.title=element_text(hjust=0.5))

İkinci olarak film süresinin etkisi incelenmiştir. Aynı ölçeklendirme bu değişken için de uygulanmıştır. Uzun süren filmlerin izleyiciyi sıkıcağını ve bu nedenle uzun filmlerin düşük IMDB puanları alacağını düşünsek de böyle bir ilişki gözlemlenmemiştir. Ancak \(R_{adj}^2=0.136\) bütçe modelinden biraz daha yüksek çıkmıştır.

movies$gross=scales::rescale(movies$gross,to=c(0,10))
regression3=lm('imdb_score~gross',movies)

summary(regression3)
## 
## Call:
## lm(formula = "imdb_score~gross", data = movies)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.8957 -0.5785  0.0891  0.7273  2.9668 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  6.23000    0.02097  297.14   <2e-16 ***
## gross        0.27680    0.01801   15.37   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.019 on 3704 degrees of freedom
## Multiple R-squared:  0.05996,    Adjusted R-squared:  0.0597 
## F-statistic: 236.2 on 1 and 3704 DF,  p-value: < 2.2e-16
gise=ggplot(movies, aes(x=gross, y=imdb_score)) + geom_point(shape=1) + geom_smooth(method=lm, se=FALSE)     
gise +
  labs(x = "Gişe Hasılatı",
       y="IMDB Puanı",
       title="Gişe Hasılatının IMDB Puanları Üzerindeki Etkisi"
  ) +
  theme(legend.position="top",
        plot.title=element_text(hjust=0.5))