问题标签 [scipy.stats]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3089 浏览

python - 类型错误:使用 scipy 进行 shapiro 测试时,“float”和“str”实例之间不支持“<”

我正在尝试根据列“代码”为熊猫数据框中的每一列运行 shapiro 测试。

这就是我的 df 的样子:

我有 80 行,有 6 个不同的代码(1、2、3、4、5、6)。

我想对每一列,对于每个代码运行夏皮罗测试,例如,取 2020-10-22 的列,只取处理号为的行。1 并对它们运行 shapiro 测试。

我尝试使用以下循环来做到这一点:

但后来我得到错误:

TypeError:“float”和“str”的实例之间不支持“<”

我看到这个错误可能是由于有空值而发生的,但我已经使用 notnull() 摆脱了这个错误。我通过在每次迭代中打印“tmp”的长度来检查 notnull 的工作,它确实发生了变化。

此外,似乎两者的类型都是相同的对象:

(它整天打印相同)。

可能是什么问题?如何计算每个代码每列的 shapiro?

0 投票
1 回答
150 浏览

python - 连续分布的 scipy.stats 属性“熵”不能手动工作

中的每个连续分布scipy.stats都带有一个计算其微分熵的属性:.entropy。与正态分布 ( norm) 和其他具有熵的封闭解的其他分布不同,其他分布必须依赖于数值积分。

试图找出.entropy在这些情况下属性调用的函数,我发现了一个调用的函数_entropyscipy.stats._distn_infrastructure.py数值integrate.quad(pdf)积分)。

但是当我尝试比较这两种方法(属性.entropy 与数值积分与函数_entropy)时,函数给出了一个错误:

AttributeError: 'rv_frozen' object has no attribute '_pdf'

为什么分布的属性.entropy计算得很好,但是函数却_entropy报错?

使用该属性可以正常工作:

返回 0.9503703091220894

但该功能不会:

返回错误 AttributeError: 'rv_frozen' object has no attribute '_pdf',即使johnsonsu 确实具有此属性

.entropy在 的情况下,属性调用的是哪个函数johnsonsu

0 投票
1 回答
115 浏览

python - 你如何从给定的 scipy 随机分布中提取随机数?

我正在尝试从给定的 scipy stats 随机分布生成随机数,在我的情况下是负二项分布。

文档对我来说并不完全清楚。不幸的是,文档有点稀疏:https ://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.nbinom.html

这应该很简单。

0 投票
0 回答
657 浏览

python - 在 Python 3d 曲面图中绘制概率密度函数

在 3d中绘制二维(二元)概率分布 ( scipy.stats.norm) 的最佳方法是什么,如下面的示例曲面图。我不认为seaborn这些都是开箱即用的,而是首先考虑pyplotpylab

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
28 浏览

python - 从另一个类的方法动态创建 scipy.stats 分布

我创建了一个代表统计模拟的类。其中一个方面是p值的分布,并且该类包含表征该分布的方法:

我现在想将该分布也公开为scipy.stats-style 分布对象。为此__init__,我的类的方法包含一个语句

其中类PValueDist定义为

这似乎可行,但我想知道这是否是正确规范的方式?

当然,我也可以创建Simulation一个子类rv_continuous并重命名我的方法。然而,模拟包含几个不同的分布,用其中一个来识别模拟在语义上似乎不正确。

0 投票
0 回答
20 浏览

python - 测试正态性的不同方法导致相同数据的不同输出

我有来自互联网的数据集,我想为不同的列尝试不同的正常测试。我觉得很有趣,不同的正态性测试给了我不同的结果。不仅仅是几个小数不同,而是完全不同的输出。

这是我的代码。

输出:

我仍在学习数据科学及其背后的一切。但我很困惑,如何用不同的价值观发表声明。只是选择一种方法并坚持下去吗?那不可能吧?

0 投票
1 回答
209 浏览

python - scipy.stats.t.std() 中的“scale”参数代表什么?

我的目标是找到具有假定 t 分布的数据集的标准偏差,以计算给定分位数的生存函数。由于 scipy.stats 的文档对我来说非常违反直觉,我尝试了几件事并最终得到了下面的实现。(注意:数字变量仅表明存在不同的结果。我的目标是每个结果都只有一个!)

当给定拟合函数的值时,我遇到了loc等于 stats.t.mean() 函数。但scale不等于 stats.t.std()。因此std1andstd2不同且不等于scale。我只能找到正态分布的来源,其中指出比例等于标准。我应该如何适当地使用上述功能?

任何有关编辑问题的帮助或建议将不胜感激:) 编写代码并保持健康!

0 投票
2 回答
1246 浏览

python - SciKit Learn R-squared 与 Pearson's Correlation R 的平方非常不同

我有 2 个 numpy 数组,就像这样:

当我使用 SciKit Learn 计算 R 平方时,我得到的值与我计算 Pearson 相关然后对结果求平方时完全不同:

结果:
SciKit R2:0.15913

皮尔逊 R:(0.7617075766854164, 9.534162339384296e-05)
皮尔逊 R 平方:0.5801984323799696

我意识到,对于拟合不佳的模型( https://stats.stackexchange.com/questions/12900/when-is-r-squared-negative),R平方值有时可能为负,因此皮尔逊相关性的平方是并不总是等于 R 平方。但是,我认为对于正 R 平方值,它总是等于 Pearson 的相关平方?这些 R 平方值有何不同?

0 投票
1 回答
54 浏览

python - 矩阵的所有行对之间的向量化 KL 散度计算

我想找出矩阵的所有行对之间的 KL 散度。为了解释,让我们假设有一个Vshape矩阵N x K。现在我想创建一个L维度矩阵N x N,其中每个元素L[i,j] = KL(V[i,:],V[j,:])。到目前为止,我已经使用以下scipy.stats.entropy来计算

有没有更聪明的方法?

0 投票
1 回答
21 浏览

python - 绘制均匀分布的实现的 ValueError 问题

所以我正在尝试使用 scipy.stats 绘制均匀分布,但我遇到了这个错误,与形状转换有关,有人可以告诉我为什么会这样/我的代码应该看起来如何,谢谢。

完整代码和回溯如下:

完整的追溯:

ValueError Traceback (most recent call last) in 12 # 创建一个遵循均匀分布的值列表 13 r = uniform.rvs(size=1000) ---> 14 ax.vlines(x, 0, r, colors = "blue ") 15 plt.show() 16

\matplotlib_ init _.py in inner(ax, data, *args, **kwargs) 1436 def inner(ax, *args, data=None, **kwargs): 1437 if data is None: -> 1438 return func( ax, *map(sanitize_sequence, args), **kwargs) 1439 1440 bound = new_sig.bind(ax, *args, **kwargs)

\matplotlib\axes_axes.py in vlines(self, x, ymin, ymax, colors, linestyles, label, **kwargs)
1257 masked_verts[:, 0, 1] = ymin 1258
masked_verts[:, 1, 0] = x - > 1259 masked_verts[:, 1, 1] = ymax 1260 1261 行 = mcoll.LineCollection(masked_verts, colors=colors,

\numpy\ma\core.py in setitem (self, indx, value) 3378 if _mask is nomask: 3379 # 设置数据,然后掩码 -> 3380 _data[indx] = dval 3381 if mval is not nomask: 3382 _mask = self._mask = make_mask_none(self.shape, _dtype)

ValueError:无法将输入数组从形状(1000)广播到形状(11)