技術

R言語で分析してみよう!

w2solution

w2solution

2020/10/01

皆さんこんにちは。
新卒エンジニアの三浦です。

今日はR言語について少しお話したいと思います。

1. R言語とは

ひとことで言うと「統計解析言語」です。

R言語は、1995年に科学者ロス・イハカ氏とオークランド大学のロバート・ジェントルマンによって開発されました。S言語というプログラミング言語をベースにしたユーザーフレンドリーなデータ解析・統計プログラミングとして開発され、1997年以降はR Development Core Teamにより開発が続けられています。 元々、統計解析言語として開発されたので、データ分析や統計解析に関しては他の言語と比べても群を抜いて優秀です。大きな労力を費やさずにデータを解析する、多くの機能がデフォルトで備わっています。
引用:https://www.codexa.net/what-is-r/

2. 環境構築

Rのインストール

R Studioのインストール
IDE(統合開発環境)です。

3. 簡単な分析をしてみよう

まずはじめにtidyverseをインストールします。
tidyverseとは、様々な操作を統一的に行える「tidyなツール群」です。

install.packages("tidyverse")

library(tidyverse)を実行すれば、tidyverseに含まれるパッケージの中でよく使われるものをまとめて読み込んでくれます。
Attaching packagesに表示されているのが、読み込まれたパッケージです。

library(tidyverse)
─ Attaching packages ─────────────────────────────── tidyverse 1.3.0 ─
✓ ggplot2 3.3.2     ✓ purrr   0.3.4
✓ tibble  3.0.3     ✓ dplyr   1.0.2
✓ tidyr   1.1.2     ✓ stringr 1.4.0
✓ readr   1.3.1     ✓ forcats 0.5.0
─ Conflicts ──────────────────────────────── tidyverse_conflicts() ─
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()

続いて、ggplot2パッケージに含まれている、mpgというデータセットを用いて簡単な分析をしていきます。
このデータセットには、1999年と2008年に製造された、合計234台の車両のデータが格納されています。

mpgのデータの中身を確認してみよう。

# mpgデータを読み込む
d <- mpg

RStudio上で読み込んだデータは、画面右上のEnvironmentペインに一覧で表示されます。

234 obs. of 11 Variablesという出力からメーカーなどの11つの変数と
234のデータ数があることが確認できます。

Environmentペイン上のデータセットをクリックすることでExcelのようにデータを表示することも可能です。

エンジンの大きさdisplに関するデータがどのように分布しているのかを
ヒストグラムで確認してみましょう。
まず、データセット内の変数をX軸やY軸に割り当てます。
この作業を「マッピング」と呼びます。
マッピングを指定するためには、mapping = aes()という引数を使用。aes()はエステティックを意味します。
まずはエンジンの大きさをX軸にマッピングし、ヒストグラムで可視化します。

geom_density()geom_point()と指定することで、密度曲線や散布図も
表示することが可能です。

# ヒストグラム
ggplot() +
  geom_histogram(data = mpg, mapping = aes(x = displ))
# 密度曲線
ggplot() +
  geom_density(data = mpg, mapping = aes(x = displ))

次は、エンジンの大きさdisplをX軸に、市街地を走行した場合の燃費
ctyをY軸にマッピングしてみましょう。
これを散布図で可視化すると、エンジンが大きくなるほど燃費が低下することがわかります。

# 散布図
ggplot() +
  geom_point(data = mpg, mapping = aes(x = displ, y = cty))

少し分かりづらいので近似直線を追加してみましょう。
geom_smooth()で近似直線を重ねてみると、エンジンが大きなるほど
燃費が低下する傾向がわかりやすくなります。
ちょっと分析っぽくなってきましたね。

# 近似直線を追加
ggplot(data = mpg, mapping = aes(x = displ, y = cty)) +
  geom_point() +
  geom_smooth(method = "lm")

シリンダー数でグループ化して色を付けると、さらに分析っぽくなります。
このようにtidyverseのggplot2を使えば簡単に分析を行うことができます!

# シリンダー数でグループ化
ggplot(data = mpg, mapping = aes(x = displ, y = cty)) +
  geom_point() +
  geom_smooth(mapping = aes(group = factor(cyl), colour = factor(cyl)), method = "lm")

4. おわりに

今回は紹介しなかったのですが、実はRではデータの取得からレポーティングまで、分析のワークフローを全て行うことができるんです。
また次回の記事で、Rの面白さを紹介していきたいと思います。