问题标签 [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.
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?
python - 连续分布的 scipy.stats 属性“熵”不能手动工作
中的每个连续分布scipy.stats
都带有一个计算其微分熵的属性:.entropy
。与正态分布 ( norm
) 和其他具有熵的封闭解的其他分布不同,其他分布必须依赖于数值积分。
试图找出.entropy
在这些情况下属性调用的函数,我发现了一个调用的函数_entropy
(scipy.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
?
python - 你如何从给定的 scipy 随机分布中提取随机数?
我正在尝试从给定的 scipy stats 随机分布生成随机数,在我的情况下是负二项分布。
文档对我来说并不完全清楚。不幸的是,文档有点稀疏:https ://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.nbinom.html
这应该很简单。
python - 从另一个类的方法动态创建 scipy.stats 分布
我创建了一个代表统计模拟的类。其中一个方面是p值的分布,并且该类包含表征该分布的方法:
我现在想将该分布也公开为scipy.stats
-style 分布对象。为此__init__
,我的类的方法包含一个语句
其中类PValueDist
定义为
这似乎可行,但我想知道这是否是正确或规范的方式?
当然,我也可以创建Simulation
一个子类rv_continuous
并重命名我的方法。然而,模拟包含几个不同的分布,用其中一个来识别模拟在语义上似乎不正确。
python - 测试正态性的不同方法导致相同数据的不同输出
我有来自互联网的数据集,我想为不同的列尝试不同的正常测试。我觉得很有趣,不同的正态性测试给了我不同的结果。不仅仅是几个小数不同,而是完全不同的输出。
这是我的代码。
输出:
我仍在学习数据科学及其背后的一切。但我很困惑,如何用不同的价值观发表声明。只是选择一种方法并坚持下去吗?那不可能吧?
python - scipy.stats.t.std() 中的“scale”参数代表什么?
我的目标是找到具有假定 t 分布的数据集的标准偏差,以计算给定分位数的生存函数。由于 scipy.stats 的文档对我来说非常违反直觉,我尝试了几件事并最终得到了下面的实现。(注意:数字变量仅表明存在不同的结果。我的目标是每个结果都只有一个!)
当给定拟合函数的值时,我遇到了loc
等于 stats.t.mean() 函数。但scale
不等于 stats.t.std()。因此std1
andstd2
不同且不等于scale
。我只能找到正态分布的来源,其中指出比例等于标准。我应该如何适当地使用上述功能?
任何有关编辑问题的帮助或建议将不胜感激:) 编写代码并保持健康!
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 平方值有何不同?
python - 矩阵的所有行对之间的向量化 KL 散度计算
我想找出矩阵的所有行对之间的 KL 散度。为了解释,让我们假设有一个V
shape矩阵N x K
。现在我想创建一个L
维度矩阵N x N
,其中每个元素L[i,j] = KL(V[i,:],V[j,:])
。到目前为止,我已经使用以下scipy.stats.entropy
来计算
有没有更聪明的方法?
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)