我正在使用Python中的pandas库。假设我有以下四种从正态分布中抽取的随机样本:

np.random.seed(12345)

df = pd.DataFrame([np.random.normal(32000,20000,3650),
                   np.random.normal(43000,10000,3650),
                   np.random.normal(43500,14000,3650),
                   np.random.normal(48000,7000,3650)],
                  index=[1992,1993,1994,1995])


我想获得每个样本的95%置信区间,因此我计算:

mean_value=df.mean(axis=1)
std_value=df.std(axis=1,ddof=0)
lower_bound=mean_value-1.96*std_value
upper_bound=mean_value+1.96*std_value
diff = upper_bound-lower_bound


对于每个置信区间,我想将其切成11个等间隔的区间。我有以下想法:

low=lower_bound.values[1]
high=upper_bound.values[1]
diff=0.09*diff.values[1]
np.arange(low,high,diff)


这不是很有效,因为剪切间隔未在置信区间的上限处结束。如何获得等间隔的间隔?

最佳答案

我不确定您想要的是什么,但是使用NumPy的linspace函数获得相等间隔的间隔非常容易。这是第一次分配的11个间隔。

np.linspace(lower_bound.values[0], upper_bound.values[0], 12)
array([ -7.18705879e+03,  -3.82825067e+01,   7.11049377e+03,
         1.42592701e+04,   2.14080463e+04,   2.85568226e+04,
         3.57055989e+04,   4.28543752e+04,   5.00031514e+04,
         5.71519277e+04,   6.43007040e+04,   7.14494803e+04])

关于python - 多个置信区间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46143651/

10-12 19:38