統計ストーリー教材「分析助手」UIプロトタイプ・レビュー用

EP1 まず全体を見る

記述統計と可視化 / 性格分岐なし・固定1パターン版

あなたは研究室の分析助手。今日が初仕事。

先生からの依頼

先生 1973年5〜9月、ニューヨークで毎日記録した大気質データが153日分ある。市民向け報告書に載せる「この夏のオゾン濃度の実態」を、数字と図で1枚にまとめてほしい。

手元に渡されたデータの中身を覗いてみましょう。列は Ozone(オゾン濃度・ppb)・Solar.R・Wind・Temp・Month・Day。今回使うのは Ozone だけです。

# まずは中身を覗いてみる > head(airquality)
OzoneSolar.RWindTempMonthDay
411907.46751
361188.07252
1214912.67453
1831311.56254
NANA14.35655
⚠️ で先頭数行だけを見るのは、「どんな列があるか」「欠損はありそうか」を素早く確認する定石です。ただし、これは153日分のうちのたった5日。全体の分布や欠損の正確な件数は、まだこれだけでは分かりません。

5日目から早速 が出てきました。これをどう扱うかが、今日の仕事の分かれ道になりそうです。

探索: 最初の判断

153日分の数字を前に、何から手をつけるべきか考えます。

数値の要約からいきなり入るべきか、それとものような絵から入るべきか。ここでの選び方が、この先の報告の質を左右します。

Q1. 最初の一手は?

Q2. 欠損37日をどうする?

Q3. 代表値はどれで報告する?

代表値には複数の種類があります。のうち、今回はどれを主役にすべきでしょうか。

Q4. の上に離れた点(最大168ppbなど)。消す?

これはと呼ばれる点です。

分析: 実際にRを動かす

探索での判断どおり、まず数値の要約と分布の形を確かめます。

> summary(airquality$Ozone)
1.018.031.542.163.2168.037

153日中37日が欠損(NA)。残り116日分のOzone値を図にすると、右に長く裾を引く分布であることが一目で分かります。

> hist(airquality$Ozone)
0 180ppb 0-20 40-60 80-100 160-180

実測116件を実際に集計した棒の高さ(n=33,37,15,14,10,4,2,0,1)。右にいくほど背が低く長く続く=右裾分布。

> boxplot(airquality$Ozone)
中央値31.5 122 135 168

箱の中央=中央値31.5、箱の両端=(18/63.2)。赤い点2つが外れ値(135・168)。

Q5. sd(airquality$Ozone) が NA を返した。なぜ?

ばらつきの大きさを表すを計算しようとしたところ、結果がNAになりました。

報告: 市民向け報告書を仕上げる

探索・分析で確かめたことを、そのまま文章にします。空欄を埋めてみましょう。

観測153日のうち欠損 日を除く 日分を集計した。オゾン濃度の 。分布は右に裾を引き、日によるばらつきが大きい(SD 33)。最大は168ppbで、高濃度の日が夏の間に複数回あった。

「観測153日のうち欠損37日を除く116日分を集計した。オゾン濃度の中央値は31.5ppb(平均42.1ppb)。分布は右に裾を引き、日によるばらつきが大きい(SD 33)。最大は168ppbで、高濃度の日が夏の間に複数回あった。」

初仕事、達成

欠損を隠さず、代表値を1つに決めつけず、外れ値を勝手に消さない——今日学んだ3つの判断は、この先の全てのエピソードで繰り返し使うことになります。