⬜ データ解釈の心得 (理論や手法の詳細には触れない)
⬜ データ入力の心得
⬜ R Markdownを用いたレポート作成
どんなに素晴らしい統計処理をしようとも、データがゴミなら結論もゴミ。
e.g., 服を着たまま体重測定を10回繰り返す → どれも違う値
データの採れかたが結果に傾向をもたらしてしまう。
🔰 生物学研究における選択バイアスにはどういうものがありそう?
表に数字、裏にアルファベットが書いてあるカード。
「偶数の裏は必ずA、という法則があるか?」
これを確かめるには次の4枚のうちどれを裏返せばいいか?
認知バイアス・誤謬はほかにもいろいろある。
データ解析とは関係なく、知っておくのは悪くない。
先日 6. 統計モデリング1 で習ったやつ!
背後にあるメカニズムによっていろんな形になるのでした。
目的や状況に応じて使い分けよう。
同じデータでも見せ方で印象・情報量が変わる。
ばらつきの度合いも加味して判断する。
「こんなことがたまたま起こる確率はすごく低いです!」
をちゃんと示す手続きが統計的仮説検定→
例えば「2つの量の大小を比較したい」だけでもいくつかある。
今回は選定には深入りせず、検定の考え方だけ触れておく。
🎲サイコロを10回振ったら9回も6の目が出たぞ。イカサマじゃないか?
🎲サイコロを12回振ったら4回も6の目が出たぞ。
これも1/6よりは高いけど、イカサマのダイスかな?
帰無仮説のもとで12回中4回以上6が出る確率: $p = 0.125 > \alpha$
帰無仮説を棄却できず。6の目の出る確率が1/6と有意に異なるとは言えない。
平たく言えば「普通のサイコロでもそんなに珍しい出目じゃない」
危険率$\alpha=0.05$の検定は、最大5%の確率で誤って帰無仮説を棄却(偽陽性)。
同様の検定を10回やると、そのうち少なくとも1つで偽陽性になる確率は
$1 - (1 - 0.05)^{10} \simeq 0.40$ まで上昇。
データの荒波を泳ぎきってもどこにも「究極の真実」などありはしないのだ。 統計学はそのときその場かぎりでの「最良の結論」を導くための方便に過ぎないのだ。 —— 三中信宏「統計思考の世界」
誤: 🍦アイスの売り上げが増えるほど🍺ビールの売り上げが増える。
正: 🍦アイスも🍺ビールも気温が高いほど売れる。
誤: 警察官が多いほど犯罪が増える。
正: 犯罪が多いから警察官が多く配備される。
(x + y) が一定の幅に収まるようなペアだけを集めてしまうとか
少数の外れ値やグループ構造によって相関係数rが跳ね上がりうる。
ニコラス・ケイジの映画出演が増えるほど溺死する人が増える?
このウェブサイトにはジョークとしてこうした例が多数集められている↑
🔰 これら4つの関係性に該当する事例をそれぞれ1つ以上探してみよう。
✅ データ解釈の心得
⬜ データ入力の心得
⬜ R Markdownを用いたレポート作成
Rを使ったデータ前処理を習得した✨
雑然データからでも下ごしらえして解析できるぞ!
とはいえ…
自分がデータ入力する際に、どう気をつけたらいいか?
総務省が2020年に発表して「全国民が見るべき」と話題になった
「統計表における機械判読可能なデータの表記方法の統一ルール」
から抜粋。
悪い形に遭遇したときに使える関数:
tidyr::separate()
, tidyr::separate_rows()
, stringr::str_split()
, stringr::str_extract()
悪い形に遭遇したときに使える関数:
tidyr::separate()
, tidyr::separate_rows()
, stringr::str_split()
, stringr::str_extract()
悪い形に遭遇したときに使える関数:
readr::parse_number()
, stringr::str_remove()
, stringr::str_replace()
悪い形に遭遇したときに使える関数:
readr::parse_number()
, stringr::str_remove()
, stringr::str_replace()
いやいや、欄外に記載するのも不規則でダメですよ。別シートか、別カラムに。
悪い形に遭遇したときに使える関数:
readr::parse_number()
, stringr::str_remove()
, stringr::str_replace()
機械にとって " A"
と "A"
は違う値。
悪い形に遭遇したときに使える関数:
stringr::str_remove()
, stringr::str_replace()
悪い形に遭遇したときに使える関数:
stringr::str_remove()
, stringr::str_replace()
悪い形に遭遇したときに使える関数:
tidyr::fill()
悪い形に遭遇したときに使える関数:
tidyr::fill()
人が見れば分かるけど、機械も同じように読んではくれない。
悪い形に遭遇したときに使える関数:
tidyr::fill()
, tidyr::separate()
, stringr::str_replace()
できれば全角・日本語も避けてすべて半角英数で。
悪い形に遭遇したときに使える関数:
stringi::stri_trans_nfkc()
もっと言うと、複数シートのファイルを作らず、それぞれ別ファイルに。
つまり、Rで前処理・可視化・解析するぞという気持ち:
🔰 総務省ルールの「修正後」にまだ残る改善点をなるべく多く列挙しよう。
表形式のファイルを閲覧・作成するソフトとしてよく普及。
しかし親切設計がユーザーに牙を剥く!
22-4
, 4-14
MARCH1
, SEPT1
🔰 次のようなCSVファイルを作り、Excelで読み取ってみよう。
gene,label
MARCH1,22-4
SEPT1,4-14
🔰 Excelで日付になったものを保存して、Rで読み取ってみよう。
✅ データ解釈の心得
✅ データ入力の心得
⬜ R Markdownを用いたレポート作成
解析からレポート作成まで一元管理できて楽ちん。
.Rmd
).md
)🔰 どんなものが作れるのか 作成例ギャラリー を見てみよう。
文書の構造や視覚的修飾を記述するための言語。
e.g., HTML+CSS, XML, LaTeX
<h3>見出し3</h3>
<p>ここは段落。
<em>強調(italic)</em>、
<strong>強い強調(bold)</strong>、
<a href="https://www.lifesci.tohoku.ac.jp/">リンク</a>とか。
</p>
ここは段落。 強調(italic)、 強い強調(bold)、 リンクとか。
表現力豊かで強力だが人間が読み書きするには複雑すぎ、機械寄り。
🔰 好きなウェブサイトのソースコード(HTML)を見てみよう。
マークアップ言語の中でも人間が読み書きしやすいもの。
e.g., Markdown, reStructuredText, 各種Wiki記法など
### 見出し3
ここは段落。
*強調(italic)*、
**強い強調(bold)**、
[リンク](https://www.lifesci.tohoku.ac.jp/)とか。
ここは段落。 強調(italic)、 強い強調(bold)、 リンクとか。
RStudio > New File > R Markdown…
(DocumentとHTMLを選択し、)タイトルと著者を埋めて、OK。
---
で挟まれた部分。
文書全体に関わるメタデータを入力。html_document
```{r chunk-name, opt1=FALSE, ...}
のように始まるブロック。echo=FALSE
: コードを非表示。結果は表示。eval=FALSE
: コードを実行せず表示だけ。include=FALSE
: コードも結果も表示せず、実行だけする。fig.width=7, fig.height=7
: 図の大きさを制御。まあ細かいことは必要になってから調べるとして…
report.Rmd
report.html
🔰 編集 → Knit を繰り返して変化を確認しよう
左のようなRmdを作って🧶Knitし、右のようなHTMLファイルを提出。
C0SB0000-iwasaki-day1.html
書籍、ニュースサイト、ブログ記事などを検索し、
良くないデータ解析の例を探して改善案を挙げよう。
4/18月曜はまず40分ほど班ごとに相談。
その後、各班の代表事例を発表してもらいます。