{portfolio} 映画の集計情報を可視化する #RAdventJP
これは、R Advent Calendar 2013 : ATND の24日目の記事です。
R Advent Calenderを機にブログを開設してみました。
普段は脳画像界隈の大学院生をやってます。
クリスマスといえば、家でDVDですね。
しかし、初対面(だとして) の異性とどんな映画を見ればいいのかわからない…!
そこで、
今日はRのパッケージである{portfolio}の関数 map.marketを使って
映画のレーティングの集計の可視化をしてみたいと思います。
{portfolio} map.market 使い方
このパッケージは、株式ポートフォリオのためのパッケージだそうです。
その中のmap.market は、階層的な構造のデータの集計結果をわかりやすく可視化してくれます。
An Easy Way to Make a TreemapAn Easy Way to Make a Treemap
これは、サイトの記事の人気度を示しています。
map.marketの変数は、
- id : 四角1個 ( ID○○の記事 )
- group : グループ分け ( 記事のジャンル )
- color : 四角の色 (その記事のコメント数 )
- area : 四角の大きさ (その記事のアクセス数 )
です。
後は集計済みのデータを読み込んで実行すれば、上の図が得られます。
data <- read.csv("http://datasets.flowingdata.com/post-data.txt") install.packages("portfolio") library(portfolio) map.market(id=data$id, area=data$views, group=data$category, color=data$comments, main="FlowingData Map")
map.marketで映画解析を可視化する
この関数を映画データに使います。映画のデータには MovieLens を使います。
MovieLens | GroupLens
これは、アメリカ人による映画の評価データで、約3,900個の映画の評価とそのユーザーのデータがはいっています。
今回は、性別/職業によって、映画の人気度がどう変わるのかを見たいので、
以下のようなデータに予め直しておきました。*1
index | movie_id | gender | Job | genre | rating | numReview |
インデックス | 映画ID | 性別 | 職業 | ジャンル | 評価 (女性:-, 男性:+) | レビュー数 |
以下の図はすべて次のようにプロットしています。(職業がエンジニアの場合)
library(portfolio) rawdata <- read.csv("movie_by_occupations.csv") data = rawdata[ rawdata$occupations=="engineer" , ] map.market(id=data$id, area=data$views, group=data$category, color=data$comments, main="movie map | engineer")
それでは結果を見ていきます。
男女での映画の差
男の人
女の人
全体的に女性の方がレビューが甘めですね。
なるべく男女ともにレビューが平均的に高いジャンル…となると
ドラマや戦争映画..??あたりですかね。。
ジャンルだとざっくりしすぎたかもしれません。。。
何より悲しいのは、ホラーの評価が男女ともに低い事ですね。
ホラーについてはまた書くかもしれません。
みなさんよいクリスマスを。
以下はおまけ(職業別)です。
職業:学生
職業:上司クラスの方々
学生から職を得たとたんに、children'sががくっと減ってます。
また、レーティングも上司クラスの方が学生より甘い印象を受けます。
ロマンス物はやはり女性人気が強いのは変わらず..
あと、学生だと女子のホラー率も高いです。すばらしい。
職業:エンジニア
上司クラスの方よりもメインジャンルがちょっと多めです。
男女の差はみなかったことにします。
コメディやホラー映画の、当たり外れが多いのが見えて面白いです。
そして、例え評価が安定していなくても、コメディ映画が多く評価されている(見られている)
ということはアメリカ人がコメディを欲しているという事かもしれません。
*1:ジャンルに関しては、主ジャンル | 副ジャンル | 副ジャンル になっていたものを、すべて分けてカウントしています。