【问题标题】:Bootstrap - Confidence Interval CalculationBootstrap - 置信区间计算
【发布时间】:2017-05-19 20:34:17
【问题描述】:

我正在尝试实施引导程序来估计统计信息的 CI。这是我写的代码

import numpy as np
import numpy.random as npr
import pylab

def bootstrap(data, num_samples, statistic, alpha):
   """Returns bootstrap estimate of 100.0*(1-alpha) CI for statistic."""
    num_samples = len(data)
    idx = npr.randint(min(data), max(data), num_samples)
    samples = data[idx]
    stat = np.sort(statistic(samples, 1))
    return (stat[int((alpha/2.0)*num_samples)],
    stat[int((1-alpha/2.0)*num_samples)])

X,Y = np.loadtxt('data/ABC.txt',
                          unpack =True,
                          delimiter =',',
                          skiprows = 1)

文本文件包含 2 列,我需要计算两列的置信区间。 我的第一个想法是将列转换为数组并计算 95% CI 的高低。我在想这样的事情:

data = np.array([X,Y])
low, high = bootstrap(X, len(data), np.mean, 0.05)
low1, high1 = bootstrap(Y, len(data), np.mean, 0.05)

但我不确定这是否是计算置信区间的正确方法。有人可以帮我解决这个问题吗?

提前谢谢你!

【问题讨论】:

  • 你能先修复一下缩进吗?
  • 我已经修好了
  • 您可以在每行后面加上每个变量内容的打印语句,然后查看出错的位置和原因。或者,您可以使用 pdb 或其 ipython 等效项 ipdb 进行交互式调试会话。
  • 您使用 bootstrap 计算参数的置信区间。例如,我们估计样本的平均值并计算平均值的 95% CI。你想在这里测量什么。

标签: python python-3.x statistics statistics-bootstrap


【解决方案1】:

而不是:

idx = npr.randint(min(data), max(data), num_samples)

用途:

idx=np.random.choice(data,size=len(data),replace=True)

【讨论】:

    猜你喜欢
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 2022-01-22
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多