• 締切済み

xとyの両方に誤差がある場合のフィッティングソフト

実験データで,x方向にもy方向にも既知の誤差がある場合のフィッティングができる解析ソフトを探しています. 現在はOriginを使用しているのですが,y方向にしか重み付けができないらしく,ちょっと困っています. xとyに同時に重み付けができるソフトをご存知ありませんか? フリー・商用は問いません.(オープンソースの方が望ましいです) プラットフォームはWindows,またはLinuxでお願いします. ※一応,ROOT,R,gnuplotはこれまでに使ったことがあるのですが,CLIが少し苦手で・・・ もし,上記のソフトでx,yの誤差を同時に付けてフィッティングできるのであれば教えていただけると幸いです.

みんなの回答

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

実は質問文を読めば読むほど,疑問がわいてくるんだよね。 「x方向にもy方向にも既知の誤差がある場合」と言ってるが,誤差が既知なのであればそれを取り除くことが出来るでしょ。普通は誤差が未知で,せいぜい分かるのは誤差が正規分布に従う確率変数になっているとか... 「y方向にしか重み付けができない」というのもよくわからない。普通はこういう文脈で重みと言えば,測定点の重みのことです。 直線回帰を例にすると(x(i),y(i))の点にw(i)の重みを付けてw(i)Σ((y(i)-a*x(i)-b))^2を最小化するときのw(i)が重みですね。 ところが「xとyに同時に重み付けができる」や「x,yの誤差を同時に付けてフィッティングできる」というのを,どうやら同じ意味で使っているようで,普通の意味ではないように思えます。 それで,結局「近似する直線をあてはめればいいのかな?」と書いたら,「ある物理法則の近似曲線でフィッティングしたいのです」ということですから,今の私の理解では (x(i),y(i))という点列がn個あったとき,ベクトルaをパラメータとする曲線f(x,y;a)=0上の点と点(x(i),y(i))の距離の最小値L(i),言いかえると曲線と点の距離L(i)について,すべてのiについての二乗和Σ(L(i))^2を最小化するaを求めたい ということになります。これでいいのでしょうか? (なお,実は#1で書いたのはf(x,y;a)=0が直線である特殊な場合です。) それで良いのなら,反復的に最小化問題を解けばよいので,面倒ですけど素直に計算すれば近似解にはたどりつけるでしょう。

noname#146601
質問者

補足

回答ありがとうございます. 物理では測定誤差を重みとして扱うことは常套手段なんですが,書き方が紛らわしかったようで申し訳ありません. どちらにしても私の書き方は普通の用法ではなかったですね. 計算方法については分かっているつもりです. ただ,近似曲線の式が複雑なのと,自分の得た解が正しいか分からないのでソフトを利用したかったのです.

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

(x(i),y(i))という点列がn個あったとき,それを近似する直線をあてはめればいいのかな? それなら,そんなものはソフトなど使わずに自分で計算すればよい。 S1=(1/n)Σx(i) S2=(1/n)Σy(i) S3=(1/n)Σ(x(i))^2 S4=(1/n)Σ(x(i)*y(i)) S5=(1/n)Σ(y(i))^2 を計算する。 T=(S3-S5+SQRT((S3-S5)^2+4*S4^2))/2 を計算する。 T*X+S4*Y=T*S1+S4*S2 という直線,または,それに直交する S4*X-T*Y=S4*S1+T*S2 という直線があてはめた直線になります。

noname#146601
質問者

お礼

ひとまず参考になりました.ありがとうございます.

noname#146601
質問者

補足

ご回答ありがとうございます. 質問の意図としては,(x(i) ± δx,y(i) ± δy)の点列(δx,δyは測定誤差)があって,それをある物理法則の近似曲線でフィッティングしたいのです.

関連するQ&A

専門家に質問してみよう