ロジスティック回帰の上限を5から7データポイントだけで推定する方法は?


11

という形式のデータがあります。からの推定には、このペーパーの式を使用します非線形回帰と非線形最小二乗 このペーパーでは、データを調べることによってを推定します。そうすれば、3ポイントしかない場合でも問題なく機能します。それから、他の2つを計算できます。Rではnls()を、C#ではLevenbergMarquardtを使用してパラメーターをテストしました。彼らによって返されたモデルは満足です。 β1β3β1y=β11+exp(β2+β3x)β1β3β1

問題は、データを調べてな推定量を取得したくないことです。プログラムで計算してください。しばらくの間、最大値より少し高い値(から\ max * 1.5の間の値)を使用しました。これは、ポイントがほとんどの関数をカバーしている限り、問題なく機能しました。データポイントは曲線の「上」からどこかにありますが、すべてが変曲点の「下」の領域からのものである場合、この推定量は予想よりも低く、モデルに適合できませんでした。これは、(途方もなく高い値で乗算することにより)最大ポイントよりも明らかに高いため、モデルは便利な方法で適合しません。β1max1.1max1.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)がありません。私はそのような測定値を破棄しなければならず、ユーザーはそれとともに生きなければならないでしょう。


このような少数のポイントでは、あなたの本当の問題は見積もりの​​不正確さであり、それらを計算する方法ではないと思います。
Michael R. Chernick

1
最後の例の問題は、という形式の関数によって、はるかに良い近似が得られることです(負の符号に注意してください)。それは許容できる解決策ですか?そうでない場合は、2つのモデルの境界でソリューションを受け入れる必要があるため、問題が引き続き発生します(これらのモデルはひどいです)。y=β11exp(β2+β3x))
whuber

@MichaelChernick私はあなたが正しいと思います、問題は私が7以上のデータポイントを取得しないことです。それ以下で結果を追い出さなければならないと思います。同じ結果になるはずのテストケースを追加しました。改善の余地はありますか、それとも私が得ることができる最も近いですか?
Verena Haunschmid

@whuber負の符号を使用してデータを近似しようとしましたが、各パラメーターセットに対して特異勾配行列エラー(R)が発生しました。どの推定量を使用しましたか?曲線をそのように見なければならない理由を強調するために、使用する領域に関する情報を追加しました。(あなたの式がこれらの要件を満たすかどうかはまだ
わかり

(1)値の単位は何ですか?これらがネガティブである可能性がある場合、モデルはおそらく機能しません。(2)値の「ノイズ」またはエラーの性質について教えてください。これはフィッティングに不可欠です。yy
whuber

回答:


1

私は今年初めに同様の問題に取り組みました。私が使用したソリューションは、線形代数を使用して最大値であるを除去するこの論文に基づいています。このように、残りのパラメーターの結果は、何らかの手順(ペーパーと同じように、エラーサーフェスを最小限に抑えました)でれた後、最後にを推測するために使用できます。β1β1

直感的には、このソリューションは、同じレートと位置パラメーターを持つすべてのロジスティック曲線が自己相似であることを前提としているため、上限の設定は、シグモイド曲線を適切な最大値に「引き伸ばす」ことを意味します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.