1

固定値で購入されたチケット数の ECDF を表す 6 つの曲線があります。ECDF 曲線

ここで、補間してそれらの間に曲線を作成したいと思いますが、次の式に従います。たとえば、ECDF を 10k の価格で見積もるには、F(10k)=αF1+(1-α)F2 によってガイドする必要があります。0<α<1 で。プロットした曲線は、ecdf 関数で取得しました。観測をシミュレートするために interp1 を実行しようとしましたが、新しい価格で観測をシミュレートすることはできませんでした。

だから私は@rayryengによって作られたコードで試しました

max_len = max(numel(F1),numel(F2)); F1_interp = interp1(1:numel(F1), F1(:).', linspace(1,numel(F1),max_len)); F2_interp = interp1(1:numel(F2), F2(:).', linspace(1,numel(F2),max_len));

アルファ = (10e3 - 9.5e3) / (11e3 - 9.5e3); Fnew = alpha*F1_interp + (1-alpha)*F2_interp;

次の曲線を取得します新しい

しかし、F1 と F2 を使用して曲線をプロットすると、それらの間または補間のいずれかではないようです。曲線のプロット

4

1 に答える 1

2

その式に従えば、interp1まったく必要ありません。私があなたの質問を正しく解釈していれば、あなたはF(10k)真剣に計算alpha*F1 + (1-alpha)*F2するだけで得ることができalphaます.[0,1]

の場合、これは で見られる値と でalpha見られる値の間の分数です。あなたの場合、これは次のように簡単です。F1F2

alpha = (ffnew - ff1) / (ff2 - ff1)

ff1ff2は、必要な値の間の価格です。これはffnewです。ffnew = ff1の場合、alpha = 0元のF2曲線が得られることを確認できます。同様に、 の場合ffnew = ff2alpha = 1元のF1曲線が得られます。F1との間の任意の価格値は、F2指定方法に注意する必要がありますalpha

したがって、andalphaの場合は次のように なります。ff1 = 9.5kff2 = 11kfnew = 10k

alpha = (10e3 - 9.5e3) / (11e3 - 9.5e3) = 0.33333...

したがって、F1およびがそれぞれおよびF2での曲線であると仮定します。9.5k11k

alpha = (10e3 - 9.5e3) / (11e3 - 9.5e3);
Fnew = alpha*F1 + (1-alpha)*F2;

上記は、信号が同じ長さであることを前提としています。そうでない場合は、小さい方の信号を補間して、大きい方の信号と長さが一致するようにする必要があります。 interp1ここで使用するツールです(IMHO)。からのポイントとしてキー/コントロール ポイントを指定しますF1。ただし、ペアinterp1が必要で、値(x,y)はありませんx....y値はF1. xしたがって、増加する数値ベクトルになるように人為的に値を作成します。私が考えることができる最も単純なものは、1 から小さな信号にあるのと同じ数の値までのベクトルです。信号を拡張するには、1 から小さい方の信号の値までの別のベクトルを生成しますが、linspace.

そのため、次のようなことを試してください。

max_len = max(numel(F1),numel(F2));
F1_interp = interp1(1:numel(F1), F1(:).', linspace(1,numel(F1),max_len));
F2_interp = interp1(1:numel(F2), F2(:).', linspace(1,numel(F2),max_len));

alpha = (10e3 - 9.5e3) / (11e3 - 9.5e3);
Fnew = alpha*F1_interp1 + (1-alpha)*F2_interp2;

コードの最初の行は、信号の 2 つの長さのうち最大のものを見つけます。次に、F1F2が同じ長さであることを確認します。その効果は、これらの 1 つが変化しないことですが、もう 1 つがより大きな信号に一致するように拡張されます。上記は、何が何であるかに関係なく、両方の信号が同じ長さであることを確認するためのものF1ですF2。これを行うと、上記で説明した操作を新しいシグナルに通常どおり適用できます。

于 2015-08-25T17:07:32.097 に答える