乱数によって発生したデータの関係式の抽出
[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となるわけですね。これはたまたま見つかったということですね。偶然に依らない方法はあるのだろうかということですが。