はじめに
Rとはオープンソースで利用可能な統計やデータ解析に秀でたプログラミング言語です。
Rstudioを用いたグラフの描画を学んだので今回は忘れないようにやったことを書いていきます。
データを読み込む
まず今回使用するパッケージをロードします。
```{r}
library(ggplot2)
library(stargazer)
```
- ggplot2
- グラフの描画を細かく設定するためのツールです。
- stargazer
- 記述統計をわかりやすく表の形にまとめるパッケージです。
次に今回使用するデータセットを読み込みます。
```{r}
data(iris)
```
Rの中にサンプルデータとして用意されているirisデータセットを読み込みました。
読み込んだデータの中身を確認します。
```{r,comment = ""}
head(iris)
```
# 出力結果
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
- Sepal.Length
- がく片の長さを表します。
- Sepal.Width
- がく片の幅を表します。
- Petal.Length
- 花びらの長さを表します。
- Petal.Width
- 花びらの幅を表します。
- Species
- 品種を表し、setosa, versicolor, virginicaの三つの品種が含まれています。
記述統計の表示
データの特徴を捉えやすくするために記述統計を表示します。
```{r, comment = ""}
summary(iris)
```
# 出力結果
Sepal.Length Sepal.Width Petal.Length Petal.Width
Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
Median :5.800 Median :3.000 Median :4.350 Median :1.300
Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
Species
setosa :50
versicolor:50
virginica :50
- Min.
- 最小値を表します。
- 1st
- 第1四分位を表します。
- Median
- 中央値を表します。
- Mean
- 平均値を表します。
- 3rd
- 第3四分位を表します。
- Max.
- 最大値を表します。
グラフの描画
ここでグラフの描画をしていきたいと思います。分かりやすいヒストグラムから作成していきます。
ヒストグラム
```{r}
hist(iris$Sepal.Length, freq = TRUE,
xlab = "がく片の長さ(cm)",
ylab = "観測数(個)",
main = "がく片の長さの分布")
```
freqがTRUEだと観測数、FALSEだと確率密度になります。labがラベルでmainがタイトルです。
ggplotを用いて表示
より細かく設定するためにggplotを使用しました!
```{r}
ggplot(iris, aes(Sepal.Length)) +
geom_histogram(aes(y = ..density..),
bins = 10,
colour = "grey",
fill = "green") +
labs(title = "身長の分布", x = "身長", y = "確率密度") +
theme_classic()
```
aes
が列選択でgeom_histogram
でグラフの種類の選択をしています。..density..
は確率密度表記をするために使用するコマンドです。
階級の数やヒストグラム色など自分好みにいじることができました。
散布図
次は散布図を作成します。geom_point
で散布図を指定し、stat_smooth
で回帰直線の描画を設定しています。
```{r}
ggplot(iris, aes(Sepal.Length,Petal.Length)) +
geom_point(aes(colour = Species)) +
stat_smooth(method = lm, se = FALSE, colour = "orange") +
labs(x = "がく片の長さ",y = "花びらの長さ") +
theme_classic()
```
geom_point
にaes
を含めることで品種ごとに色を変えることができました!
品種ごとの回帰直線を表示
```{r}
ggplot(iris, aes(Sepal.Length,Petal.Length)) +
geom_point(aes(colour = Species)) +
stat_smooth(method = lm, se = FALSE, aes(colour = Species)) +
labs(x = "がく片の長さ",y = "花びらの長さ") +
theme_classic()
```
こちらはstat_smooth
にaesを含めることで各品種ごとの回帰直線を描画することができました!
かなり自由度があると感じたのでいろいろ試してみたいです。
おまけ
stargazerを用いた記述統計の表示
上記の記述統計をさらに見やすくするためにstargazerで表を出力してみました。
```{r,results = "asis"}
stargazer(as.data.frame(iris),
type = "html")
```
- Statistic
- 統計量を表します。
- N
- データの数を表します。
- Mean
- 平均値を表します。
- St.Dev.
- standard deviationの略で標準偏差を表します。
- Min
- 最小値を表します。
- Max
- 最大値を表します。
記述統計がかなり見やすくなりました!
さいごに
今回はRstudioを用いてグラフを描画してみました。
二つのグラフしか作成しませんでしたが、リファレンスを見ると色々なグラフが作れそうだったのでデータの特性にあったグラフを適宜選択して作成できるようになりたいです。
ここまでご覧いただきありがとうございました!
おまけで重回帰分析を行なおうと思いましたが、なぜか品種がカテゴリカルデータだということに途中まで気づかずやめました。多分疲れてます。
参考文献