【发布时间】:2018-04-21 00:48:40
【问题描述】:
我正在尝试编写一个小程序来模拟 Python3 中随机数的采样。但这似乎与我的意图相反。我究竟做错了什么?这一定非常简单,但我不明白。
import random
import statistics
import math
pcounter = 0
counter = 0
for loop in range(1000):
l = []
for x in range(500):
l.append(random.randint(1,1000))
m = statistics.mean(l)
v = list(l)
v[:] = [(x-m)**2 for x in v]
realvariance = sum(v)/len(v)
#print("Real Variance: " + str( sum(v)/len(v)))
#print("Real Mean: " + str(m))
sample = random.sample(l, 10)
v = list(sample)
#print(v)
v[:] = [(x-m)**2 for x in v]
samplem = statistics.mean(sample)
samplebiasedvariance = sum(v)/len(v)
samplevariance = sum(v)/(len(v)-1)
print(samplebiasedvariance)
print(samplevariance)
print(realvariance)
print((samplebiasedvariance - realvariance)**2 < (samplevariance - realvariance)**2)
if (samplebiasedvariance - realvariance)**2 < (samplevariance - realvariance)**2:
pcounter = pcounter + 1
print("biased Variance wins: " + str(pcounter))
else:
counter = counter + 1
print("Variance wins: " + str(counter))
print("biased Variance wins: " + str(pcounter))
print("Variance wins: " + str(counter))
这会导致:
biased Variance wins: 563
Variance wins: 437
但应该反过来:我预计有偏方差会比使用 (n-1) 计算的无偏方差更差。因此,它应该更接近真实总体方差(realvariance)然后是有偏差的。
【问题讨论】:
-
你所说的“反过来”到底是什么意思?
-
好吧,我预计有偏方差会比使用 (n-1) 计算的无偏方差更差。因此它应该更接近真实的总体方差(realvariance)。
标签: python statistics