適合度検定
(Goodness of Fit Test)
解説
適合度検定とは
適合度検定は、1つのカテゴリ変数の観測度数が、あらかじめ定めた期待分布(例: 等確率・理論的な比率)に適合しているかどうかを検定する手法です。
例えば、サイコロを60回振ったときに各目が10回ずつ出ることが期待されますが、実際の観測度数がこの期待からどの程度ずれているかを統計的に評価します。
帰無仮説 (H₀): 観測度数は期待分布に適合している
対立仮説 (H₁): 観測度数は期待分布に適合していない
本アプリでサポートする機能
検定手法
| 手法 | 特徴 |
|---|---|
| N-1カイ二乗検定 (Pearson) | 最も標準的な手法。N-1補正により小標本でも安定した結果が得られる |
| G検定(尤度比検定) | 対数尤度比に基づく検定。大標本では Pearson カイ二乗検定と同等の結果になる |
| Freeman-Tukey残差 | アークサイン変換を用いた残差による検定。小セル度数に頑健 |
期待確率の設定
- 等確率: 全カテゴリが同じ確率で出現する仮説(例: サイコロ)
- カスタム確率: 各カテゴリに任意の期待確率を指定(例: 理論値・先行研究の値)
順序ありカテゴリの検定
カテゴリに順序がある場合(例: 軽症・中等症・重症)、順序情報を活用した検定が可能です。
| 手法 | 説明 |
|---|---|
| Cochran-Armitage傾向検定 | 順序スコアを用いて単調な傾向を検定する |
| N-1カイ二乗検定(順序無視) | 参考として順序を無視した通常の検定も実施 |
| Page検定 | Cochran-Armitage傾向検定で代替 |
順序スコアは「等間隔 (1, 2, 3, …)」「重み付けスコア」「カスタムスコア」から選択でき、ドラッグ&ドロップでカテゴリ順序を変更できます。
効果量
- Cramer's V: カイ二乗統計量をサンプルサイズとカテゴリ数で標準化した効果量
- Cohen's w: 観測確率と期待確率の乖離を表す効果量(0.1 = 小, 0.3 = 中, 0.5 = 大)
その他の出力
- 調整済み残差: 各カテゴリが全体の乖離にどの程度貢献しているかを示す
- 観測度数・期待度数・確率の一覧表: 各カテゴリの詳細を確認できる
- 視覚化: 観測度数と期待度数の棒グラフ比較
データ要件と推奨事項
- 必要なデータ: カテゴリ変数を含む個票データ(または度数カラムを持つ集計データ)
- 度数カラム: 各行がカテゴリの度数を表すカラムがある場合は指定可能
- 推奨サンプルサイズ: 全カテゴリの期待度数が5以上であることが推奨(期待度数5未満の場合は警告を表示)
- カテゴリ数: 2カテゴリ以上に対応
結果の解釈
| 結果 | 解釈 |
|---|---|
| p値 < 0.05 | 観測分布と期待分布の差は偶然とは考えにくい |
| p値 ≥ 0.05 | 観測分布と期待分布の差は偶然の範囲内かもしれない |
| 調整済み残差 > 1.96 | そのカテゴリは期待より有意に多い (α = 0.05) |
| 調整済み残差 < -1.96 | そのカテゴリは期待より有意に少ない (α = 0.05) |
注意事項
- 期待度数が5未満のカテゴリがある場合、検定の妥当性が低下します。カテゴリの統合を検討してください。
- p値が小さいことは、差の大きさを意味しません。効果量(Cohen's w など)で実質的な差を評価してください。
- 統計的有意差があっても、実務的に重要とは限りません。
- カスタム確率を指定する場合、合計が1.0になるように設定してください。
アプリ
| 分類内容 | 値 | |
| {{ item.tag }} |
データの取り扱い
- データインポート
- データの読み込みは、ブラウザ内で完結し、外部へのデータ送信は発生しません。
- データ保持
- 読み込んだデータはブラウザ内に保持されます。
- ブラウザのセッションが終了または全てのタブが閉じられると、保持していたデータは自動的に破棄されます。
- データの安全性
- ブラウザがクラッシュした場合でも、10分経過すれば次回の起動時にデータは安全に消去されます。
- 共用のPCでの使用も考慮し、データの外部漏洩のリスクを最小化しています。
クラウド R を利用する時のデータ送信
- 最小限のデータ送信
- 外部のRサーバーへ送信されるデータは、数値計算に必要な最小限のセットに制限されています。
- 送信データは解析に必要なサブセットのみに限られます。
- ユーザーコントロール下のデータ送信
- 送信前に、どのデータが外部サーバーへ送信されるのか内容を確認することが可能です。
- データの送信はユーザーの操作により行われ、自動的な送信は行いません。
- クラウド R 出力結果の保持
- クラウド R からの出力結果は、将来の自動翻訳や自動解説の機能実現のため、サーバーがデータベースに保持します。
- その際に、送信者の情報や、計算元となるデータなど、プライバシーに関わる情報は保持しません。
- 通信経路も全て暗号化していますので、たとえプライバシーに関わる情報が含まれていたとしても、通常は漏洩する恐れはありません。
AI による解説を利用する時のデータ送信
- 最小限のデータ送信
- 外部のAIサーバーへ送信されるデータは、クラウド R の出力結果と、用いた統計手法の徐放です。
- ただし、クラウド R の出力結果に連続した数値データが含まれる場合は、AI にデータ形式を認識させる目的で、連続データの最初の行のみを送信します。
- クラウド R 出力結果の保持
- AI による解説内容は、将来の品質向上などのため、サーバーがデータベースに保持します。
- その際に、送信者の情報や、計算元となるデータなど、プライバシーに関わる情報は保持しません。
Reactive stat において、統計データの変数は、通常の数値や文字列として扱われます。 したがって、日付や時間の概念は直接的にはサポートされていません。
統計計算を行う際には、日付や時間の差分を数値として事前に用意しておく必要があります。
チェックされた行が削除対象となります
削除対象の行
データ入力
AI による R コードの解説
R の出力結果
R出力図形
AI による R 出力結果の解説
- データ: カラム名 (列名) をそのまま記述するか、"列名" のようにダブルクォートで挟んで指定
- 算術演算子: +, -, *, /, ()
- 基本関数: abs(), sqrt(), pow(), exp(), log(), log10()
- 三角関数: sin(), cos(), tan(), asin(), acos(), atan()
- 丸め関数: round(), floor(), ceil()
体重 / pow(身長, 2), "体重" / ("身長" * "身長")
{{ column }}
{{title}}
データ
設定
各カテゴリの期待確率
合計が1.0になるように設定してください合計確率: {{ totalProbability.cp3 }}
⚠️ 確率の合計が1.0ではありません
結果
{{L.obsData}}
| {{L.category}} | {{L.obsFreq}} | {{L.expFreq}} | {{L.obsProb}} | {{L.expProb}} | {{L.adjResidual}} |
|---|---|---|---|---|---|
| {{ category }} | {{ observedFreqs[category] }} | {{ expectedFreqs[category]?.cp2 }} | {{ observedProbs[category]?.cp3 }} | {{ expectedProbs[category]?.cp3 }} | {{ testResults.adjResiduals[category]?.cp2 }} |
| {{L.total}} | {{ totalObserved }} | {{ totalObserved }} | 1.000 | {{ totalExpectedProb.cp3 }} |
{{L.visualize}}
{{L.chiSqTest}}
{{L.orderedTest}}
現在の順序: {{ orderedCategoryNames.join(' → ') }}
順序を考慮した検定はクラウドRで実行されます。
N-1カイ二乗検定は順序情報を無視するため、参考値として表示されます。
{{ language === 'ja' ? '参考: N-1カイ二乗検定(順序無視)' : 'Reference: N-1 Chi-square test (ignoring order)' }}
0.1 = {{language === 'ja' ? '小' : 'small'}}, 0.3 = {{language === 'ja' ? '中' : 'medium'}}, 0.5 = {{language === 'ja' ? '大' : 'large'}}
- カテゴリの統合を検討してください
- より適切な検定手法の使用を検討してください