Rではじめよう!生態学・環境科学のためのデータ分析超入門

その他 書籍には書いてないこと ミスの訂正など(順次追加)

・快適な勉強・データ分析環境のために (2024.06.11)

持ち運びを考えると家でもメインマシンとしてノートPCを使っている人が多いと思います.でも画面があんまり大きくありませんね.そこで,特にプログラミングをするときには、外付けのモニターを付けることを強くお勧めします.そうすれば,自分の目の前の画面(ノートPCのモニタ?)いっぱいに自分がコーディングをするRStudioを立ち上げ,もう一つの画面には,このウェブページ(とくに各章で日本語のコメントが入っているhtmlファイル)を表示し,いちいちマウスで重なり合うウィンドウを切り替えなくても,ストレスフリーで勉強したりデータ分析したりできるはずです.デスクトップPCを使っていて、出力の関係でモニターを一つしかつなげない場合は,これでもかというくらい横長のモニタを使うといいでしょう.

・メールアドレスに紐づかないユーザーアカウントを作るのは難しいかも (2024.06.12)

Windows11は頻繁に更新を繰り返していて,どんなメールアドレスとも紐づかないアカウントを作るのはますます難しくなっているようです.2章のBOX1の方法はうまくいかなくなるでしょう.本当はメールアドレスやWindowsアカウントと紐づいたユーザーアカウントでPCを常時使うのは常に監視されているようで気持ち悪いのですが…

・[6.4.2] 分散分析表の説明が間違っています (2024.06.24)

大変恥ずかしいことに[6.4.2 植物プランクトン種数の月間比較]に致命的なミスがあります.
書籍中の以下に示した6.4.2の最終段落において,「水準内」と「水準間」があべこべです.

Sum Sq は注目している因子については「水準内バラつきの総和(=水準内平方和)」であり,残差(Residuals)については水準間平方和です.Mean Sq はデータあたりのバラつきの大きさを表し平方和を自由度で割ったもの,すなわち(不偏)分散です.F value は上で述べたF値そのものであり,水準内分散÷水準間分散で計算されたものです.

1) Sum Sq は正しくは「水準間ばらつきの総和(=水準間平方和)」です.
2) 残差(Resiquals) は正しくは「水準内平方和」です.
3) 「水準内分散÷水準間分散」は正しくは「水準間分散÷水準内分散」です.

第6章の該当部分にも注意書きを追加しました.

本書は生物統計学の手法の詳細自体については詳しく解説していません.分散分析(要因の平方和(=水準間平方和)、残差=誤差の平方和(=水準内平方和))について正確な知識を得るためには、数式をきっちり使って全分散を分解している解説を読むことが必要でしょう.たとえば、小野 滋さんの「読めば必ずわかる分散分析の基礎」がおすすめです.

・文字列をコンソールに表示する際の改行コード(¥n, \n)の表記について (2024.07.11)

cat()関数を使うと文字列や数値をコンソール上に表示できます.たとえば、chapter04_4-2.Rの7行目には、以下のコードがあります.

cat("a is greater than 3.", "\n")

ここで”\n”は改行を指定するための仕組みなのですが,OSの言語やRStudioの標準言語・バージョンなどによって、円マークが使われる場合(“¥n”)とバックスラッシュが使われる場合(“\n”)がありますが全く同じ意味となります. 

・誤字脱字について (2024.07.18)

以下のように誤字・脱字があります.順次追加します.

・75ページ中ごろ:「データが正しく読み込まれいることがわかりますね.」→「データが正しく読み込まれいることがわかりますね.」

・モデル選択について (2024.10.20)

7.3の「モデル選択」部分について、以下のように補足します.

・私自身の理解も不十分な土台の上に簡単な説明にとどめていますので,この部分だけ読むと「わかった気」になれますが,そのせいで「なんでもモデル選択AIC最小化病」に陥るかもしれません.そんな病気にかかるのを防ぐためには以下の書籍をぜひ手に取り,最低でも116ページの表3・3までたどり着いてください.
林 岳彦著(2024)はじめての統計的因果推論.岩波書店 https://www.iwanami.co.jp/book/b639904.html

・列名の選択について (2024.11.06)

第5章の最後のほう(p.94)の図5.4の形にまとめた”species_ryuko_data”というデータフレームについては,第6章以降でも繰り返し使っています.このデータフレームで列名を指定しようとすると,たとえば、以下のように

species_ryuko_data$ `Micrasterias hardyi`

$マーク以降の列名Micrasterias hardyiが見慣れない記号「``」で囲われているのが分かります. なぜこんな記号で囲われているかというと列名の中にスペースが含まれているからです.このデータの列名はすべて植物プランクトンの種名について学名(属名+スペース+種小名)で表記されているため、必然的にスペースが入ってしまっているのです.一方,Rというコンピュータ言語では,オブジェクト等の区切りにはスペースを使っています(英語で文章を書くときに単語がスペースで区切られているのと同じです)(ただしa足すb,のような演算をしたい時は, a+bもa + bも同じ挙動を示します).したがって、仮に 上のコードを 「species_ryuko_data$Micrasterias hardyi」こう書いてしまうと、species_ryuko_data$Micrasteriasまでが一つのコードの塊で、hardyi部分は別のコマンドの一部と誤認識されてしまうのです.このような誤認識を防ぐため,(``)で囲われているというわけです.

しかし、Rスクリプトファイル上でデータフレームを作って自ら列名をつける場合は,このような扱いは面倒くさいので,複数の単語を含むような列名を付けたい時でも,スペースは使わずにアンダー・バー(_)かドット(.)を使います.たとえば,「sampling date」という名前を付けたい時はsampling_date,または, sampling.date などとします.ハイフン(-)を使いたくなるかもしれませんが,半角英数字では引き算の演算子(マイナス - )と区別がつかないので使えません.