Google ColabのPythonを使ってCWFの外れ値を検出・除外してみる
統計処理を真面目にやるためには、触ったこともないRかPythonだなあと思っていたのだが、調べたところGoogle Colaboratoryを使えばPCでの環境構築が必要なくPythonga使えるらしいので、やってみた。触り始めてからまともに使えるまで数日間かかったのだが、引っかかっていたのはPythonのデータ形式の扱いであった。ファイルを読み込んだら数字が文字として認識されていたり、データ形式が配列だったりリストだったり、関数によっては配列・リストのどちらかしか適応できなかったり…おかげで勉強になりました。
Pythonで出力したCWFヒストグラムが以下。これは先日エクセルで作ったものと同じ。Pythonに自動生成させたので軸のラベル貼りはサボってます。
で、こっから外れ値を除外するわけであるが、使った手法はスミルノフ・グラブス検定という手法。参考にしたのは下記のサイト
実験データの外れ値を統計学的に判別する方法 | BioTech ラボ・ノート
で、Pythonのコードは
Smirnov-Grubbs検定を用いる外れ値除去のPython実装 | Graviness Blog
にあったので使わせてもらった。有意水準は5%とかがよく用いられているらしいので、5%にした。その結果、15本が外れ値として検定され、ヒストグラムは以下のように変化した。
で、先日と同じようにQ-Qプロットをして比較してみる(自動生成グラフなので、横軸の値は先日のものと違います)。
うーん、直線とは言えないかな…
他にもシャピロウィルク検定ってのもやってみたけど、正規分布とは言えない値が得られた。外れ値除外しても正規分布を仮定した分析は正確ではないみたい。
まあ、それでも目立った外れ値を除外するには十分かな?とりあえずはこれで良いことにして、今後バラツキを評価してみたい。
結論:Pythonと統計分析の勉強になりました(ワイン関係ないな…)