はじめに
jamoviは、Rをバックエンドとしたオープンソースの統計ソフトです。SPSSに近いGUIを備えており、心理学や教育学を中心に利用されています。jamoviのよいところは、無料のソフトウェアなのに、高価な商用ソフトに匹敵する分析、場合によってはそれ以上の分析が、マウスクリックだけで簡単にできてしまうことです。
本記事では、このjamovi上でGUIだけを使ってSEM(構造方程式モデリング)を実行できるモジュールを紹介します。
開発のいきさつ
jamoviは本当によくできたツールです。確認的因子分析ですら、一切のスクリプティングなしに数クリックで実行できます。しかも出力は見やすく整理されており、必要な情報だけを適切に表示してくれます。そのため、統計法の授業で「ソフトの操作説明だけで終わってしまう」ということがほとんどありません。学部レベルの心理統計教育で扱う範囲であれば、多くの場合は十分な機能を備えています。
しかし、ひとつだけ不満がありました。それは、SPSS AMOSのようにGUIでSEMを実行できる環境がないことです。
jamoviにはSEMを実行するための拡張モジュールがすでに存在し、JASP1にも同様の機能があります。しかし、それらは完全なGUIではなく、lavaan(RでSEMを実行する際に広く用いられているパッケージ)の構文を記述して実行する形式です。Rやlavaanに慣れたユーザーには問題ありませんが、jamoviを使い始めた学生にとっては、それだけで大きなハードルになります。
そのため、これまでは授業でSEMを扱う際に、ΩnyxというオープンソースのSEMソフトウェアを利用していました。ΩnyxはAMOSに近い感覚でモデルを作成できる優れたツールですが、インターフェースが英語のみであることや、別ソフトを導入する必要があることから、やはり初学者には負担が小さくありません。
そこでふと思いました。
「Ωnyxのような操作感を、jamoviの中で実現できないだろうか?」
jamoviは非常にオープンな設計になっており、ユーザーが独自のモジュールを開発できます。もちろん、ゼロから開発するとなると相応の時間と労力が必要ですが、最近はClaude CodeやCodexのようなコーディング支援AIもあります。
試しにClaudeに「こういうモジュールは作れるのか」と相談してみたところ、「十分可能です」との返答。正直なところ最初は半信半疑でした。しかしGitHubでリポジトリを作成し、Agentモードで開発を始めてみると、驚くほどのスピードで形になっていきました。その結果、私は1行もコードを書くことなく、指示出し、ダメ出ししただけで、数日ほどでプロトタイプを完成させることができました。本記事で紹介する「SEM GUI」は、そうして生まれたモジュールです。
導入方法
本モジュールはjamoviライブラリに登録されています。「分析」タブの「モジュール」>「jamoviライブラリ」から「pathfy」で検索し、「インストール」ボタンを押せばインストール完了です。分析用のメニューが「因子」内に「グラフィカルSEM」という名前で追加されます。
使用方法
ここでは、サンプルデータ 03_sem.omv を使って簡単なSEMを実行してみます。
1. サンプルデータを開く
まず、GitHubの examples フォルダから 03_sem.omv をダウンロードし、jamoviで開きます。
このデータには、
- 自然接触頻度(nature_freq)
- 自然とのつながり(nc1~nc4)
- 主観的幸福感(wb1~wb4)
が含まれています。
2. SEM GUIを起動する
「分析」タブの「因子」から「グラフィカルSEM」を選択します。
すると、分析設定画面が表示され、画面右側にはモデル編集用のパネルが表示されます。
3. 観測変数を追加する
変数の設定方法は、jamoviの他の分析と共通です。まず、モデルに投入する観測変数を変数一覧から選択し、それらを「顕在変数」に移動します。今回顕在変数(観測変数)として分析に使用するのは、以下のものです。
- nature_freq
- nc1 ~ nc4
- wb1 ~ wb4
「顕在変数」に変数を追加すると、それらは自動でモデル編集用のパネル上に配置されます。モデル上では、顕在変数は矩形ノードとして表示されます。
4. 潜在変数を追加する
潜在変数(因子)は、「顕在変数」の下にある「潜在変数」欄で指定します。「追加」ボタンを押して、NC(自然とのつながり)とWB(ウェルビーイング)という次の2つの潜在変数を追加してください。モデル上では、潜在変数は楕円ノードとして表示されます。
- NC
- WB
5. 変数のレイアウト
モデルパネル上で変数をマウスでドラッグし、見やすい位置に移動します。一応、自動配置ボタンもつけてありますが、モデルの構造を考慮して配置してくれるわけではありませんので、過度に期待しないでください。
6. 測定モデルの設定
モデルパネル上に配置された各変数(ノード)を右クリックすると、パスを追加するメニューが表示されます。パスの種類は、回帰、共分散、因子負荷の3つです。因子負荷は、潜在変数を右クリックした場合にのみ表示されます。
NCを右クリックして「因子負荷を追加」を選択し、nc1のノードをクリックすると、NC因子からnc1への因子負荷のパスが設定されます。
同様にして、NCからnc2〜nc4へのパス、WBからwb1〜wb4へのパスも設定しましょう。
7. 構造モデルの設定
最後に、構造モデルのパスを設定します。nature_freqを右クリックして「回帰を追加」を選択し、NCをクリックすると、nature_freq→NCの回帰パスが設定されます。同様にして、NC→WBパスも設定しましょう。
全体の設定が終わるとこのようになります。
8. 分析結果の確認
一般的な統計ソフトでは、分析結果を見るには「実行」ボタンを押したり、「run」コマンドを実行したりする必要がありますが、jamoviは設定を変更するたびに即座に結果が更新されていきますので、「実行」ボタンというものが存在しません。モデルを編集するたびに、結果が再計算されます。モデル上に係数が表示したくない場合には、パネル左上の「推定値」をオフにして係数を隠すこともできます。
なお、初期設定では、パス上に表示される係数は標準化されていません。標準化係数を表示したい場合は、設定パネルの「出力」を開き、「標準化推定値を表示」にチェックを入れます。もちろん、チェックを入れれば表示が自動で更新されます。
また、モデルパネルはあくまでもモデル構築を目的としたものなので、係数がパスと重なったりして見づらく感じられるケースがあると思います。その場合には、同じく「出力」にある「パラメータ推定値の表」にチェックを入れると、各係数を一覧で表にしてくれます。
以上でSEMの実行は完了です。ここでは簡単な例を示しましたが、複数の潜在変数を含むモデルや共分散を含むモデルも同様の手順で作成できます。
現バージョンの機能
現時点でできること
- パス解析
- 確認的因子分析(CFA)
- 構造方程式モデリング(SEM)
- 高次因子モデル、bifactorモデルなど、比較的複雑な測定モデル
現時点でできないこと
- 多母集団分析
- 測定不変性
- ブートストラップ法による信頼区間推定(現バージョンはWald区間を用いています)
-
jamoviの兄弟とも言えるフリーの統計ソフト。こちらはベイズ統計に比重を置いている。 ↩









