4

numpy を使用して N 個の通常の rv (平均 0 sd 1) の束を生成し、サンプルの標準偏差を ddof = 1 で取得しています。これにより、偏りのない推定量が得られるはずです。プロセスはおおよそ次のとおりです。

def genData(samples = 20, mean = 333.8, sd = 3.38):
    bl = scipy.stats.norm.rvs(loc = mean, scale = sd, size = samples)
    return [np.mean(bl), np.std(bl, ddof = 1)]

means = {}
sds = {}

n = 50000

for size in range(5,21):
    x = [genData(size, mean = 0, sd = 1) for x in range(n)]
    means[size] = map(lambda d: d[0], x)
    sds[size] = map(lambda d: d[1], x)

ただし、代わりに次の KDE を観察します。

ddof = 1 ddof = 1 の KDE ddof = 2 ddof = 2 の KDE サンプル サイズが小さいため、曲線が粗くなっていることをご容赦ください。

ddof = 2 で排除される ddof = 1 には明確なバイアスがあります。ここで何が間違っていますか?

4

1 に答える 1

4

偏りのない分散推定量の平方根は、必ずしも分散の平方根の偏りのない推定量ではありません。数学的に言えば、sqrt{sum[(xu)²]/(N-1)} は sqrt の不偏推定量ではありませんが、sum[(su)²]/(N-1) は分散 V の不偏推定量です。 (Ⅴ).

これは実際には scipy のドキュメントにあります:リンク(「メモ」セクションを参照)。

于 2012-08-24T13:10:53.307 に答える