人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

数値から、数式を作る方法は?

数値と、グラフから、数式を作りたいと思っています。
http://www.yutopia.or.jp/~taikeda/hp4suiteisikizyunbi.html
このURLの一番下の表の
「妊娠週数」「児体重」について、「○週なら×グラム」というのを計算で出せるようにしたいと考えています。
function getWeight(weeks)
return weight;
のようなイメージです。

・厳密でなくても、おおよそ曲線が同じになるようであればいいです。誤差5%以下くらいなら構いません。
・引数は10?42のみで結構の整数のみで結構です。
・Javascriptか、ActionScriptで計算したいと思っています。

※計算できない場合は、最悪switchで、30通りくらいの分岐にするしかないかもしれないです。
参考:http://q.hatena.ne.jp/1170229396

●質問者: iiiiiiiii
●カテゴリ:学習・教育 科学・統計資料
✍キーワード:ActionScript JavaScript switch URL イメージ
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● castiron
●20ポイント

エクセルにデータ打ち込んで散布図のグラフを作成して

近似曲線を追加すればいいのではないのですか?

答えが知りたいわけではない?

http://q.hatena.ne.jp/1170238854

◎質問者からの返答

エクセルってそんな使い方ができたとは知りませんでした。

質問の意図は、

JavascriptかActionScriptでこの数値が計算できる関数を作ることです。

関数ができれば、(おおよその値でしょうが、)週数から体重の計算ができるようになります。


2 ● pyopyo
●20ポイント

グラフ作成ソフトにデータを打ち込み、最小二乗フィッティングしてやると数式が求まります。例えば『Sma4Win』 というグラフ作成ソフトでしたら試用期間中でも機能は全て使えます。

http://www.vector.co.jp/soft/win95/business/se032520.html

ちなみに私が使っているグラフ作成ソフト(OriginPro)で例示されていたデータをフィッテングしてやると、

Y = A + B1*X + B2*X^2 + B3*X^3 + B4*X^4

A = -1529.21983

B1 = 341.77507

B2 = -27.96341

B3 = 0.98928

B4 = -0.01074

X = 児体重

Y = 妊娠週数

という4次式で、グラフ上は綺麗に合いました。ただ細かく数字を突き合わせてみると、この4次式では週数が小さい時に誤差が大きいので、他の関数(次数を上げる等)を試してみる必要がありそうです。

◎質問者からの返答

ありがとうございます。

難しそうですが、あとからじっくり見させていただきます。


3 ● risktaker
●20ポイント

Curve Fittingをしたいってことですよね.

まず,何次式でフィットするかが大事になります.


そこらへん面倒なので,僕なりのやり方を説明させていただきます.


まず,上の方のようにエクセルで近似曲線を作ります.

(3次関数とかでフィットしてあげればできるんじゃないでしょうか,とりあえず3次式と仮定して話を進めます)

そのあと近似曲線のプロパティから,近似式の表示を選びます.

http://www.pu-kumamoto.ac.jp/~fujio/Excel/F-2.htm


そうすると,y=a*x^3+b*x^2+c*x+dと表示されるはずです.

この{a,b,c,d}にはそれぞれ数字が入ります.

つぎにスクリプトの作業をします.

先ほどの{a,b,c,d}の数字を使って下のようにcodeingします.

function getWeight(weeks)

weight = a*week^3+b*week^2+c*week+d

return weight;


これで,関数の出来上がりです.

◎質問者からの返答

具体的な方法ありがとうございます。


4 ● wm5775
●20ポイント

ずばりこれではないでしょうか?

JavaScript による統計計算など

http://aoki2.si.gunma-u.ac.jp/JavaScript/index.html

まず、取得したデータの分布からフィットさせる近似式のタイプを選択する必要があります。

例えば、直線近似、多項式近似、対数近似、指数近似など。

その式にあった回帰分析をすればよいと思います。

#しかし、Javascriptで数値計算って気合入ってますね。

◎質問者からの返答

まさにこんな感じですね。

ありがとうございます。


5 ● wm5775
●20ポイント

たびたびすみません。

目的変数に対して、説明変数が複数ある場合の式の計算だったのですね。

#よく、問題を読んでいませんでした。

これもそれぞれの説明変数の式のタイプ(直線、指数、対数など)を決めなければならないのと、通常であれば最小二乗法をとかなければならないですが、下記の本に最小二乗法を直接使わず(使ってるんですけど)簡単に計算する方法がのっています。

他見量解析の実践 上 菅 民郎著

isbn:4-7687-0211-2

この方法を使えば、先ほど紹介したサイトの重回帰分析のjavascriptがそのまま流用できます。

それから、この数値はお互いに相関がある数値だと思われるので、各パラメーター間の相関が0.9より高い場合には、説明変数として採用しないほうがよいです。いわゆるマルチコという現象が起こります。

#特異値分解のソースもあったので、最小二乗法で求めることも不可能ではないです。

◎質問者からの返答

ありがとうございます。

なかなか難しいそうな言葉が多いので、あとからじっくり調べてみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ