我有一个形状为
(n, timesteps)
的数组,其中n
是试验次数,timesteps
是每次试验的长度。该数组的每个值表示一个随机测量。类似的东西
def normal_ci(
data: np.array,
axis: int = 0,
statistic: Callable = np.mean,
confidence: float = 0.95
):
和类似的功能
student_ci()
。
我的问题是,默认情况下,scipy 函数计算平均值的间隔,对吗?就像这个答案。
这是在 Stack Overflow 上,所以计算答案是使用 bootstrap。
from typing import Callable
import numpy as np
from scipy import stats
rng = np.random.default_rng(84354894298246)
data = rng.standard_normal(size=(1000, 100))
def normal_ci(
data: np.array,
axis: int = 0,
statistic: Callable = np.mean,
confidence: float = 0.95
):
res = stats.bootstrap((data,), statistic, axis=axis,
confidence_level=confidence)
return tuple(res.confidence_interval)
low, high = normal_ci(data, axis=-1)
np.mean((low < 0) & (0 < high))
如果您想考虑到您知道从中采样数据的分布族这一事实,您可以查看参数引导程序。