0.1 Libraries and Setup

0.2 Industri Perfilman dan IMDb Rating

Selama beberapa dekade terakhir, teknologi telah maju di segala bidang. Sejak itu, banyak industri telah mencari beberapa cara-cara inovatif untuk mengembangkan bisnis mereka, yang memainkan peran penting dalam perekonomian suatu negara. Di beberapa negara, ekonomi kreatif memainkan peran penting. Di Inggris, pelopor pengembangan ekonomi kreatif, sistem ekonomi ini tumbuh rata-rata 9% per tahun. Jauh di atas rata-rata pertumbuhan ekonomi negara itu, yang hanya 2% -3%. ekonomi kreatif menyumbang pangsa pendapatan nasional hingga 8,2% atau 12.6 Milyar Dolar. Ini adalah sumber terbesar kedua dari pendapatan negara setelah sektor keuangan, dan bahkan melampaui pendapatan dari industri manufaktur serta minyak dan gas. Industri kreatif diperkirakan akan tumbuh 5% per tahun dan akan tumbuh dari 2,2 triliun dolar amerika pada Januari 2000 menjadi 6,1 triliun dolar amerika pada tahun 2020. Dengan peningkatan yang cukup signifikan ini para pelaku industri kreatif harus menemukan strategi yang baik untuk memperoleh hasil yang maksimal.

Internet Movie Database (IMDb) adalah situs web yang menyediakan informasi mengenai film dari seluruh dunia, termasuk orang-orang yang terlibat di dalamnya mulai dari aktor/aktris, sutradara, penulis sampai penata rias dan musikus.

Data yang digunakan kali ini adalah data yang memuat rating film beserta popularitas director dan actor yang terlibat didalamnya serta budget dan pendapatan dari sebuah film. Melalui data ini akan dilihat seberapa besar pengaruh popularitas elemen sebuah film terhadap rating yang dikeluarkan IMDb, serta apakah ada pengaruh yang signifikan antara imdb dan pendapatan dari sebuah produksi film

0.3 Pre Processing Data

imdb  <- read.table("IMDB.csv", header = T, sep = ";")
## Warning in scan(file = file, what = what, sep = sep, quote = quote, dec =
## dec, : EOF within quoted string
## Warning in scan(file = file, what = what, sep = sep, quote = quote, dec =
## dec, : number of items read is not a multiple of the number of columns
imdb <- imdb %>%
  filter(title_year > 2004)
imdb.u <- imdb[,c(1,3,5,9,10,11,12,13,14,18,19,21)]
imdb.u <- imdb.u %>% 
  filter(complete.cases(.))%>%
  filter(title_year > 2004)%>%
  mutate(net = gross - budget)

0.4 Korelasi Antar Variabel

Plot Korelasi diperlukan untuk melihat indikasi awal variabel-variabel yang saling berpengaruh

ggcorr(imdb.u)
## Warning in ggcorr(imdb.u): data in column(s) 'movie_title' are not numeric
## and were ignored

Berdasarkan Plot korelasi diatas akan ditinjau lebih lanjut pengaruh antara IMDb rating terhadap Pendapatan bersih serta variabel-variabel yang berpengaruh terhadap IMDb rating.

0.5 Pengaruh IMDb Rating terhadap Pendapatan Bersih Film

net.model <- lm(net~imdb_score,imdb.u)
summary(net.model)
## 
## Call:
## lm(formula = net ~ imdb_score, data = imdb.u)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
## -564046896  -15006136   -5745743    8168852  517651884 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)  
## (Intercept) -11524973    9417488  -1.224   0.2213  
## imdb_score    2593871    1438776   1.803   0.0717 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 51230000 on 1076 degrees of freedom
## Multiple R-squared:  0.003012,   Adjusted R-squared:  0.002085 
## F-statistic:  3.25 on 1 and 1076 DF,  p-value: 0.07169

Menggunakan model regresi didapatkan bahwa IMDb berpengaruh terhadap Pendapatan Bersih dari Film pada tingkat kepercayaan 90% sehingga IMDb rating merupakan variabel yang penting dalam mengoptimalkan pendapatan perusahaan film. Hal ini tidak terlepas dari kebiasaan dari hampir seluruh penonton film selaku konsumen yang melihat terlebih dahulu rating dari sebuah film dari website IMDb sebelum menentukan film yang akan ditonton. ## Prediksi IMDb Menggunakan Model Regresi

imdb.r <- imdb.u[,-c(1,2)]
lm.all <- lm(imdb_score ~., imdb.r)
step(lm.all, direction="both")
## Start:  AIC=161.13
## imdb_score ~ director_facebook_likes + cast_total_facebook_likes + 
##     movie_facebook_likes + num_critic_for_reviews + num_voted_users + 
##     facenumber_in_poster + num_user_for_reviews + budget + gross + 
##     net
## 
## 
## Step:  AIC=161.13
## imdb_score ~ director_facebook_likes + cast_total_facebook_likes + 
##     movie_facebook_likes + num_critic_for_reviews + num_voted_users + 
##     facenumber_in_poster + num_user_for_reviews + budget + gross
## 
##                             Df Sum of Sq    RSS    AIC
## - num_voted_users            1    0.0202 1228.8 159.15
## - cast_total_facebook_likes  1    0.0500 1228.8 159.18
## - budget                     1    0.7012 1229.5 159.75
## - movie_facebook_likes       1    2.1711 1231.0 161.04
## <none>                                   1228.8 161.13
## - num_critic_for_reviews     1    2.4148 1231.2 161.25
## - facenumber_in_poster       1    2.4461 1231.2 161.28
## - director_facebook_likes    1    6.0775 1234.9 164.45
## - num_user_for_reviews       1    7.5427 1236.3 165.73
## - gross                      1   10.8365 1239.6 168.60
## 
## Step:  AIC=159.15
## imdb_score ~ director_facebook_likes + cast_total_facebook_likes + 
##     movie_facebook_likes + num_critic_for_reviews + facenumber_in_poster + 
##     num_user_for_reviews + budget + gross
## 
##                             Df Sum of Sq    RSS    AIC
## - cast_total_facebook_likes  1    0.0464 1228.9 157.19
## - budget                     1    0.7313 1229.5 157.79
## <none>                                   1228.8 159.15
## - num_critic_for_reviews     1    2.4316 1231.2 159.28
## - facenumber_in_poster       1    2.4346 1231.2 159.29
## - movie_facebook_likes       1    2.4997 1231.3 159.34
## + num_voted_users            1    0.0202 1228.8 161.13
## - director_facebook_likes    1    6.2980 1235.1 162.66
## - num_user_for_reviews       1   10.4093 1239.2 166.25
## - gross                      1   11.7007 1240.5 167.37
## 
## Step:  AIC=157.19
## imdb_score ~ director_facebook_likes + movie_facebook_likes + 
##     num_critic_for_reviews + facenumber_in_poster + num_user_for_reviews + 
##     budget + gross
## 
##                             Df Sum of Sq    RSS    AIC
## - budget                     1    0.7576 1229.6 155.86
## <none>                                   1228.9 157.19
## - facenumber_in_poster       1    2.5041 1231.4 157.39
## - movie_facebook_likes       1    2.5132 1231.4 157.40
## - num_critic_for_reviews     1    2.5402 1231.4 157.42
## + cast_total_facebook_likes  1    0.0464 1228.8 159.15
## + num_voted_users            1    0.0165 1228.8 159.18
## - director_facebook_likes    1    6.5301 1235.4 160.91
## - num_user_for_reviews       1   10.4717 1239.3 164.34
## - gross                      1   11.9648 1240.8 165.64
## 
## Step:  AIC=155.86
## imdb_score ~ director_facebook_likes + movie_facebook_likes + 
##     num_critic_for_reviews + facenumber_in_poster + num_user_for_reviews + 
##     gross
## 
##                             Df Sum of Sq    RSS    AIC
## <none>                                   1229.6 155.86
## - facenumber_in_poster       1    2.5048 1232.1 156.05
## - movie_facebook_likes       1    2.6565 1232.3 156.18
## - num_critic_for_reviews     1    2.9935 1232.6 156.48
## + budget                     1    0.7576 1228.9 157.19
## + net                        1    0.7576 1228.9 157.19
## + cast_total_facebook_likes  1    0.0726 1229.5 157.79
## + num_voted_users            1    0.0437 1229.6 157.82
## - director_facebook_likes    1    6.6770 1236.3 159.69
## - num_user_for_reviews       1   10.6202 1240.2 163.13
## - gross                      1   21.3675 1251.0 172.43
## 
## Call:
## lm(formula = imdb_score ~ director_facebook_likes + movie_facebook_likes + 
##     num_critic_for_reviews + facenumber_in_poster + num_user_for_reviews + 
##     gross, data = imdb.r)
## 
## Coefficients:
##             (Intercept)  director_facebook_likes     movie_facebook_likes  
##               6.304e+00                3.062e-05               -3.029e-06  
##  num_critic_for_reviews     facenumber_in_poster     num_user_for_reviews  
##               6.409e-04                2.435e-02               -4.091e-04  
##                   gross  
##               2.798e-09

Menggunakan metode stepwise dalam mencari model terbaik didapatkan model terbaik sebagai berikut

imdb.model <- lm(formula = imdb_score ~ director_facebook_likes + movie_facebook_likes + 
    num_critic_for_reviews + facenumber_in_poster + num_user_for_reviews, data = imdb.u)
summary(imdb.model)
## 
## Call:
## lm(formula = imdb_score ~ director_facebook_likes + movie_facebook_likes + 
##     num_critic_for_reviews + facenumber_in_poster + num_user_for_reviews, 
##     data = imdb.u)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.6326 -0.6244  0.0757  0.7032  2.5590 
## 
## Coefficients:
##                           Estimate Std. Error t value Pr(>|t|)    
## (Intercept)              6.296e+00  6.183e-02 101.830   <2e-16 ***
## director_facebook_likes  2.713e-05  1.278e-05   2.124   0.0339 *  
## movie_facebook_likes    -2.545e-06  2.004e-06  -1.270   0.2045    
## num_critic_for_reviews   9.360e-04  3.942e-04   2.375   0.0177 *  
## facenumber_in_poster     3.025e-02  1.656e-02   1.826   0.0681 .  
## num_user_for_reviews    -1.470e-04  1.210e-04  -1.215   0.2247    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.08 on 1072 degrees of freedom
## Multiple R-squared:  0.0134, Adjusted R-squared:  0.008795 
## F-statistic: 2.911 on 5 and 1072 DF,  p-value: 0.01284

Berdasarkan model tersebut terdapat beberapa variabel penting yang mempengaruhi IMDb rating diantaranya, Director Facebook Like sebagai perwujudan dari popularitas sutradara sebuah film, variabel jumlah kritik dan review pada film tersebut melalui website IMDb dan Banyaknya wajah pemeran yang ditampilkan pada poster yang menjadi sarana pemasaran bagi sebuah film.

0.6 Pengelompokan Film berdasarkan Pendapatan Bersih, IMDb Rating dan Budget Produksi

Selain menggunakan model regresi sebagai prediksi juga dilihat pengelompokan film menurut variabel-variabel yang dianggap penting pada suatu perusahaan dalam hal ini saya mengelompokkan Film berdasarkan Pendapatan Bersih, IMDb Rating dan Budget Produksi.

imdb.u1 <- imdb.u[,c(10,12,13)]
imdb.z <- scale(imdb.u1)
imdb.z <- as.data.frame(imdb.z)
set.seed(200)
imdb_km <- kmeans(imdb.z, 5)
imdb_km$centers
##       budget imdb_score         net
## 1 -0.2864086 -1.5837647 -0.23301931
## 2  1.4130926  0.2936984  2.26994868
## 3 -0.2742674  1.0190970  0.01635384
## 4  2.3287413  0.2144268 -1.35574370
## 5 -0.3213518 -0.1396602 -0.08169274
imdb.u$cluster <- imdb_km$cluster

Berdasarkan hasil pengelompokan menggunakan analisis cluster dengan 5 cluster yang terbentuk didapatkan fil-film dengan karakteristik yang hampir sama pada setiap clusternya. pada cluster 1 dapat dilihat bahwa cluster 1 berisi film-film dengan budget rendah, IMDb rating yang rendah dan pendapatan yang juga rendah. Sedangkan cluster 3 dapat dijadikan refrensi film-film dengan budget rendah namun menghasilkan IMDb rating dan pendapatan yang cenderung tinggi. Pada cluster 2 dapat dijadikan refrensi film-film dengan budget tinggi namun juga menghasilkan pendapatan yang tinggi pula. Hasil-hasil tersebut akan disajikan dalam bentuk plot 3 Dimensi untuk lebih mudah dalam interpretasinya. Jika butuh waktu lama untuk loading plot 3 dimensi dapat dilihat pada link berikut https://plot.ly/~rakadipta/3/#/

0.7 Plot 3 Dimensi

data <- read.csv("clusterimdb.csv")
data$title_year <- as.numeric(data$title_year)
data$cluster <- as.factor(data$cluster)
data1 <- data[data$cluster == 1,]
data2 <- data[data$cluster == 2,]
data3 <- data[data$cluster == 3,]
data4 <- data[data$cluster == 4,]
data5 <- data[data$cluster == 5,]
colors <- c('#4AC6B7', '#1972A4', '#965F8A', '#FF7070', '#C61951')

0.8 Plot seluruh data Film tahun 2005 - 2016

p1 <- plot_ly(data, x = ~net, y = ~budget, z = ~imdb_score, color = ~cluster, size = ~director_facebook_likes, colors = colors,
             marker = list(symbol = 'circle', sizemode = 'diameter'), sizes = c(5, 150),
             text = ~paste('<br>Movie Title:', movie_title, '<br>Director Facebook Like:',director_facebook_likes , '<br>rating', imdb_score,
                           '<br>Budget:', budget, '<br>Nett Income',net)) %>%
  layout(title = 'Pengelompokan Film Berdasarkan Pendapatan Bersih, Rating IMDb dan Budget Produksi',
         scene = list(xaxis = list(title = 'Pendapatan Bersih',
                                   gridcolor = 'rgb(255, 255, 255)',
                                   type = 'log',
                                   zerolinewidth = 1,
                                   ticklen = 5,
                                   gridwidth = 2),
                      yaxis = list(title = 'Budget Produksi Film',
                                   gridcolor = 'rgb(255, 255, 255)',
                                   zerolinewidth = 1,
                                   ticklen = 5,
                                   gridwith = 2),
                      zaxis = list(title = 'Rating IMDb',
                                   gridcolor = 'rgb(255, 255, 255)',
                                   type = 'log',
                                   zerolinewidth = 1,
                                   ticklen = 5,
                                   gridwith = 2)),
         paper_bgcolor = 'rgb(243, 243, 243)',
         plot_bgcolor = 'rgb(243, 243, 243)')
p1
## No trace type specified:
##   Based on info supplied, a 'scatter3d' trace seems appropriate.
##   Read more about this trace type -> https://plot.ly/r/reference/#scatter3d
## No scatter3d mode specifed:
##   Setting the mode to markers
##   Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode