假设正态分布,我有样本数据,我想计算置信区间.
我已经找到并安装了numpy和scipy软件包,并且已经很难恢复平均值和标准差(numpy.mean(数据),数据是列表).任何关于获得样本置信区间的建议都会非常感激.
我有一个1维数据数组:
a = np.array([1,2,3,4,4,4,5,5,5,5,4,4,4,6,7,8])
Run Code Online (Sandbox Code Playgroud)
我希望获得68%置信区间(即:1西格玛).
在第一个评论这个回答指出,这可以实现使用scipy.stats.norm.interval从scipy.stats.norm功能,通过:
from scipy import stats
import numpy as np
mean, sigma = np.mean(a), np.std(a)
conf_int = stats.norm.interval(0.68, loc=mean,
scale=sigma)
Run Code Online (Sandbox Code Playgroud)
但是这篇文章中的评论指出,获得置信区间的实际正确方法是:
conf_int = stats.norm.interval(0.68, loc=mean,
scale=sigma / np.sqrt(len(a)))
Run Code Online (Sandbox Code Playgroud)
也就是说,sigma除以样本大小的平方根:np.sqrt(len(a)).
问题是:哪个版本是正确的?
我正在尝试计算大型数据集中“力”列的均值和置信区间(95%)。我需要通过对不同的“类”进行分组来使用 groupby 函数的结果。
当我计算平均值并将其放入新数据框中时,它为我提供了所有行的 NaN 值。我不确定我是否走正确的路。有没有更简单的方法来做到这一点?
这是示例数据框:
df=pd.DataFrame({ 'Class': ['A1','A1','A1','A2','A3','A3'],
'Force': [50,150,100,120,140,160] },
columns=['Class', 'Force'])
Run Code Online (Sandbox Code Playgroud)
为了计算置信区间,我做的第一步是计算平均值。这是我使用的:
F1_Mean = df.groupby(['Class'])['Force'].mean()
Run Code Online (Sandbox Code Playgroud)
这给了我NaN所有行的值。
如何在python中为我的数据找到中位数附近的置信区间?
说我有数组
a = np.array([24, 38, 61, 22, 16, 57, 31, 29, 35])
Run Code Online (Sandbox Code Playgroud)
我想在中位数附近找到 80% 的置信区间。我如何在 python 中做到这一点?
如何在python中计算最小二乘拟合(scipy.optimize.leastsq)的置信区间?