ベイズ統計をお手軽に、統計解析ツールJASPの紹介

| 5 min read
Author: shuichi-takatsu shuichi-takatsuの画像

近年ベイズ統計学が注目されています。
ネットでも書店でもベイズ統計学やベイズの定理、ベイズ推定に関する情報が増えたと感じています。

ベイズ統計学を「体験してみたい」「ちょっと使いたい」と思った時に統計解析に強いプログラミング言語Rを使ってコードをガリガリと書いていくのは入門者にはかなり敷居が高いと思います。
これからどっぷりとR言語に入り浸ってR言語を極めて行こうという志があれば話は別ですが、統計解析に興味があるからといってプログラミングをしたいわけでは無いケースも多いでしょう。
RStudioやRコマンダー、Easy Rなどのツールを使用することでR言語に対する敷居をある程度は下げてくれますが、それでもお手軽に使えるとは言い難い状況です。

統計解析ブログでたびたび使用している統計解析ツールjamoviには分析の一部にベイズ統計のオプションがありベイズ統計を体験できますが、ツールの基本分析機能はあくまで古典的(伝統的)統計学が主なので、ベイズ統計オプションがサポートされていない分析でベイズ統計を試すには他の手段が必要です。

Contents

統計解析ツールJASP

#

これまで古典的(伝統的)統計学を用いて分析していた対象をベイズ統計学を使って分析したらどうなるのかという好奇心に応えてくれるツールがあります。
それがJASPです。
JASPとは「Jeffreys's Amazing Statistics Program」の頭文字を使った名称のようです。
アムステルダム大学心理学部が中心になって開発が進められており、以下の特徴があります。

  • 無償で利用が可能
  • GUIがSPSSに似ている
  • 出力結果がAPA(アメリカ心理学会)スタイル準拠である
  • 分析設定パネルを操作すると自動的に分析結果に反映される
  • 古典的(伝統的)統計手法に加え、多くの分析手法がベイズ統計に対応している

上から4つ目まではjamoviとほぼ同じです。
しかし最後の特徴がJASPを他のツールに対して一線を画す存在にしています。
JASPは「ベイズ統計」を扱うことに特化して開発されていると思えるほどベイズ統計分析機能が充実しているのです。

jamovi VS JASP

#

JASPはjamoviと似たような外観と操作性を兼ね備えています。
メニューも日本語化されています。(jamovi: 2.3.12、JASP: 0.16.2.0 にて確認)
比べてみましょう。

jamoviの外観(起動直後)

JASPの外観(起動直後)

両ツールでは使える分析手法もほぼ同じです。

jamoviの分析メニュー

JASPの分析メニュー

見た目にはJASPに「混合モデル」というカテゴリが追加されているくらいの差しかありません。

私が調べたところによるとjamoviの開発者の一部がJASPの開発者と被っているようなので、UIや操作性、機能が似ているのは納得できるところです(現在も開発者が被っているかは不明ですが)。

それぞれのツールが提供する分析機能の詳細を見ていきましょう。
今回使用したツールのバージョンは以下です。

jamovi :2.3.12
JASP :0.16.2.0

統計解析ツール「jamovi」の分析機能

#

記述統計・推計統計が扱えます。
インストール直後の初期状態では分析機能の一部でベイズ統計がオプションとして選択できます。
(”初期状態で”と制限をつけた理由は後でご説明します)
分析カテゴリとして「t検定」「分散分関」「回帰分析」「度数分析」「因子分析」を持ちます。

推計統計、ベイズ統計の分析機能詳細は以下です。

カテゴリ 分析 推計統計 ベイズ統計
t検定 対応なしt検定
対応ありt検定
1標本t検定
分散分析 1要因分散分析
分散分析
反復測定分散分析
共分散分析
多変量共分散分析
1要因分散分析(クラスカル=ウォリス)
反復測定分散分析(フリードマン)
回帰分析 相関行列
偏相関
線形回帰
2値目的変数(2項)
多値目的変数(多値)
順序目的変数
度数分析 2値目的変数(2項検定)
多値目的変数(カイ二乗適合度検定)
対応なし(カイ二乗独立性検定)
対応あり(マクニマー検定)
対数線形回帰
因子分析 信頼性分析
主成分分析
探索的因子分析
確認的因子分析

ベイズ統計オプションを持っている分析機能は「t検定(対応あり、なし、1標本)」と「2項検定」のみです。
(もしかしたら他にも対応しているカテゴリ・分析機能があるかもしれませんが探しきれませんでした)

統計解析ツール「JASP」の分析機能

#

記述統計・推計統計・ベイズ統計が扱えます。
分析カテゴリとして「t検定」「分散分関」「混合モデル」「回帰」「度数分析」「因子」を持ちます。
jamoviと比較すると分析機能数は若干少ないですが、ベイズ統計カバー率は圧倒的にJASPの方が高いです。

推計統計、ベイズ統計の分析機能詳細は以下です。

カテゴリ 分析 推計統計 ベイズ統計
t検定 独立したサンプルのt検定
対応のあるサンプルのt検定
1標本のt検定
分散分析 分散分析
反復測定分散分析
共分散分析
多変量分散分析
混合モデル 線形混合モデル
一般化線形混合モデル
回帰 相関
線形回帰
ロジスティック回帰
度数分析 二項検定
A/B検定
多項検定
分割表
対数線形回帰
因子 主成分分析
探索的因子分析
確認的因子分析

上記の表を見てもわかるように「因子」以外のほぼすべてのカテゴリでベイズ統計に対応しています。

JASPで「ベイジアン-独立したサンプルのt検定」を実施してみる

#

以前のブログで使用したデータをそのまま使います。
データをCSVで用意して、JASPで読み込みます。
メニューから「分析」-「ベイジアン」-「独立したサンプルのt検定」を選択します。

以下のように設定します。

事前分布についてはデフォルトのままで良いです。

検定結果が以下のように表示されました。

ベイズファクターは「4.129」となっています。
同じデータを使ってjamoviのベイズ統計オプションで分析した結果を見てみましょう。
以下がjamoviで分析した結果です。

小数点以下の桁数に差がありますが、同じ結果になっています。

JASPのちょっと面白いところ

#

JASPはモジュールを組み込むことで機能を追加できます。
JASPの右上にある「十字マーク(モジュールメニューの表示)」を押して、一覧に表示されるモジュールの中から「ベイズを学ぶ」を選択します。
すると分析メニューに「ベイズを学ぶ」が追加されました。

「ベイズを学ぶ」で選択可能な内容は以下のようなものでした。

「チャンスのゲーム」を選択してみましょう。
以下のような画面が表示されました。

データを変更するとグラフが動的に変化していきます。
ゲームの内容自体の説明はここでは割愛します。

次に「分布」モジュールを追加してみましょう。
メニューに「分布」が追加されました。
「分布」をクリックすると様々な分布が確認できます。

ためしに「正規分布」を選択してみます。
結果は以下のように表示されました。

これは特に説明の必要もないでしょう。

次に「カイ二乗分布」を選択します。
結果は以下のように表示されました。

この分布モジュールを使って様々な分布を確認することが出来ます。
統計では確率にさまざまな分布を利用するので、分布を視覚的に確認できるのはありがたいことです。

JASPで使いづらいところ

#

JASPを使ってみて何点か気になった点をあげていきます。

  • JASPはツール上で変数の追加登録・変更ができないので、変数の編集には別の外部ツール(Excelなど)が必要になります。jamoviは変数の追加登録・変更が自由にできます。
  • メニューは日本語化されていますが、結果表示欄の一部は英語のままです。
  • 日本語データは文字化けすることが多かった。(筆者の環境の問題かもしれないですが)

1番目がもっとも使いづらいところでしょう。
JASPではjamoviのようにツール自体をスプレッドシートのように扱うことができません。これはツールに求める思想の違いなんでしょう。

英語表記が残っているのはそれほど問題ではありません。

名義尺度が日本語で記述されていた場合などに文字化けすることが多々ありました。筆者の環境の問題かもしれないですが、データ名等に日本語を使うときは注意した方が良いかもしれません。

jamoviでもがっつりベイジアン

#

実はjamoviでもJASPのようにモジュールを追加することによって、多くの分析機能でベイズ統計を扱えるように拡張することが出来ます。
jamoviの右上にある「十字マーク」を押して「jamoviライブラリ」を選択します。

ライブラリ一覧が表示されるので「利用可能」のライブラリの中から「jsq - Bayesian Methods」を選択しインストールします。

このモジュールの説明文から分かるように、jsqモジュールはJASPプロジェクトの支援を受けて作成されたもののようです。

モジュールをインストールしてツールを再起動すると、次のようなメニューが追加されます。

jsqモジュールがjamoviの「t検定」「分散分析」「回帰分析」「度数分析」にベイズ統計分析機能を付加してくれました。
ここまで拡張すればjamoviとJASPのどちらのツールを使うかは、かなり好みの問題のような気がします。

まとめ

#

今回は各種データ分析でベイズ統計を利用できる統計解析ツール「JASP」をご紹介しました。
JASPは無償で利用でき、GUIもjamoviとかなり似ているのでjamoviと同じような感覚で分析をすることができます。(どちらかというとjamoviとJASPがSPSS側に似せているのでしょう)
また、JASPプロジェクトからの支援によってjamoviもJASPと同程度のベイズ統計分析機能を利用できることがわかりました。

統計解析ツール紹介やその活用方法をまとめています。

データ分析に活用して頂ければ幸いです。

豆蔵デベロッパーサイト - 先週のアクセスランキング
  1. Nuxt3入門(第1回) - Nuxtがサポートするレンダリングモードを理解する (2022-09-25)
  2. 自然言語処理初心者が「GPT2-japanese」で遊んでみた (2022-07-08)
  3. GitHub Codespaces を使いはじめる (2022-05-18)
  4. Jest再入門 - 関数・モジュールモック編 (2022-07-03)
  5. ORマッパーのTypeORMをTypeScriptで使う (2022-07-27)
  6. Nuxt3入門(第4回) - Nuxtのルーティングを理解する (2022-10-09)
  7. Nuxt3入門(第3回) - ユニバーサルフェッチでデータを取得する (2022-10-06)
  8. 第1回 OpenAPI Generator を使ったコード生成 (2022-06-04)
  9. Nuxt3入門(第8回) - Nuxt3のuseStateでコンポーネント間で状態を共有する (2022-10-28)
  10. Nuxt3入門(第2回) - 簡単なNuxtアプリケーションを作成する (2022-10-02)