2017-03-01 32 views
1

私はPython上でノンパラメトリックブートストラップを実装しようとしています。それは、サンプルを取ってそこから経験的な分布関数を構築し、次にこのedfからサンプルの束を生成する必要があります。どうしたらいいですか? scipyでは正確な数式を知っていれば独自の分布関数を作る方法しか見つけられませんでしたが、私はedfしか持っていません。経験分布関数からサンプルを作る方法

+0

なぜEDFが必要ですか?あなたのデータからサンプルを取っておきましょう。これはあなたのブートストラップのサンプルになります – maxymoo

答えて

0

あなたがサンプルをソートすることによって取得EDF:あなたが唯一のリサンプリングする場合

N = samples.size 
ss = np.sort(samples) # these are the x-values of the edf 
         # the y-values are 1/(2N), 3/(2N), 5/(2N) etc. 
edf = lambda x: np.searchsorted(ss, x)/N 

しかし、その後、あなたは、単に同じ確率との交換を使用してサンプルから引きます。

これがあなたの好みにはあまりにも険しい場合は、円滑な分布を得るために何らかの補間を使用することができます。

+0

EDFは**定義** steppyです! – maxymoo

+0

@maxymooはい私はそれを知っています。しかし、典型的には、edfには本当に関心がありませんが、 "本当の"分布を見積もるためのデバイスです。そして、真の分配が円滑であると仮定する十分な理由があるかもしれません。また、新しいサンプルをどのように使用するかに応じて、真の分布が滑らかな離散分布からサンプリングすると、アーティファクトにつながる可能性があります。 –

+0

これは面白いです...あなたはしばしばあなたのブートストラップを滑らかにしますか? – maxymoo

関連する問題