0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

回帰分析の近似曲線をExcelに選ばせてはいけない

Last updated at Posted at 2020-10-17

結論

  • 回帰分析の近似曲線をExcelに選ばせてはいけない
  • 「いろんな近似式を試してみて、決定係数(R^2)が一番大きいものを採用しよう」とすると、次数が高い近似式を採用することになる確率が高い

検証方法

  • RAND()関数を使い、説明変数Xと目的変数Yがともにランダムに決まる、n=20のデータをExcelで作成

  • このデータの散布図を描き、Excelに近似曲線を描かせる

  • 近似曲線の形は「1次関数」「2次関数」「指数関数」「対数関数」の4種類1

  • 近似式と決定係数(R^2)を表示
    20201017-1.png

  • 20回「再計算」(F9を押す)させ、それぞれの決定係数がどうなるかを記録

結果

20回中13回で「2次関数」が最大の決定係数となった。
20201017-2.png

具体的な決定係数の推移は下図のとおり。
20201017-3.png

  • 今回はランダムな散布図なので、全体的に決定係数が小さい
  • 2次関数の決定係数は、相対的に常に高めになる
  • 指数関数や対数関数の決定係数が、たまに2次関数のものを抜くときがある

おまけ1

「説明変数も目的変数もランダムだから、分布が全体に広がった形になって、形状がダイナミックな2次関数が有利だったのでは?」と、脳内の自分から質問が出たので、目的変数の関数を「=RAND()/5+0.5」にして、比較的潰れた形の散布図を作り、同様の検証を行ってみた。

散布図
20201017-4.png

結果、やはり「2次関数」の決定係数が高くなる傾向になった。
20201017-5.png
20201017-6.png

おまけ2

なぜこのような結果になるのか、少し考えてみた。

理由1:2次関数は自由度が高い

今回用いた4つの近似式は、一般化すると

  • 1次関数:y=ax+b
  • 2次関数:y=ax^2+bx+c
  • 指数関数:y=ae^(bx)
  • 対数関数:y=aln(x)+b
    となり、2次関数の自由度が3である一方、他の3つの自由度は2である2

仮にデータ数がn=3であれば、2次関数は完ぺきにフィットする数式を作ることができるが、他の関数はそうなるとは限らない。

理由2:2次関数は増減が切り替わる

2次関数は、最大値or最小値を持ち、その前後で増減が切り替わるが、他の3つは最大値or最小値を持たないので、単調増加か単調減少にしかならない。

もし、データの分布に増減が切り替わる傾向があった場合は、2次関数が当てはまりの良さで優位になる。

反対に、データの分布に増減の切り替わる傾向がなかった場合は、2次関数は不利になるかといえば、そうはならない。
なぜなら、2次関数の軸(最大値or最小値となるときのx)を、データのxの範囲の外側においてしまえば、2次関数であっても、データの範囲内では単調増加or単調減少にできるからである。。

  1. Excelでは、それぞれ「線形近似」「多項式近似(次数=2)」「指数近似」「対数近似」のこと。

  2. 指数関数の一般式をy=ae^(bx)+cと、対数関数の一般式をy=aln(x+b)+cとすれば、両者の自由度は3である。しかし、Excelの場合はそうなってはいない。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?