2017年5月20日土曜日

RESASの不動産取引データでheatmapを作ってみた。

前回、「RESAS(リーサス:地域経済分析システム)」で公開されている各都道府県における「大規模土地取引」データで遊んでみました。

RESASデータを「IBM Data Scientist Workbench」でゴニョゴニョしてみた。
http://sapporomkt.blogspot.jp/2017/05/resasibm-data-scientist-workbench.html

今回は、このデータを使って「heatmap」を作ってみます。
最終的には、下記のようなアウトプットを目指します。

<2015年:都道府県別の大規模土地取引件数(内訳)>

データの取得方法については、上記の前回エントリーをご覧ください。
なお、実施環境については、以下の通りです。

・macOS Sierra ver10.12.3
・R version:3.3.3
・RStudio:1.0.136

分析手順のご紹介


冒頭のデータ読み込み部分は前回エントリーと同じです。

# データの読み込み
fudousan.dat <- read.csv("fudousan.csv",header = TRUE, stringsAsFactors = F,fileEncoding = "cp932")

# 読み込んだデータ内容の確認
View(fudousan.dat)

head(fudousan.dat)でも確認できますが、個人的にはこちらの方が好きです。


# カラム名の変更
fudousan2.dat <- fudousan.dat %>%
dplyr::rename(year = 集計年,pref_code = 都道府県コード, pref_name = 都道府県名, usage_code = 利用目的種別コード, usage = 利用目的種別名, deal_count = 取引件数.件., deal_field = 取引面積.u.)

# 2015年データの抽出:直近の状況を知りたいので、下記のようにしましたが、抽出したい年数を変えたい場合は「2015」部分を書き換えてください。
# ちなみに、dplyr関数でよく使う「%>%」は、Unixのshellでいう「パイプ」と同じ役割を果たします。RStudio上では「Ctrl+Shift+m」で入力できるので是非覚えましょう。
# 「!=」は「not equal」の意味です。「filter」以降の3条件は「AND」条件として処理されます。
fudousan2015.dat <- fudousan2.dat %>%
dplyr::filter(year == 2015,pref_name != "すべての都道府県", usage != "すべての利用目的")

# エリア x 利用用途 で 取引件数 を抽出:[ ,c(3,5,6)]の( )内は列番号を示しています。
fudousan3.dat <- fudousan2015.dat[,c(3,5,6)]

# 参考までに「縦持ち」データを「横持ち」データに変換してみます。
fudousan4.dat <- fudousan3.dat %>%
tidyr::spread(usage,deal_count)


うーん、まぁ、これぐらいの情報量ならセーフかもしれませんが、ちょっと見づらいですねぇ。

# heatmap作成
p <- ggplot(fudousan3.dat,aes(as.factor(usage),as.factor(pref_name))) +
geom_tile(aes(fill=deal_count)) +
scale_fill_gradient(low="white",high="red") +
theme_bw(base_family = "HiraKakuProN-W3")

# 上記のままだとX軸のラベルが潰れるので、微修正を追加。
p + labs(x = "",y = "") + scale_x_discrete(expand = c(0, 0)) + scale_y_discrete(expand = c(0, 0)) +  theme(axis.ticks = element_blank(), axis.text.x = element_text(size = 10, angle = 330, hjust = 0, colour = "grey50"))

<2015年:都道府県別の大規模土地取引件数(内訳)> 

前回エントリーでも言及しましたが、「北海道」における「資産保有・転売等目的」の取引件数は多いようですね(「大規模」になる土地の広さも影響していると思いますが)。
また、「静岡県」の「病院等その他の利用目的」が多いのも特徴的ですね。

このような感じで、わずか数行のコードでヒートマップが出力出来ちゃいました。
ggplot2の記法がやや取っつきにくいですが、一度コードを書いてしまえば後は転用できるのがRのいいところ。ご興味ありましたら、是非お試しください。

(参考サイト)
ヒートマップで行列を可視化する! -ggplot2を用いたmicroarray発現量の可視化をしよう!
http://tomoshige-n.hatenablog.com/entry/2014/08/15/235510

R関連エントリー


RESASデータを「IBM Data Scientist Workbench」でゴニョゴニョしてみた。
http://sapporomkt.blogspot.jp/2017/05/resasibm-data-scientist-workbench.html

ggplot2でクロス集計的に複数グラフをプロットする方法
http://sapporomkt.blogspot.jp/2016/11/ggplot2.html

R開発環境が無料で簡単導入!「Data Scientist Workbench」を使ってみた。

http://sapporomkt.blogspot.jp/2016/10/rdata-scientist-workbench.html

(Bluemix)知ってた?dashDBってTwitter分析にもツカエルのさ(+ちょっとだけコンサドーレ調べ)
http://sapporomkt.blogspot.jp/2016/07/bluemixdashdbtwitter.html

RMeCabで形容詞の形態素解析をやってみた。
http://sapporomkt.blogspot.jp/2016/07/rmecab.html

【R言語】今年は、leafletでマップをグリグリしたい。
http://sapporomkt.blogspot.jp/2016/01/rleaflet.html

(R言語)当ブログアクセス者の興味関心事をコレポン(コレスポンデンス)した。
http://sapporomkt.blogspot.jp/2015/12/r.html

0 件のコメント:

コメントを投稿