• ベストアンサー

グラフの平行移動

中学だか高校のときにy=xのグラフをx軸方向にa平行移動させるには,y=x-aですよと教わった記憶があります。おそらくはその考え方を応用すれば良いのかも知れませんが,ずいぶんと悩んだ結果わかりませんでした。そこで教えていただきたいのは, f(x) = 10.03 / (1 + exp(5.13 - 1.28 * x)) という関数が描く曲線をx軸方向にa平行移動させるにはどのようにすればよいのでしょうか。例えばx軸方向に53だけ平行移動させるには? これだけだと何がやりたいのか分からないかもしれないので付け足すと, x=[54,57,60,63,66,69,72] y=[0,1,2,5,8,9,10] というデータがあり,xを横軸,yを縦軸として点をプロットします。この点に理論曲線を当てはめるために F(X) = γ / (1 + exp(α + β * X)) という関数のパラメータγ,α,βを推定したいわけです。それでコンピュータを使って最初に記したようにγ=10.03,α=5.13,β=1.28という推定値を得られたのですが,この推定値は x=[1,2,3,4,5,6,7] y=[0,1,2,5,8,9,10] というように,xのデータを置き換えて推定したものです。理屈は分かりませんが,使っているソフトウェア(に実装されている関数)では最初にあげたxの値を使うと解が求まらないのです。

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

  • ベストアンサー
  • quaqua
  • ベストアンサー率44% (4/9)
回答No.1

こんばんは。 backsさんが初めに仰っていることは、当たっています。xにx-aを代入(置き換えること)すればよいです。これは、どんな関数でも成り立ちます。 つまり、 f(x) = 10.03 / (1 + exp(5.13 - 1.28 * x)) をx方向に53平行移動させるには、 f(x) = 10.03 / (1 + exp(5.13 - 1.28 * (x - 53) )) とします。 ところで、使っているソフトウェアはどういうものなのでしょう。

backs
質問者

お礼

早速の回答ありがとうございます。こんな夜遅くなので,あきらめて寝支度をしようと思っていたところです。 なるほど,どのような関数であってもこのルールは変わらないのですね。自分でExcelを使って描いてみたのですが,たまたま今回の場合だけうまくいっただけでは困るので数学人にご指摘いただいて安心しました。 私は統計学をやっておりまして,データ解析用のソフトでRというものを使っています。数学をしている人はMathematicaなどを使うのでしょうが,それと似たようなソフトです(データ解析を行うための関数がたくさん用意されているという点で異なるくらいです)。 …と,実はパラメータを推定する初期値について聞きたかったのですが,それはまた別のスレッドを立てます(もうポイントを割り振ってしまいました)。

その他の回答 (1)

  • i_noji
  • ベストアンサー率23% (12/51)
回答No.2

y=f(x)上の点(x,y)がx軸方向にaだけ平行移動した点を (X,Y)とすると x+a=X  y=Y で x=X-a で元の式に代入すると Y=f(X-a)となり移動後の X,Yについての関数になります ので x軸方向にaだけ平行移動させた関数は f(x) = 10.03 / (1 + exp(5.13 - 1.28 * (x-a))) となります x軸方向に53、平行移動させたものは f(x) = 10.03 / (1 + exp(5.13 - 1.28 * (x-53))) になります

backs
質問者

お礼

夜遅くに回答してくだすって,大変助かりました。ありがとうございます。 回答のおかげで現状からようやく脱出できました。

関連するQ&A

専門家に質問してみよう