Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
パーマーステーションのペンギンたち#3 探索的データ分析(EDA)編
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
bob3bob3
September 02, 2023
Programming
830
1
Share
パーマーステーションのペンギンたち#3 探索的データ分析(EDA)編
パーマーステーションのペンギンたち#3
探索的データ分析(EDA)編
Tokyo.R #108 (2023/09/02)
#TokyoR
#R言語
#rstatsj
bob3bob3
September 02, 2023
More Decks by bob3bob3
See All by bob3bob3
RとLLMで自然言語処理
bob3bob3
3
850
RでPSM分析
bob3bob3
1
430
Rでコンジョイント分析 2024年版
bob3bob3
0
2.4k
『改訂新版前処理大全』の話と Apache Parquet の話 #TokyoR
bob3bob3
0
1.4k
R言語の環境構築と基礎 Tokyo.R 112
bob3bob3
0
640
『データ可視化学入門』をPythonからRに翻訳した話(増強版)
bob3bob3
0
580
『データ可視化学入門』を PythonからRに翻訳した話
bob3bob3
1
650
qeMLパッケージの紹介
bob3bob3
0
2.4k
「国と音楽」 ~spotifyrを用いて~ #muana
bob3bob3
2
640
Other Decks in Programming
See All in Programming
ふりがな Deep Dive try! Swift Tokyo 2026
watura
0
200
実践CRDT
tamadeveloper
0
490
Coding as Prompting Since 2025
ragingwind
0
820
Kubernetes上でAgentを動かすための最新動向と押さえるべき概念まとめ
sotamaki0421
3
490
Server-Side Kotlin LT大会 vol.18 [Kotlin-lspの最新情報と Neovimのlsp設定例]
yasunori0418
1
120
VueエンジニアがReactを触って感じた_設計の違い
koukimiura
0
170
瑠璃の宝石に学ぶ技術の声の聴き方 / 【劇場版】アニメから得た学びを発表会2026 #エンジニアニメ
mazrean
0
240
ハンズオンで学ぶクラウドネイティブ
tatsukiminami
0
120
「効かない!」依存性注入(DI)を活用したAPI Platformのエラーハンドリング奮闘記
mkmk884
1
330
LM Linkで(非力な!)ノートPCでローカルLLM
seosoft
0
470
一度始めたらやめられない開発効率向上術 / Findy あなたのdotfilesを教えて!
k0kubun
4
2.9k
Radical Imagining - LIFT 2025-2027 Policy Agenda
lift1998
0
280
Featured
See All Featured
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
140
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.8k
Ruling the World: When Life Gets Gamed
codingconduct
0
200
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.9k
Building AI with AI
inesmontani
PRO
1
890
So, you think you're a good person
axbom
PRO
2
2k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
110
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
430
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Prompt Engineering for Job Search
mfonobong
0
260
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Transcript
パーマーステーションの ペンギンたち #3 探索的データ分析(EDA)編 Tokyo.R #108 (2023/09/02) @bob3bob3 Artwork by
@allison_horst
このセッションの位置づけ 中級者セッションのつもりでやっているシリーズです。 1. データセットの紹介(前々回) 2. データクリーニング(前回) 3. 探索的データ分析(EDA)(今回) 4. 分析例
◦ シンプソンのパラドクス ◦ 次元縮約 ◦ クラスタリング ◦ 判別モデル ◦ などなど
探索的データ分析とは? • Exploratory Data Analysis、EDA。 • 分析対象であるデータに対する理解を 深めるプロセスのことを指す。 • 個々の変数の特性や変数間の関係を
把握することが目的で、その手段として 要約統計量や可視化が用いられる。 • 分析するデータが手に入ったらまずは EDA! • John Tukey さん(1915 – 2000)が提唱し ました。箱ひげ図を提唱したことでも有 名。コンピューター用語の bit を作ったこ とでも知られる。 引用元
パーマーステーションのペンギンたち 過去2回に続き、palmerpenguinsパッ ケージのデータセットを使います。 初回の資料も参考にしてください。 とりあえず、いますぐ install.packages("palmerpenguins") しましょう! Artwork by @allison_horst
どんなデータ? • 南極に生息するペンギンの生態調査。2007年、08年、09年の3回の調査。 • 南極のビスコー諸島、ドリーム島、トージャーセン島の3か所。 • アデリーペンギン、ヒゲペンギン、ジェンツーペンギンの3種のペンギン。 • 嘴の長さ、高さ、翼の長さ、体重、性別などが含まれる。 アデリー(Adelie)
ジェンツー(Gentoo) ヒゲ(Chinstrap) Stan Shebs (CC BY-SA 3.0) Andrew Shiva(CC BY-SA 4.0) Stan Shebs (CC BY-SA 3.0)
2つのデータセット penguins_raw 生のデータ • 17変数 • studyName: 研究名(越冬隊ごと?) •
Sample Number: 標本番号(連番) • Species: ペンギンの種(学名付き) • Region: 調査した地域 • Island: 調査した島 • Stage: 発育段階 • Individual ID: 個体ID • Clutch Completion: 巣の完成度 • Date Egg: 巣に1個以上の卵が確認された日? • Culmen Length (mm): くちばしの長さ • Culmen Depth (mm): くちばしの高さ • Flipper Length (mm): 翼の長さ • Body Mass (g): 体重 • Sex: 性別 • Delta 15 N (o/oo): 窒素同位体比(δ15N) • Delta 13 C (o/oo): 炭素同位体比(δ13C) • Comments: コメント penguins 使いやすく加工されたデータ • 8変数 • species: ペンギンの種 • island: 調査した島 • bill_length_mm: くちばしの長さ • bill_depth_mm: くちばしの高さ • flipper_length_mm: 翼の長さ • body_mass_g: 体重 • sex: 性別 • year: 調査した年 Artwork by @allison_horst
2つのデータセット penguins_raw 生のデータ • 17変数 • studyName: 研究名(越冬隊ごと?) •
Sample Number: 標本番号(連番) • Species: ペンギンの種(学名付き) • Region: 調査した地域 • Island: 調査した島 • Stage: 発育段階 • Individual ID: 個体ID • Clutch Completion: 巣の完成度 • Date Egg: 巣に1個以上の卵が確認された日? • Culmen Length (mm): くちばしの長さ • Culmen Depth (mm): くちばしの高さ • Flipper Length (mm): 翼の長さ • Body Mass (g): 体重 • Sex: 性別 • Delta 15 N (o/oo): 窒素同位体比(δ15N) • Delta 13 C (o/oo): 炭素同位体比(δ13C) • Comments: コメント penguins 使いやすく加工されたデータ • 8変数 • species: ペンギンの種 • island: 調査した島 • bill_length_mm: くちばしの長さ • bill_depth_mm: くちばしの高さ • flipper_length_mm: 翼の長さ • body_mass_g: 体重 • sex: 性別 • year: 調査した年 Artwork by @allison_horst 今日使うのは こっち。
やること 1. データセットの全体像を確認 2. 1変量の分析 3. 2変量の分析
今回使用する主なパッケージ • サンプルデータ ◦ palmerpenguins • 要約 ◦ tidyverse ◦
summarytools • 可視化 ◦ ggplot2 ◦ GGally ◦ MASS
データセットの全体像を確認 library(palmerpenguins) #データセット penguins #tibble形式 palmerpenguinsパッケージ。 今回使うデータセットpenguinsを含 む。
全体確認 library(palmerpenguins) #データセット penguins penguins |> str() #オブジェクトの構造を表示。structure
全体確認 library(palmerpenguins) #データセット penguins penguins |> str() #オブジェクトの構造を表示。structure penguins |>
dplyr::glimpse() #「チラ見する」ぐらいの意味
全体確認 penguins |> summary() #とりあえずsummary()
まずはデータを確認 # summary()の超強力版 library(summarytools) penguins |> dfSummary() |> view() summarytoolsパッケージ。
データの概要を確認するのに非常に便 利。 分布の形、欠損値の有無、名義尺度や 順序尺度のカテゴリ数数などを確認して おきたい。
1変数の分析 • 気になる変数を個別に確認する • 名義尺度、順序尺度は棒グラフで、比率尺度、比例尺度はヒストグラムで確認する のがいいでしょう。
1変数の分析 • 気になる変数を個別に確認する • 名義尺度、順序尺度は棒グラフで、比率尺度、連続変数はヒストグラムで確認する のがいいでしょう。 ヒストグラムは MASS::truehist()が おすすめ。
2変数の分析 • まずは、GGallyパッケージのggpairs()関数 でどの組み合わせが気になるか確認。 • ただし、変数が多いと組み合わせ爆発で描 画に時間がかかります。 penguins |> GGally::ggpairs(aes(colour=species))
2変数の分析(連続変数×連続変数) • 連続変数同士の組み合わせは 散布 図で表す。 penguins |> ggplot(aes(x = bill_length_mm,
y = bill_depth_mm, color = species)) + geom_point()
2変量の分析(名義尺度×名義尺度) • クロス集計表の可視化。 • モザイクプロット penguins |> mosaicplot(~ species +
island, data = _, color = TRUE)
2変量の分析(名義尺度×連続変数) • 箱ひげ図、バイオリンプロット、ジッタ ―プロッ トの重ね書き ◦ raincloud plot がいいけれど、ちょっと手間な ので簡易版として。
penguins |> ggplot(aes(x = species, y = body_mass_g)) + geom_violin(aes(fill=species)) + geom_boxplot(width=0.1) + geom_jitter(width=0.2, height=0, alpha=0.3)
ggploylyで対話的に分析 • ggplot2のオブジェクトをggplotly()に与えるだ けで対話的なグラフができる! library(plotly) p1 <- penguins
|> ggplot(aes( x = bill_length_mm, y = bill_depth_mm, color = species )) + geom_point() p1 |> ggplotly()
to be continued... 今後の予定: 1. データセットの紹介(前々回) 2. データクリーニング(前回) 3. 探索的データ分析(EDA)(今回)
4. 分析例 ◦ シンプソンのパラドクス ◦ 次元縮約 ◦ クラスタリング ◦ 判別モデル ◦ などなど 次回はついに分析例だよ! いつになる ことやら…… お楽しみに!