2021-04-29

【備忘録】正規性の検定

このところ、データ集団が正規分布になっているかどうかを検定するために、Shapiro-WilkAnderson-Darling 検定を Python で実施する方法を調べていましたが、欲しかった情報がひとまず得られ、その上、信頼区間付きの Q-Q プロットも作成できました [1]。そこで、もともと作りたかった GUI サンプルを作成してみました。

最低限の機能を実装することが目的だったので、正規乱数を発生させてそのデータのプロットと正規性の検定をおこなっています。

以下に、PySide2 のサンプルを示しました(Qt6/PySide6 に Matplotlib のオブジェクトを埋め込むサポートがまだ利用できませんでした)。

qt_matplotlib_normality.py

Fedora 34 の GNOME デスクトップ環境で実行した例を示しました。

qt_matplotlib_normality.py の実行例

データ集団の正規性を調べるのに、検定だけでなく確率プロット、ボックスプロット、そしてヒストグラムを並べて確認したかったので、3つのプロットをひとつのイメージに収めようと四苦八苦しました。結局、グリッドで変態的なレイアウトの設定をしていますが、プロット上下の余白など、レイアウトにはまだ不満が残っています。😅

Qt 側で個々のプロットの比率を自分が望むように自在にコントロールできるのであれば、レイアウトのやり方にはまだまだ改善の余地がありそうです。

雑感

個人用途であれば R でササッと計算するだけですが、他の人と同じツールを共有して同じ目的で使いたい場合に困ってしまいます。統計計算用途で R は十分ポピュラーなツールですが、それでも、統計計算が主たる業務ではないエンジニアが、業務で統計計算をするのに R を使っているケースは稀です。

一方、Minitabjmp といった市販の統計計算用ソフトウェアを企業で導入していれば、業務ではそれを利用することが望ましいです。しかし、使用資格やライセンス制限などの問題で、自分は利用できても相手が利用できない場合があります。さらに企業間でも、となれば、ソフトウェアが違っていたりして、同じやり方を共有することにはなかなか難しい課題があります。

それに、エンジニアリングにおいて汎用用途で統計計算用ソフトウェアを使うニーズはほとんど無く、多くは特定用途です。一部の機能しか使わなければ、汎用用途の統計計算ソフトウェアは(フローティングライセンスとしても)高価です。

いろいろな統計計算モジュールをあらかじめ用意しておいて、用途に併せて必要なモジュールを組み合わせて、必要なカスタマイズをしてパッケージにして、Windows 用のインストーラを作って配布すれば、多くの人と同じ目的のために使うツールを共有できます。Python を使えば、そういった使い方を実現できそうです。

参考サイト

  1. bitWalk's: Pingouin で Q-Q プロット [2021-04-25]

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ Linuxへ
にほんブログ村

0 件のコメント: