多変量解析」カテゴリーアーカイブ

重回帰分析の実際的な手順  

重回帰分析はSPSSでやると一瞬ですが、高価なソフトウェアがなくても無料のpythonやRを使って分析することも比較的簡単にできるようです。実際的な手順を解説したサイトを纏めておきます。

得られた予測式の係数の解釈について:注意点など

  • 回帰係数にはデータ単位があり、目的変数のデータ単位と同じ
  • 回帰係数から『説明変数の目的変数に対する貢献度』がわかります。
  • データ単位が変われば係数の値も変わることを理解してください。したがって、関係式の回帰係数を比較し、値が大きい説明変数ほど目的変数に貢献しているとか重要であるいうことはいえません。重回帰分析では、回帰係数とは別の統計量「標準回帰係数」を算出し、この値を使って売上を予測するのに重要な説明変数のランキング(順番)を把握します。

引用元:多変量解析の手法別解説>重回帰分析(2/3) アイスタット

 

  • 特に注意しないといけない点は,回帰分析は決して因果関係を表しているわけではないということです.従属変数を独立変数で「予測」するのが回帰分析というと,いかにも「独立変数⇒従属変数」という矢印つきの因果関係を想定しがちですが,決して因果関係と断定はできません.あくまで回帰係数は相関関係です.例えば単回帰分析の場合,独立変数と従属変数を入れ替えても,標準化された回帰係数は全く変わらず,しかもその値は普通の単相関係数なのです.
  • 「従属変数の予測力」と「具体的にどの独立変数が従属変数にどのような形で効いているかを理解できること」ということは別問題です.後述するように,偏回帰係数の解釈は独立変数の数が増えるほど困難になります.社会学のように,とにかく社会事象の予測の精度を目的にする場合では,独立変数を増やしてその予測力を高めることには一定の意味があると思いますが,例えば教育心理学研究のように独立変数と従属変数の具体的な関係を吟味し,そのメカニズムを解明したり独立変数を操作して介入に生かしていこうという場合には,多くの独立変数を投入した重回帰分析は結果の解釈が困難で,実質的に無意味になることが多いです.

(重回帰分析について 1.単回帰・重回帰分析における基本的な注意点 koumurayama.com)

  1. 決定係数や標準化偏回帰係数が高いと「影響力が強い」といえるのか?ryotamugiyama.com/
  2. 重回帰分析とは?(手法解析から注意点まで)surveroid.jp

重回帰分析により、従属変数をうまく表現する予測モデル(式)が得られますが、その式に現れる係数(回帰係数や標準化回帰係数)は、予測モデルにおける貢献の度合い、影響の大きさを表しているにすぎず、「原因としての大きさ」と無考えに解釈していいわけではないようです。所詮、単なる数式なので、何を独立変数として、何を従属変数とするかに関しても、別に数学的には制約はないわけで、独立変数を従属変数を入れ替えても(つまり、原因と思っていたことと、結果と思っていたことを入れ替えても)重回帰分析はできてしまうことを考えれば、重回帰分析は因果関係を直ちに教えてくれるものでは決してないということが理解できます。

 

変数の正規化について

偏回帰係数は、どの説明変数がどの程度目的変数に影響を与えているかを直接的には表していません。身長を(cm)で計算した場合と(m)で計算した場合とでは全く影響度の値が異なってしまうことからも明らかです。各変数を平均 0,分散 1 に標準化して求めた「標準偏回帰係数」を用いれば、各説明変数のばらつきの違いによる影響を除去されるので、影響度が算出されます。(重回帰分析とは albert2005.co.jp)

購入額の予測値=5,000+30×(年齢)+300×(性別)+450×(家族人数)+0.001×(年収)

この関係式において、説明変数(属性)が、購入額(目的変数)に対しておよぼす影響の大きさを知りたいということがよくあります。上の関係式では、年齢や年収は単位が違います。したがって年齢の項の偏回帰係数30と年収の項の偏回帰係数0.001は直接比較できません。そこで、あらかじめ説明変数を平均0、分散1に標準化()しておくと、単位が同一の条件下で分析できます。(回帰分析のモデルと基本式 macromill.com)

ダミー変数について

一般線形モデルでは,質的な独立変数(つまり,分散分析の要因)を,(水準数-1)個のダミー変数を使って表す。ダミー変数とは,ある水準に属していることを1で表し,属していないことを0で表す変数のことである。‥ このような(水準数-1)個のダミー変数を独立変数として重回帰分析を行うと,重回帰モデルの有意性検定の自由度,F値,p値が,対応のない1要因分散分析と同じ値になる。回帰式を最小二乗法で推定すれば,予測値は各水準の母平均の最小二乗推定値となる。詳しくは南風原(₂₀₀₂)のpp. ₂₁₆-₂₁₉,₂₇₅-₂₇₆を参照されたい。(統計モデルの違いを理解する 一般線形モデル・一般化線形モデル・階層線形モデル・階層的重回帰モデル The Annual Report of Educational Psychology in Japan₂₀₁₈, Vol. ₅₇, 302-308 PDF

  1. 第7章 ダミー変数 osaka-u.ac.jp

 

pythonを用いた重回帰分析

pandasとscikit-learnを使うと、SPSSでできることがpythonでもあっさりとできるようです。下記のウェブサイトを参考に自分のデータで計算してみたところ、pythonでもSPSSでも同じような結果が得られました。

  1. Pythonで基礎から機械学習 「重回帰分析」 @karaage0703 デフォルトは以下のようです。ややこし過ぎですね。 scikit-learn: 分散  pandas: 不偏分散  numpy: 分散  R言語: 不偏分散 ‥ このように、偏差回帰係数と標準化偏差回帰係数は簡単に変換できるので、正規化しないで重回帰分析をして偏回帰係数を求め、後から必要に応じて標準化偏回帰係数を求める方が計算上は楽です。
  2. 重回帰分析の概要とpython 実装 実践ケモインフォマティクス
  3. scikit-learn で線形回帰 (単回帰分析・重回帰分析) pythondatascience.plavox.info 各変数がどの程度目的変数に影響しているかを確認するには、各変数を正規化 (標準化) し、平均 = 0, 標準偏差 = 1 になるように変換した上で、重回帰分析を行うと偏回帰係数の大小で比較することができるようになります。

 

Rを用いた重回帰分析

  1. 18. 重回帰分析 1 (単回帰と重回帰)takushoku-u.ac.jp

 

論文出版の際のまとめ方

  1. 3.結果のまとめと解釈 rikkyo.ac.jp 分析結果は、学術論文では以下のような形式のにまとめる。図の方が一般向けには分かりやすい。各説明変数の偏回帰係数有意か、モデル全体の説明力はどうか、なぜそのような結果が出たのかなどについて検討し、結果の解釈や考察を行うこと。

 

参考

  1. 12 重回帰分析の使用上の注意 kwansei.ac.jp
  2. 回帰分析を理解しよう!-回帰分析の由来と概念、そして分析結果の評価について- 生活研究部 主任研究員・ヘルスケアリサーチセンター・ジェロントロジー推進室兼任 金 明中 ニッセイ基礎研究所