0
0

More than 3 years have passed since last update.

RでReal estate valuationの基礎分析

Posted at

はじめに

UCI 機械学習リポジトリのReal estate valuationデータについて基礎分析を行ったので、そのまとめをつらつらと書いていく。データの加工は行わずに基礎統計量の算出と可視化を行っていく。

データの読み込みと概要の確認

xlsxのデータを読み込み、その概要をstr関数でチェックする。ついでに必要なパッケージを読み込んでおく。

コード
library(openxlsx)
library(dplyr)
library(ggplot2)
library(GGally)

df <- read.xlsx("./Real_estate_valuation_data_set.xlsx")
str(df)
出力
'data.frame':   414 obs. of  8 variables:
 $ No                                    : num  1 2 3 4 5 6 7 8 9 10 ...
 $ X1.transaction.date                   : num  2013 2013 2014 2014 2013 ...
 $ X2.house.age                          : num  32 19.5 13.3 13.3 5 7.1 34.5 20.3 31.7 17.9 ...
 $ X3.distance.to.the.nearest.MRT.station: num  84.9 306.6 562 562 390.6 ...
 $ X4.number.of.convenience.stores       : num  10 9 5 5 5 3 7 6 1 3 ...
 $ X5.latitude                           : num  25 25 25 25 25 ...
 $ X6.longitude                          : num  122 122 122 122 122 ...
 $ Y.house.price.of.unit.area            : num  37.9 42.2 47.3 54.8 43.1 32.1 40.3 46.7 18.8 22.1 ...

統計量の算出

summary関数でも出力できるが標準偏差などが無いので、その項目を作っていく。

コード
classes <- df %>% summarise_all(class) %>% t()
classes
出力
                                       [,1]     
No                                     "numeric"
X1.transaction.date                    "numeric"
X2.house.age                           "numeric"
X3.distance.to.the.nearest.MRT.station "numeric"
X4.number.of.convenience.stores        "numeric"
X5.latitude                            "numeric"
X6.longitude                           "numeric"
Y.house.price.of.unit.area             "numeric"

No まで numeric 判定になっていることが気になるが、まぁ大きく支障はないと考え次に進める。全変数がnumericなので、特にフィルタもかけることなく統計量を計算していく。

コード
means <- df %>% summarise_all(mean) %>% t()
vars <- df %>% summarise_all(var) %>% t()
sds <- df %>% summarise_all(sd) %>% t()
qs <- df %>% summarise_all(quantile) %>% t()
colnames(qs) <- c("min", "q14", "median", "q34", "max")
is.nas <- df %>% is.na %>% as.data.frame %>% summarise_all(sum) %>% t()
is.not.nas <- nrow(df)-is.nas

Statistics <- data.frame(
  classes=classes,
  is.nas=is.nas,
  is.not.nas=is.not.nas,
  means=means,
  vars=vars,
  sds=sds,
  qs
)

write.csv(x=Statistics, file="summary.csv")

これで統計量をsummary.csv に出力した。エクセルで表を少し直すとこんな感じになる。
Summary.png

pairplot の作成

各項目の相関、散布図、ヒストグラムを確認するためpairplotを作成する。これも関数で1行で実装できる。非常に便利。

ggpairs(df)

R_pairplot.png

参考文献

【Rメモ】多変数の関係性を視覚化する関数(パッケージ)まとめ

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0