rd-2. ヒストグラム,散布図,折れ線グラフ,要約統計量

>100 Views

February 25, 22

スライド概要

データサイエンス演習
(R システムを使用)
https://www.kkaneko.jp/cc/rd/index.html

profile-image

金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko

シェア

埋め込む »CMSなどでJSが使えない場合

各ページのテキスト
1.

rd-2. ヒストグラム,散布 図,折れ線グラフ,要約 統計量 データサイエンス演習 (R システムを使用) https://www.kkaneko.jp/cc/rd/index.html 金子邦彦 1

2.

2-1 パッケージの追加インス トール 2

3.

パッケージの設定 (1/2) • 次の手順で,必要なパッケージをインストール • パッケージをインストールするのにインターネッ ト接続が必要 • install.packages("ggplot2") を実行 • install.packages("dplyr") を実行 3

4.

パッケージの設定 (2/2) • install.packages("tidyr") を実行 • install.packages("magrittr") を実行 こんな表示が でたら Yes • install.packages("KernSmooth") を実行 ※ 「K」と「S」が大文字 4

5.

2-2 R オブジェクトのコンス トラクタ 5

6.

コンストラクタの例 年次 1985 1990 1995 2000 2005 2010 出生数 1432 1222 1187 1191 1063 1071 死亡数 752 820 922 962 1084 1197 テーブルの例 x1 <- data.frame( 年次=c(1985, 1990, 1995, 2000, 2005, 2010), 出生数=c(1432, 1222, 1187, 1191, 1063, 1071), 死亡数=c(752, 820, 922, 962, 1084, 1197) ) 上記のテーブルを生成するコンストラクタ コンストラクタの動作画面 6

7.

2-3 iris データセット 7

8.

アヤメ属 (Iris) • 多年草 • 世界に 150種. 日本に 9種. • 花被片は 6個 • 外花被片(がいかひへん) Sepal 3個(大型で下に垂れる) • 内花被片(ないかひへん) Petal 3個(直立する) 8

9.

Iris データセット • 3種のアヤメの外花被辺、 内花被片の幅と長さを計 測したデータセット Iris setosa Iris versicolor Iris データセットは, Rシステムの中に組 み込み済み Iris virginica • データ数は 50 × 3 • 作成者:Ronald Fisher • 作成年:1936 9

10.

2-4 ヒストグラムの例 10

11.

iris の 4属性それぞれのヒストグラム 属性: Sepal.Length, Sepal.Width, Petal.Length, Petal.Width 各属性のヒストグラム 11

12.

複数ヒストグラムの重ね合わせ表示 library(dplyr) d2 <- tbl_df( iris ) library(tidyr) library(magrittr) library(KernSmooth) library(ggplot2) d2 %>% select( Sepal.Length, Sepal.Width, Petal.Length, Petal.Width ) %>% gather() %>% ggplot( aes(x=value, fill=key) ) + geom_histogram( binwidth=dpih( use_series(d2, Sepal.Length) ), alpha=0.5, position="identity") + theme_bw() 12

13.

ヒストグラムでの区間幅の調整 区間幅 = 0.1 library(ggplot2) ggplot(iris, aes(x = Sepal.Length)) + geom_histogram(binwidth=0.1) + theme_bw() 区間幅を、dpih 関数を用いて調整 library(magrittr) library(KernSmooth) library(ggplot2) ggplot(iris, aes(x = Sepal.Length)) + geom_histogram( binwidth=dpih( iris$Sepal.Length ) ) + theme_bw() 13

14.

2-5 散布図,折れ線グラフ 14

15.

散布図、折れ線グラフのバリエーション 年次 1985 1990 1995 2000 2005 2010 出生数 (千 人) 死亡数 (千 人) 1432 1222 1187 1191 1063 1071 752 820 922 962 1084 1197 散布図 散布図 +折れ線 散布図 +線形近似 出生数、死亡数の推移 出典:総務省「第63回 日本統計年鑑 平成26年」 15

16.

散布図 年次 出生 数 死亡数 1985 1432 752 1990 1995 1222 820 1187 922 2000 1191 962 2005 1063 1084 2010 1071 1197 x 軸 (フィールド名) 年次 y 軸 (フィールド名) 点の大きさ (数値) 出生数, 死亡数 x 軸の名前 (文字列) y 軸の名前 (文字列) 3 年次 出生数, 死亡数 x1 <- data.frame( 年次=c(1985, 1990, 1995, 2000, 2005, 2010), 出生数=c(1432, 1222, 1187, 1191, 1063, 1071), 死亡数=c(752, 820, 922, 962, 1084, 1197) ) library(ggplot2) ggplot(x1, aes(x=年次)) + geom_point( aes(y=出生数, colour="出生数"), size=3 ) + geom_point( aes(y=死亡数, colour="死亡数"), size=3 ) + labs(x="年次", y="出生数, 死亡数") + theme_bw() 16

17.

散布図+折れ線 年次 出生 数 死亡 数 1985 1432 752 1990 1995 1222 820 1187 922 2000 1191 962 2005 1063 1084 2010 1071 1197 x 軸 (フィールド名) 年次 y 軸 (フィールド名) 点の大きさ (数値) 出生数, 死亡数 x 軸の名前 (文字列) y 軸の名前 (文字列) 3 年次 出生数, 死亡数 x1 <- data.frame( 年次=c(1985, 1990, 1995, 2000, 2005, 2010), 出生数=c(1432, 1222, 1187, 1191, 1063, 1071), 死亡数=c(752, 820, 922, 962, 1084, 1197) ) library(ggplot2) ggplot(x1, aes(x=年次)) + geom_point( aes(y=出生数, colour="出生数"), size=6 ) + geom_point( aes(y=死亡数, colour="死亡数"), size=6 ) + geom_line( aes(y=出生数, colour="出生数"), size=2 ) + geom_line( aes(y=死亡数, colour="死亡数"), size=2 ) + labs(x="年次", y="出生数, 死亡数") + theme_bw() 17

18.

散布図+線形近似 出生 死亡 年次 数 数 x 軸 (フィールド名) 年次 y 軸 (フィールド名) 点の大きさ (数値) 出生数, 死亡数 1985 1432 752 1990 1995 1222 820 1187 922 2000 1191 962 2005 1063 1084 2010 1071 1197 x 軸の名前 (文字列) y 軸の名前 (文字列) 3 年次 出生数, 死亡数 x1 <- data.frame( 年次=c(1985, 1990, 1995, 2000, 2005, 2010), 出生数=c(1432, 1222, 1187, 1191, 1063, 1071), 死亡数=c(752, 820, 922, 962, 1084, 1197) ) library(ggplot2) ggplot(x1, aes(x=年次)) + geom_point( aes(y=出生数, colour="出生数"), size=6 ) + geom_point( aes(y=死亡数, colour="死亡数"), size=6 ) + stat_smooth( method="lm", se=FALSE, aes(y=出生数, colour="出生数"), size=2 ) + stat_smooth( method="lm", se=FALSE, aes(y=死亡数, colour="死亡数"), size=2 ) + labs(x="年次", y="出生数, 死亡数") + 18 theme_bw()

19.

2-6 グラフのファイルへの保 存 19

20.

png ファイルの作成 ファイル f:/1.png に保存 x1 <- data.frame( 年次=c(1985, 1990, 1995, 2000, 2005, 2010), 出生数=c(1432, 1222, 1187, 1191, 1063, 1071), 死亡数=c(752, 820, 922, 962, 1084, 1197) ) library(ggplot2) png("f:/1.png") ggplot(x1, aes(x=年次)) + geom_point( aes(y=出生数, colour="出生数"), size=3 ) + labs(x="年次", y="出生数") + theme_bw() dev.off() 20

21.

2-7 要約統計量,頻度,ヒス トグラム 21

22.

ここで行うこと 各フィールドの頻度(数え上げ) 種類ごとの数え上げ 各フィールドの要約統計量の算出 平均 (mean)、標準偏差 (sd)、分散 (var) 中央値 (median)、四分位点 (quantile)、 最大値 (max)、最小値 (min) 科目 受講者 国語 A 国語 B 算数 A 算数 B 理科 A 得点 90 80 95 90 80 元データ 要約統計量の例 22

23.

ここでの説明で使用するデータ 成績データ 科目 受講者 国語 A 国語 B 算数 A 算数 B 理科 A 得点 90 80 95 90 80 d1 <- data.frame( 科目=c("国語", "国語", "算数", "算数", "理科"), 受講者=c("A", "B", "A", "B", "A"), 得点=c(90, 80, 95, 90, 80) ) コンストラクタ ※ iris データセットは R システムに組み込み済み iris データセット 23

24.

要約統計量(summary を使用)① 成績 科目 受講者 国語 A 国語 B 算数 A 算数 B 理科 A 得点 90 80 95 90 80 ◆ 数値属性に対しては 最小、最大、平均、 中央値、四分位点 d1 <- data.frame( 科目=c("国語", "国語", "算数", "算数", "理科"), 受講者=c("A", "B", "A", "B", "A"), 得点=c(90, 80, 95, 90, 80) ) summary(d1) 24

25.

頻度のグラフ化 ① 科目 受講者 得点 国語 A 90 国語 B 80 算数 A 95 算数 B 90 理科 A 80 集約を行うテーブルの変数名 集約したいフィールド名 x 軸の名前 (文字列) d1 科目 科目 y 軸の名前 (文字列) 総数 d1 <- data.frame( 科目=c("国語", "国語", "算数", "算数", "理科"), 受講者=c("A", "B", "A", "B", "A"), 得点=c(90, 80, 95, 90, 80) ) library(ggplot2) ggplot(d1, aes( x=科目, fill=科目 )) + geom_bar(stat="count") + labs(x="科目", y="総数") + theme_bw() 25

26.

頻度のグラフ化 ② 科目 受講者 得点 国語 A 90 国語 B 80 算数 A 95 算数 B 90 理科 A 80 集約を行うテーブルの変数名 集約したいフィールド名 d1 得点 x 軸の名前 (文字列) y 軸の名前 (文字列) 得点 総数 d1 <- data.frame( 科目=c("国語", "国語", "算数", "算数", "理科"), 受講者=c("A", "B", "A", "B", "A"), 得点=c(90, 80, 95, 90, 80) ) library(ggplot2) ggplot(d1, aes( x=得点 )) + geom_bar(stat="count") + labs(x="得点", y="総数") + theme_bw() 26

27.

要約統計量(summary を使用)② iris データセット summary(iris) 27