2017-06-06 11 views
2

分布が正常ではなく、未知であると仮定して、信頼区間を計算したいサンプルデータがあります。基本的に、それは配布のように見えるPareto Distribution histogramしかし、私は確かにわからない。未知の分布を仮定したサンプルデータからの信頼区間を計算する

正規分布のための答え:

Compute a confidence interval from sample data

Correct way to obtain confidence interval with scipy

+0

私に指数分布のように見える –

答えて

2

あなたは根本的な分布がわからない場合は、その後、私の最初の考えはブートストラップを使用することです:https://en.wikipedia.org/wiki/Bootstrapping_(statistics)

擬似コードでは、xとすると、あなたのデータが入っている配列があります:

import numpy as np 
N = 10000 
mean_estimates = [] 
for _ in range(N): 
    re_sample_idx = np.randint(0, len(x), x.shape) 
    mean_estimates.append(mean(x[re_sample_idx])) 

mean_estimatesは、分布の平均の10000推定値のリストになりました。第2.5及びこれらの10000個の値の97.5thパーセンタイルを取り、そしてあなたがあなたのデータの平均値の周りの信頼区間を持っている:

sorted_estimates = np.sort(np.array(mean_estimates)) 
conf_interval = [sorted_estimates[int(0.025 * N)], sorted_estimates[int(0.975 * N)]] 
+0

私は実際のデータでテストしました。間違っているように見えます。私はConf Int:[22.78、69.93]を得ました。 (np.array(x)<22.79).sum()/ len(x) - 0.91。データの91%がconfの下限に達しています。算術平均は40.78です。これは現実世界のデータセットが難解です。 –

+1

あなたの記事のリンクに基づいて、私はあなたのデータの平均値を推定するための信頼区間を求めていたと推測しました。データの95%が2つの値の間にある値を必要とするだけの場合(例:あなたの* data *の2.5番目と97.5番目のパーセンタイルを計算することで、答えの最後の2行を使うことができますが、 'np.array(mean_estimates)'の代わりに 'x'を使います。 – acdr

0

他の回答についての議論から、私はあなたがのために信頼区間をしたいと仮定します人口の平均、はい?

有限のモーメントを持つすべての分布について、平均のサンプリング分布は、母集団の平均と分散に等しい平均を持つ正規分布に漸近する傾向があります(分布自体ではなく、ある程度の信頼区間が必要です)。母集団分散をnで割ったものに等しい。だから、もしあなたがたくさんのデータを持っているならば、$ \ mu \ pm \ Phi^{ - 1}(p)\ sigma/\ sqrt {n} $は母集団平均のp信頼区間分布が正常でない場合。

+0

ありがとうございます。数式が正しく表示されません。 LaTexにいくつかの問題があります。いくつかの読書と分析の後、私は本当に分布が歪んでいるので、私は中央値にもっと興味があることを発見しました。だから私は中央値の信頼区間が必要です。中央値のサンプリング分布は正規分布に漸近する傾向がありますか?私は中央値の信頼区間を推定するために@acdrコードを使用しました。これは、acdrコメントのように計算された「データの95%が2つの値の間にある値」よりもずっと小さくなります。 –

関連する問題