• 締切済み

乱数によって発生したデータの関係式の抽出

[0 : 1]の範囲で乱数xを発生させ、その乱数xを使ってy=0.5 x^2 を計算しました。乱数による(x, y)のペアが数多くできています。この乱数のペアをデータとして与えて、これがy = 0.5 x^2という関係式になっていることを見破れるか、ということを考えます。データをプロットして雰囲気を調べる、というようなことはナシで、データ処理としてできるかということですが。y=a+bx+cx^2+dx^3などと仮定して最小二乗法でa,b,c,dを決めてみると、a=b=d=0, c=0.5となるのでしょうか。単純な最小二乗法でよいのでしょうか。すなわち、誤差の評価式をa,b,c,dで偏微分してゼロとなる代数方程式を解いてa,b,c,dを決めるということですが。 これに関連して疑問なのですが、手始めとして一旦、(x,y)の相関係数を調べてみたとします。これは両者が直線関係(すなわち1次)になっていることを想定してどの程度1次なのかを見るという性格があると思います。例えばy=a+bxとひとまず考えて、最小二乗法でa, bを計算することはできます。2次曲線だけども1次で近似したようなものですね。aはかなり小さいでしょうが、a,bとも非ゼロ値が出てきそうです。その後、近似を上げようと思って、y=a+bx+cx^2としてa,b,cを求めると先に直線と考えて求めたa,bとは違う値(正解のa,bゼロでc=0.5)になるのでしょうか。 この問題は、正解が多項式であり、近似式も1次、2次、...と高次になっていくのでたまたま答えであるx^2が出てきたということは言えそうですが、もし発生させる関数がもっと手の込んだもの(sin, cosなど)だったら関数形を見破れないのではないでしょうか。たまたま発見されるということはあるかも知れませんが。 y=0.5 sin(x)としてxの乱数を発生させ(x,y)のペアを作って、関数形を推測させるということですが、たまたま、sin(x)とyについて相関係数を調べたら1となるわけで、 y=a+b sin(x)で最小二乗法をすると、a=0, b=0.5となるわけですね。これはたまたま見つかったということですね。偶然に依らない方法はあるのだろうかということですが。

みんなの回答

  • f272
  • ベストアンサー率46% (8467/18126)
回答No.2

#1です。 > 最小二乗法で正解が用意に出てくるのは、発生させた関数がx^2ということで、xのベキだったからということであり、それも偶然ということになりますか。 そうですよ。 > 最小二乗法はxのベキ関数ということが前提となっているということでしょうか。 そんな前提はありません。 > そうして考えてみるとベキで考えるとはどういうことなのだろうと思えてくるのですが。 もともとの関数形がわからなければ,勝手に想像するしかありません。1次関数とか2次関数をよく使うのは,それが簡単でわかりやすいからニすぎません。だから理論的に関数形が仮定できるときにはそういう関数を使って最小自乗法を使うことになるでしょう。 > すべて幸運探しになってしまいそうですが。 最小自乗法を使うのは,たいていは測定値の当てはめでしょう。当然に測定誤差もあるでしょうから完全に一致することは一般にはまず期待できません。ある程度合致していればそれで良しとすべきものです。

skmsk1941093
質問者

お礼

回答ありがとうございます。 当てはめということは、一回はグラフを書いてみる必要があるということでしょうか。非効率であることは承知の上で、それは潔しとしない場合、ただ苦労するだけということになるのか、何らかの打開策があるでしょうか。 本来は45度の直線状に載る(相関係数1)はずの推定値と測定値の相関係数を実際に計算してみて、悪いと判断して、関数を変えて最小二乗法を反復的にやるというようなアルゴリズムは可能ではないでしょうか。

  • f272
  • ベストアンサー率46% (8467/18126)
回答No.1

> y=a+bx+cx^2+dx^3などと仮定して最小二乗法でa,b,c,dを決めてみると、a=b=d=0, c=0.5となるのでしょうか。単純な最小二乗法でよいのでしょうか。 a=b=d=0, c=0.5になりますよ。 単純な最小二乗法でよいですよ。 > 先に直線と考えて求めたa,bとは違う値(正解のa,bゼロでc=0.5)になるのでしょうか。 違う値(正解のa,bゼロでc=0.5)になりますよ。 > もし発生させる関数がもっと手の込んだもの(sin, cosなど)だったら関数形を見破れないのではないでしょうか。 かなり困難でしょうね。 > 偶然に依らない方法はあるのだろうかということですが。 偶然に頼るしかありません。

skmsk1941093
質問者

お礼

回答ありがとうございます。最小二乗法で正解が用意に出てくるのは、発生させた関数がx^2ということで、xのベキだったからということであり、それも偶然ということになりますか。最小二乗法はxのベキ関数ということが前提となっているということでしょうか。考えてみると、sin(x)のベキでもいいと言えばいいわけですね。y=a + b sin(x)+c sin(x)^2... ということでも。そうすると0.5sin(x)で発生させた乱数のペアでも最小二乗法で係数を抽出できそうですが。そうして考えてみるとベキで考えるとはどういうことなのだろうと思えてくるのですが。すべて幸運探しになってしまいそうですが。

関連するQ&A