順序ロジスティック回帰 (Ordinal Logistic Regression)
解説
順序ロジスティック回帰とは
順序ロジスティック回帰 (Ordinal Logistic Regression) は、目的変数が順序カテゴリ(順序のある3つ以上のカテゴリ)である場合に用いる回帰モデルです。比例オッズモデル (Proportional Odds Model) とも呼ばれ、隣接するカテゴリ間の閾値(切片)を推定します。
通常の多項ロジスティック回帰では順序情報を活用しませんが、順序ロジスティック回帰ではカテゴリの順序を明示的にモデルに組み込みます。これにより、パラメータが少なく、解釈しやすいモデルが得られます。
主な用途:
- 疾患の重症度分類の予測(軽症・中等症・重症)
- 患者満足度の解析(非常に不満〜非常に満足)
- 教育研究における成績段階の予測(不可・可・良・優)
- リッカート尺度による評価データの分析
- 痛みスケール(NRS)による疼痛評価
本アプリでサポートする機能
| 機能 | 詳細 | 特徴 |
|---|---|---|
| モデル推定 | MASS::polr() (比例オッズモデル) | Hessian行列による標準誤差の算出 |
| カテゴリ順序の指定 | ドラッグ&ドロップによるカテゴリ並べ替え | 直感的な順序設定 |
| 回帰係数 | 各説明変数のオッズ比 | 累積確率に対する効果 |
| 閾値(切片) | カテゴリ間の閾値推定 | カテゴリ境界の推定 |
比例オッズ仮定
順序ロジスティック回帰の最も重要な仮定は「比例オッズ仮定」です:
- 各説明変数の効果(オッズ比)は、どの閾値で分割しても同じである
- つまり、「軽症 vs 中等症+重症」のオッズ比と「軽症+中等症 vs 重症」のオッズ比が等しい
- この仮定が満たされない場合、結果の解釈が困難になります
データ要件と推奨事項
変数の要件
- 目的変数: カテゴリカル変数 1つ(3つ以上の順序カテゴリ)
- 説明変数: 連続変数またはカテゴリカル変数(混在可)
サンプルサイズの目安
| 分析の種類 | 最低限 | 推奨 |
|---|---|---|
| 基本モデル | 各カテゴリに10件以上 | 各カテゴリに30件以上 |
| 複数の説明変数 | 各カテゴリに説明変数数×5件以上 | 各カテゴリに説明変数数×10件以上 |
カテゴリ順序の設定
- 分析前に目的変数のカテゴリ順序を正しく設定してください
- 本アプリでは、ドラッグ&ドロップでカテゴリの順序を変更できます
- 順序は結果の解釈に直接影響します
結果の解釈
回帰係数とオッズ比
- 正の係数: その説明変数が増加すると、より高い順序カテゴリに属する確率が増加
- 負の係数: その説明変数が増加すると、より低い順序カテゴリに属する確率が増加
- オッズ比 (exp(係数)): 説明変数が1単位増加したときの、累積オッズの変化倍率
閾値(切片)の意味
- k個のカテゴリがある場合、(k-1)個の閾値が推定されます
- 各閾値は、隣接するカテゴリの境界を表します
- 例: 3カテゴリ(低・中・高)の場合、2つの閾値(低|中、中|高)が推定されます
注意事項
- 比例オッズ仮定の検証: この仮定が満たされない場合、各カテゴリ境界で異なるモデルを適用する多項ロジスティック回帰の検討が必要です
- カテゴリ数: カテゴリ数が多すぎる場合(10以上)、各カテゴリのサンプルサイズが小さくなり推定が不安定になります
- 等間隔の仮定: 順序カテゴリ間の「距離」は等間隔とは限りません。順序ロジスティック回帰はこの点を正しく扱います
- 基準値設定: 本アプリでは、目的変数に基準値が設定されていても順序ロジスティック回帰には反映されません(カテゴリ順序のみが使用されます)
- 収束の問題: サンプルサイズが小さい場合やカテゴリが偏っている場合、モデルが収束しないことがあります
他の多変量解析手法
複数の説明変数によるデータ分析 (多変量解析) ページでは、本手法を含む10種類の多変量解析手法の概要と比較をご覧いただけます。
下のアプリでは、入力されたデータの目的変数・説明変数のタイプを自動判定し、適用可能な統計手法をすべて提示します。 そのため、本ページの手法以外の結果も表示されることがあります。これは同じデータ設定で複数の分析を比較検討できる仕組みです。
アプリ
| 分類内容 | 値 | |
| {{ 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}}
入力されたデータの目的変数・説明変数のタイプを自動判定し、適用可能な統計手法をすべて提示します。 これは同じデータ設定で複数の分析を比較検討できる仕組みです。
{{calledFromSubPage? '本アプリで統合的に実行可能な': ''}}分析法の特徴一覧
| 手法 | 英語名 | 目的変数のタイプ | 説明変数のタイプ | 特徴 | Wikipedia |
|---|---|---|---|---|---|
| {{ method.japaneseName }} | {{ method.englishName }} | {{ method.dependentVariableType }} | {{ method.independentVariableType }} | {{ method.characteristic }} |
データ
設定
統計手法
| 変数名 | 数値 | 連続変数 | カテゴリカル /離散変数 |
|||
|---|---|---|---|---|---|---|
| {{ variable }} | {{ type.numerical ? '〇' : '-' }} | {{ type.originallyContinuous ? '〇' : '-' }} | {{ type.originallyCategorical ? '〇' : '-' }} |
データの分類は以下のルールに従っています
変数タイプは手動で調整できます
- : 有効 / : 無効
- クリックすると切り替わり、各統計手法に渡されるデータ形式を明示できます。
| 手法 | 目的変数のタイプ | 説明変数のタイプ | 適用 |
|---|---|---|---|
| {{ method.japaneseName }} | {{ method.dependentVariableType }} | {{ method.independentVariableType }} | {{ method.reason }} |
結果
{{method.japaneseName}} ({{method.englishName}})
- {{ warning }}