相关疑难解决方法(0)

用scipy获得置信区间的正确方法

我有一个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.intervalscipy.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)).

问题是:哪个版本是正确的?

python numpy scipy confidence-interval

33
推荐指数
3
解决办法
5万
查看次数

Python中t检验的置信区间(均值之间的差异)

我正在寻找一种快速的方法来获得Python中的t检验置信区间,以获得均值之间的差异.与R中的相似:

X1 <- rnorm(n = 10, mean = 50, sd = 10)
X2 <- rnorm(n = 200, mean = 35, sd = 14)
# the scenario is similar to my data

t_res <- t.test(X1, X2, alternative = 'two.sided', var.equal = FALSE)    
t_res
Run Code Online (Sandbox Code Playgroud)

日期:

    Welch Two Sample t-test

data:  X1 and X2
t = 1.6585, df = 10.036, p-value = 0.1281
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -2.539749 17.355816
sample estimates:
mean …
Run Code Online (Sandbox Code Playgroud)

python statistics hypothesis-test

16
推荐指数
1
解决办法
1万
查看次数

在 PyTorch 中计算每个 epoch 的准确率

我正在研究神经网络问题,将数据分类为 1 或 0。我使用二进制交叉熵损失来做到这一点。损失很好,但是,准确性非常低并且没有提高。我假设我在精度计算中犯了一个错误。在每个时期之后,我在对输出进行阈值处理后计算正确的预测,并将该数字除以数据集的总数。我在精度计算中做错了什么吗?为什么它没有改善,反而变得更糟?这是我的代码:

net = Model()
criterion = torch.nn.BCELoss(size_average=True)   
optimizer = torch.optim.SGD(net.parameters(), lr=0.1)

num_epochs = 100
for epoch in range(num_epochs):
    for i, (inputs,labels) in enumerate (train_loader):
        inputs = Variable(inputs.float())
        labels = Variable(labels.float())
        output = net(inputs)
        optimizer.zero_grad()
        loss = criterion(output, labels)
        loss.backward()
        optimizer.step()

    #Accuracy
    output = (output>0.5).float()
    correct = (output == labels).float().sum()
    print("Epoch {}/{}, Loss: {:.3f}, Accuracy: {:.3f}".format(epoch+1,num_epochs, loss.data[0], correct/x.shape[0]))
Run Code Online (Sandbox Code Playgroud)

这是我得到的奇怪输出:

Epoch 1/100, Loss: 0.389, Accuracy: 0.035
Epoch 2/100, Loss: 0.370, Accuracy: 0.036
Epoch 3/100, Loss: 0.514, Accuracy: 0.030
Epoch …
Run Code Online (Sandbox Code Playgroud)

neural-network pytorch

11
推荐指数
3
解决办法
5万
查看次数

Python数据帧中的置信区间

我正在尝试计算大型数据集中“力”列的均值和置信区间(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 confidence-interval pandas

8
推荐指数
2
解决办法
2万
查看次数

绘制95%置信区间errorbar python pandas数据帧

我想用Python大熊猫,matpolib显示95%的置信区间...但是我坚持了,因为通常.std()我会像这样做:

import pandas as pd
import numpy as np

import matplotlib

matplotlib.use('Agg')

import matplotlib.pyplot as plt
import math

data = pd.read_table('output.txt',sep=r'\,', engine='python')
Ox = data.groupby(['Ox'])['Ox'].mean()
Oy = data.groupby(['Ox'])['Oy'].mean()
std = data.groupby(['Ox'])['Oy'].std()

plt.plot(Ox, Oy , label = 'STA = '+ str(x))
plt.errorbar(Ox, Oy, std, label = 'errorbar', linewidth=2)

plt.legend(loc='best', prop={'size':9.2})

plt.savefig('plot.pdf')
plt.close()
Run Code Online (Sandbox Code Playgroud)

但我没有找到可以帮助我的熊猫方法.有人知道吗?

python matplotlib pandas

6
推荐指数
2
解决办法
2万
查看次数

python,在中位数附近找到置信区间

如何在python中为我的数据找到中位数附近的置信区间?

说我有数组

a = np.array([24, 38, 61, 22, 16, 57, 31, 29, 35])
Run Code Online (Sandbox Code Playgroud)

我想在中位数附近找到 80% 的置信区间。我如何在 python 中做到这一点?

python intervals median

5
推荐指数
1
解决办法
1814
查看次数

假设分布未知,根据样本数据计算置信区间

我有一些样本数据,我想计算其置信区间,假设分布不正常且未知。基本上,看起来分布是帕累托分布。分布直方图但我不确定。

正态分布的答案:

根据样本数据计算置信区间

使用 scipy 获取置信区间的正确方法

python statistics numpy scipy confidence-interval

5
推荐指数
1
解决办法
8681
查看次数

如何在 Plotly 中为折线图添加 95% 置信区间?

我有本福德测试结果,test_show

    Expected    Counts  Found   Dif AbsDif  Z_score
Sec_Dig                     
0   0.119679    4318    0.080052    -0.039627   0.039627    28.347781
1   0.113890    2323    0.043066    -0.070824   0.070824    51.771489
2   0.108821    1348    0.024991    -0.083831   0.083831    62.513122
3   0.104330    1298    0.024064    -0.080266   0.080266    60.975864
4   0.100308    3060    0.056730    -0.043579   0.043579    33.683738
5   0.096677    6580    0.121987    0.025310    0.025310    19.884178
6   0.093375    10092   0.187097    0.093722    0.093722    74.804141
7   0.090352    9847    0.182555    0.092203    0.092203    74.687841
8   0.087570    8439    0.156452    0.068882    0.068882    56.587749
9   0.084997    6635    0.123007    0.038010    0.038010    31.646817
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 …

python data-visualization plotly

3
推荐指数
1
解决办法
1万
查看次数