• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:どんな関数が最小2乗法に適する?)

最小2乗法に適する関数は?

このQ&Aのポイント
  • 最小2乗法に適する関数は、一次関数から始めて次第に次数を上げていく方法が一般的です。
  • データの範囲が狭い場合は一次関数、範囲が広がると曲線になるため、2次関数や3次関数などが有効です。
  • 他にも、特殊な項を加える方法や対数変換を行う方法などがありますが、数学的な解析能力が必要です。

質問者が選んだベストアンサー

  • ベストアンサー
  • at9_am
  • ベストアンサー率40% (1540/3760)
回答No.2

もし各係数が有意になる、などを「良い結果」とするのであればこの方法は使えませんが、単純に R^2 が 1 に近ければ良いというのであれば、私ならこうする、という方法を書きます。 1. グラフを書いてみて大雑把な形を把握する →この問題なら y=ax^n の形 2. 一次関数に変換する →この問題なら log(y) = log(a) + n log(x) 3. もし近似が良くなければ a,n の推定値 a~, n~ を用いて残差 e を e = y - y~ = y - ( log(a~) + n~ log(x) ) として計算し、e と x の関係を 1. から 3. まで繰り返す。 4. 近似が良くなった e と x の関係式を例えば e=b+mx と仮定すると、 log(y) = log(a) + n log(x) + e e = b + m x から log(y) = log(a') + n log(x) + m x とすれば、充分に良い近似が得られる。 この場合、元々の式は y = C x^n exp(x) である。

sak_sak
質問者

補足

残差に対して最小二乗法を行うということですね。 最終結果となる式(y = C x^n exp(x))を導出の段階から使うとなると大変そうですが、これなら何とかなりそうです。ありがとうございました。 ところで、参考までに意味がわからなかったところがあるので、少し教えていただけないでしょうか。 (1)「各係数が有意になる」というのはどういうことでしょうか。 時間と距離の関係を二次関数を用いて最小二乗法で係数を求めたときに、二次の項は加速度と関係がある、というようなことですか? (2)R^2というのは何のことでしょうか。

その他の回答 (2)

  • at9_am
  • ベストアンサー率40% (1540/3760)
回答No.3

> (1)「各係数が有意になる」というのはどういうことでしょうか。 係数の推定値は、当然のことながら分散を持ちます。したがって、係数がゼロかどうかを通常は t 検定を用いて検定する必要があります。 統計的にゼロではないといえる場合、その係数は有意です。 > (2)R^2というのは何のことでしょうか。 y の総変動を説明変数が説明する割合のことで、ゼロと1の間の数値をとります。当然、1であれば y の変動全てを説明していることになりますから、フィットが良くなります。

  • oyaoya65
  • ベストアンサー率48% (846/1728)
回答No.1

最小2乗法に適した関数は滑らかでデータのおおよその特徴を持った関数を使った方がいいですね。n次多項式の近似曲線はどうしても振動(極大、極小値のでるうねりのある曲線)が出てしまい勝ちですね。 最もデータがxの2乗のカーブに沿ってバラついているならxの2乗項を用いた近似関数を使った方かいいですね。 近似関数は、必ずしもxのべき乗だけで構成しなくてもかまいませんね。データの分布をよく観察して、色々な関数にパラメータ係数をつけて表現し、その係数を最小2乗法で決めてやればいいですね。 >グラフを見た感じy=ax^n (ただし0<n<1) そうなら、y=ax^n のaとnを最小2乗法で決めても良い訳ですね。

sak_sak
質問者

補足

>そうなら、y=ax^n のaとnを最小2乗法で決めても良い訳ですね 導出が面倒だったので、とりあえずデータをx,yともに対数にして、 一次関数で近似したのですがあまり良い近似になりませんでした。 それでもy=ax^nでの近似で良くなる可能性はあるのでしょうか。 nを無限まで行えば多項式で十分なわけですよね。 そう考えると、途中で打ち切っているとはいうものの、二次関数の式に闇雲に√xの項や1/xの項を入れるのは無駄があるような気もするのです。 √xの項を入れるのなら、x√xの項を入れなくていいのか、とも考えてしまいます。 私がしたいのは、文献にあるデータの補完をしたいのです。 文献のデータが3桁まで書いてあるのなら、最小2乗法で求めた関数に代入して得られた値の4桁目を四捨五入して元のデータに合うようなものを作りたいのですが…。 そしてデータの性質上、明らかに単調増加なんです。

関連するQ&A