という形式のデータがあります。からの推定には、このペーパーの式を使用します非線形回帰と非線形最小二乗 このペーパーでは、データを調べることによってを推定します。そうすれば、3ポイントしかない場合でも問題なく機能します。それから、他の2つを計算できます。Rではnls()を、C#ではLevenbergMarquardtを使用してパラメーターをテストしました。彼らによって返されたモデルは満足です。 β1β3β1
問題は、データを調べてな推定量を取得したくないことです。プログラムで計算してください。しばらくの間、最大値より少し高い値(から\ max * 1.5の間の値)を使用しました。これは、ポイントがほとんどの関数をカバーしている限り、問題なく機能しました。データポイントは曲線の「上」からどこかにありますが、すべてが変曲点の「下」の領域からのものである場合、この推定量は予想よりも低く、モデルに適合できませんでした。これは、(途方もなく高い値で乗算することにより)最大ポイントよりも明らかに高いため、モデルは便利な方法で適合しません。
測定値は次のようになります。
x =(40、50、60、70)、y =(1000、950、400、200)->推定が容易
x =(40、50、60、70)、y =(1000、950、800、100)->推定が容易
x =(40、50、60、70)、y =(500、200、100、50)->簡単に推定できない
与えられたポイントのデルタを計算し、それに応じて上限を計算することで、関数のどこにいるのか(「ボトム」、「トップ」、スロープ)を見つけることができると思います。誰かがより良い解決策のヒントを持っていますか?追加情報:それができない場合は、適合できる測定値が可能な限り良いことは私にとってより重要であり、一部の測定値はまったく適合できないことを受け入れます。
(C#での実装が必要ですが、ここに投稿しましたが、問題は言語に依存しているとは思いません)
更新(これのアプリケーション):
xは温度値であり、yは対応する測定値です。本来、低温ではy値が高く、その逆のロジスティック曲線のように見えるはずです。融点は曲線の変曲点に等しく、モデルパラメータの小さな変化で大きく変化します。
更新(7つのデータポイントと60で既知の変曲点で構成されたデータ):
//first I made up some data without any noise and enough (13) points
double[] x17 = { 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90 };
double[] y17 = { 2000, 1920, 1820, 1700, 1500, 1280, 1000, 720, 500, 300, 180, 80, 0 };
//calculated inflection point: 59.642....
//Then I took three different parts of that data
(to simulate how much data I will have in the real world)
double[] x18 = { 30, 35, 40, 45, 50, 55, 60 };
double[] y18 = { 2000, 1920, 1820, 1700, 1500, 1280, 1000 };
//calculated inflection point: 59.263.... is ok!
double[] x19 = { 60, 65, 70, 75, 80, 85, 90 };
double[] y19 = { 1000, 720, 500, 300, 180, 80, 0 };
//calculated inflection point: 53.447.... to small!
double[] x20 = { 45, 50, 55, 60, 65, 70, 75 };
double[] y20 = { 1700, 1500, 1280, 1000, 720, 500, 300 };
//calculated inflection point: 59.868... almost perfect!
上限推定のための私の現在のアプローチはy0 * y0 / y1です。このようにして、常に最大値に近い値が得られるとは限らないことを考慮に入れたいと思います。
更新: xとyの値が負になることはありません。データポイントが失われない限り、xは常に{40、45、50、55、60、65、70}になります。
更新: 簡単にフィットできるシミュレーションデータを使用して多くのテストを実行し(曲線上に正確にあったデータポイントを選択=ノイズなし)、最初または2番目のデータポイント(ただし、 x = 40またはx = 45)がありません。私はそのような測定値を破棄しなければならず、ユーザーはそれとともに生きなければならないでしょう。