Rで学術論文(引用の最後を参照)から統計的手法を実装しています。ループを使用せずにいずれかの手順を実行する方法があると思いますが、攻撃方法を決定するのに苦労しています。
このメソッドは、x、n、およびpの3つの変数を持つデータフレームで動作します。すべてのiに対してp[i]<= p [i+1]の場合にのみ動作します。ポイントのペアがそれに違反する場合は、p[i]とp[i + 1]の両方を加重平均(n [i] * p [i] + n [i + 1] * p)に設定することで平滑化されます。 [i + 1])/(n [i] + n [i + 1])この平滑化は、p_iが減少しないシーケンスになるまで繰り返されます。
このスムーズの問題は、a)Rのループの形式が正しくないこと、およびb)p_i> p_(i + 1)> = p_(i + 2)のように行に複数のポイントがある場合、メソッドが失敗する可能性があることです。終了するか、収束するのに非常に長い時間がかかります。たとえば、そのようなシーケンスが発生した場合:
x n p
2 10 0.6
5 10 0.5
10 10 0.5
Smoothは、pの最初の2つの値を0.55に設定し、次に2番目の値を0.525に設定し、最初の2つを0.5325に設定します。以下同様に、永久ループします(または、運が良ければ、数十億回の反復で重要度の限界に達します。 )。隣接する減少するデータポイントを識別し、それらをグループとして平均化することにより、数学的に同等であるがより効率的な方法があるはずですが、Rでそれにアプローチする方法がわかりません。
さらに背景が必要な場合は、問題の論文はMartin A. Hamilton、Rosemarie C. Russo、RobertV.Thurstonです。「毒性バイオアッセイにおける致死濃度の中央値を推定するためのトリミングされたスピアマン-カーバー法。」環境。科学 Technol。、1977、11(7)、pp 714–719。716ページの「最初のステップ」のセクションを参照しています。