SASで多変量解析までの一連の流れ

# データの取得・構造把握
今回使用するデータは、[The UC Irvine Machine Learning Repository(以下UCI)](https://archive.ics.uci.edu/ml/datasets.html)にある[映画データベース](https://archive.ics.uci.edu/ml/datasets/CSM+%28Conventional+and+Social+Media+Movies%29+Dataset+2014+and+2015)です。

UCIは、468のデータセットを公開されており、学術利用が可能です。

利用したデータベースは、2014、2015年のソーシャルメディア（Twitter,YouTube,IMDB）から取得された映画情報に関する232行14列のデータベースで、1行は映画の属性を表し、1列目に記載された映画を12のカラムで分類しています。

## 各変数の意味と取りうる値
Movie：映画のタイトル,character,長さ20
Year：年,実数,numeric
Ratings	：評価,実数, numeric
Genre：ジャンル,1がアクション。カテゴリマスタが今回与えられていない。カテゴリカルデータ
Budget：予算,実数, numeric,単位ドル
Screens：上映された映画館の数,実数, numeric
Sequel；続編の有無。続編が何番目の作品か,実数, numeric
Views：映画を観た人数,実数, numeric
Likes：Youtubeでlikeした人数,実数, numeric
Dislikes：YoutubeでDislikeした人数,実数, numeric
Comments：コメントの数,実数, numeric
Aggregate Followers：フォロワーの数,実数, numeric


# 分析目的
映画の評価を決める要因を分析する。

2018年に「カメラをとめるな」という映画が注目された。
その理由は、作成予算が低いのに人気が高かったからである。
なぜ、「カメラをとめるな」は人気が出たのか気になり、今回映画の評価を決定する要因を分析することとした。


## データ入力
映画データをdataステップで読み込む。

```ruby:filename.rb
/* 映画データの読み込み */
data mylib.movie;
	infile "&filepath\movie.csv"	dsd dlm=',' firstobs=2;
	input Movie :$20.
			Year 
			Ratings
			Genre 
			Gross
			Budget
			Screens
			Sequel
			Sentiment
			Views
			Likes
			Dislikes
			Comments
			Aggregate_Followers;
run;
```
上記のコードを実行すると以下の写真のように読み込める．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/206657/615c80e3-3983-64be-b0e9-fc13288d9498.png)

→綺麗に読み込めている．
使わない変数があるので、削除が必要である。
また、ところどころ欠損値がみられる。
クリーニングが必要である。

## データクリーニング
Gross、sentiment、Movie year Aggregate_Follower,Genreの列を削除して、削除したデータをmovie_dropとして保存する。
→Gross、sentimentはデータとして理解ができなかったので削除した。
Movieは映画のタイトルであるが、今回の目的にはcharacter型であるため使えないと判断し削除した。
Aggregate_Followersは３５行データが欠損しているので削除する。
そのため、残った１0変数で分析を進める。

```ruby:filename.rb

/* variableを削除する */
/* Dropステートメント */
data mylib.movie_drop;
	drop Gross Sentiment Movie Aggregate_Followers Year;
	set mylib.movie;
run;
```
上記のコードを実行すると次のようになる．

![image.png](https://qiita-image-store.s3.amazonaws.com/0/206657/587f3cd7-17d4-de12-8b57-e17bb2ad0266.png)

Ratain,Genru,Buget,Screenなど必要な変数のみのデータができた．
図１と比べ、Gross、sentiment、Movie 、year、 Aggregate_Followes,Genreが削除されている。


## 集計
###1変量の集計
→各変数の基本統計量を「proc means」 と「proc univariat」を用いて調べる。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/206657/7011df1d-b0a5-02e3-fddc-ed712760ab9f.png)

```ruby:filename.rb

/*proc meansを用いた方法*/
proc means data = mylib.movie;
	var Ratings Gross Budget Screens Sequel Views Likes Dislikes Comments ;
	output out=mylib.movie_rating_syukei;
run;
```
```ruby:filename.rb
/*proc univariateを用いた方法*/
proc univariate data = mylib.movie;
	var Ratings;
run;

proc univariate data = mylib.movie;
	var Budget;
run;

proc univariate data = mylib.movie;
	var Sequel;
run;

proc univariate data = mylib.movie;
	var Views;
run;

proc univariate data = mylib.movie;
	var Likes;
run;

proc univariate data = mylib.movie;
	var Dislikes;
run;

proc univariate data = mylib.movie;
	var Comments;
run;

```
![image.png](https://qiita-image-store.s3.amazonaws.com/0/206657/25741b38-b687-e76a-816a-9c754ea48e95.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/206657/bbf6f21d-6418-9383-cb7b-d75a853cc72a.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/206657/6bcf65ce-77f0-50cd-9c26-ea1cfe3a1458.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/206657/5bc02d99-c37e-f8d0-acb5-134ba939d134.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/206657/4c4be130-7b73-6627-03c1-14420e1dbc10.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/206657/4522def5-befc-a50f-15c2-bddbfa16e991.png)


###2変量の集計

```ruby:filename.rb

/*2変量の基礎集計*/
/*映画の評価と予算の相関を確かめる*/
proc corr data = mylib.movie out = mylib.cor_Rating_Budget;
	var Ratings Budget;
run;
/*映画の評価と続編の相関を確かめる*/
proc corr data = mylib.movie out = mylib.cor_Rating_Sequel;
	var Ratings Sequel;
run;

/*映画の評価と観客動員数の相関を確かめる*/
proc corr data = mylib.movie out = mylib.cor_Rating_Views;
	var Ratings Views;
run;

/*映画の評価とyoutubeのlikeの数との相関を確かめる*/
proc corr data = mylib.movie out = mylib.cor_Rating_Likes;
	var Ratings Likes;
run;

/*映画の評価とyoutubeのdislikeとの相関を確かめる*/
proc corr data = mylib.movie out = mylib.cor_Rating_Dislikes;
	var Ratings Dislikes;
run;

/*映画の評価とコメント数の相関を確かめる*/
proc corr data = mylib.movie out = mylib.cor_Rating_Comments;
	var Ratings Comments;
run;

```
評価と予算の相関

![image.png](https://qiita-image-store.s3.amazonaws.com/0/206657/d77a1c3a-31f1-7c5d-f552-ab1cb5268849.png)

評価と続編の相関

![image.png](https://qiita-image-store.s3.amazonaws.com/0/206657/ad64dcd6-ceee-b2e8-ea90-2323822b33a7.png)


→予算に1行欠損値がみられる。欠損している行を削除する必要がある。②に戻ってデータのクリーニングを行う必要がある。
→映画の評価の平均が6.44というのは高いのだろうか？低いのだろうか？ヒストグラムで分布をみる必要がある。
→予算の平均が４８００万ドルというのは、つまり、48億円ということである。映画一本作るに莫大な金が必要なことがわかる。一番高い予算で作られた映画は「ホビット」、「アベンジャーズ」だった。自分でもわかる人気映画は高い予算で作成されている傾向がある。
→最も続編数が多いのは７つで、「ワイルドスピード」と「X-men」だった。人気映画は続編がでる傾向にあるのだろうか？次の視覚化で確認したい。
→youtuobeのlikeの数は「The Fault in Our Stars」が最も多かった。
→youtuobeのdislikeの数は「Fifty Shades of Grey」が最も多かった。
→２変量の集計で、評価と予算の相関を調べた。その結果、ピアソン相関係数が0.29と正の相関を得た。つまり、予算が増えると評価が高くなると解釈できる。または、評価が高い映画は予算がかかっている傾向にあるといえる。次に視覚化で散布図をプロットして分布を確認する必要がある。
→２変量の集計で、評価と続編の相関を調べた。その結果、ピアソン相関係数が0.105と正の相関を得た。つまり、続編が多いと評価が高くなると解釈できる。または、評価が高い映画は続編が多い傾向にあるといえる。次に視覚化で散布図をプロットして分布を確認する必要がある。


## 視覚化
評価と予算の散布図を描く。このとき、観客動員数で色分けする。

```ruby:filename.rb

proc sgplot data = mylib.movie;
	scatter x=Budget y=Ratings/
		colorresponse=Views
		colormodel=(blue red)
	;
	/* 必ず横軸縦軸のラベルやメモリ数値の大きさを指定すること */
	xaxis valueattrs=(size=15) labelattrs=(size=20);
	yaxis valueattrs=(size=15) labelattrs=(size=20);
run;

```


上記のコードを実行すると以下の結果を得る．

![image.png](https://qiita-image-store.s3.amazonaws.com/0/206657/2f708066-eaab-6eda-5caf-a1cf087bd722.png)

→評価と予算の散布図を描いた。観客動員数が多い映画は、赤色少ない映画は青色になっている。
この散布図から、予算が多い映画は評価が高い傾向にあると言えそうである。


## 多変量解析

```ruby:filename.rb

/*************/
/* 重回帰分析 */
/*************/

ods graphics on;
proc reg data = mylib.movie
		plots=(diagnostics residuals dffits dfbetas)
	;
	model Ratings =	Budget Screens Sequel Views Likes Dislikes Comments / 
		influence tol vif collin;
run;
quit;
ods graphics off;

```

上記のコードの実行結果

![image.png](https://qiita-image-store.s3.amazonaws.com/0/206657/bccfd82a-a958-a8b8-69c0-a7fafcb51d7a.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/206657/1b745c39-1ac2-f4a0-74ec-8cdcff453f30.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/206657/06d214c7-f0f0-657e-fe58-9c49ecd90b80.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/206657/acb4bca3-dee4-fb81-d96a-e84b02ef53c2.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/206657/5cef3ae4-a638-740f-7910-225d281403ec.png)

→予算、youtubeのLike・dislikeの数はP値が0.05以下で評価を予測するモデルにおいて有意であるといえる。
→今回の分析で、映画の評価の要因として、予算、youtubeのLike・dislikeの数であると言えそうだ。
→また，モデルの当てはまりも見れたら嬉しかった．