问题标签 [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 回答
891 浏览

python - 使用 STATSMODELS 的一种方法 Anova

我正在尝试在三组之间执行单向方差分析。我已经能够使用 SCIPY.STATS 获得 F 统计量和 F 分布的 p 值。但是,我的偏好是将 ANOVA 表作为具有平方和的 R 类输出。下面给出了我的 SCIPY.STATS 单向方差分析代码。STATSMODELS ANOVA 的所有文档都使用 pandas 数据框。任何有关如何调整我现有的 STATSMODELS 代码的帮助将不胜感激。

0 投票
0 回答
197 浏览

python - scipy.stats.norm.interval 返回 inf

我有一堆数据点和一个模型,现在我正在寻找可以排除模型的置信水平。

我从一个卡方值开始,伴随着一个自由度数的值。

使用 scipy,我一直在尝试的看起来像这样:

这会产生我正在寻找的输出(5.5 sigma 置信度),但对于更高的 chi^2 值会失败。

在我看来,问题在于 scipy 使用的数据类型的精度。对于 chi^2 值 334.7(和相同数量的自由度),chi2.cdf 产生 1.0,这反过来使 norm.interval 返回 -inf/inf。这应该最好返回 16.1 sigma 置信度。

我找到了一种使用 mpmath 为 cdf 获得更好精度的方法:

但是,问题仍然存在,因为 scipy.stats.norm.interval 似乎将输入四舍五入为 1.0。

有没有办法通过更改数据类型 norm.interval 使用来规避这种情况,或者是否有其他方法/包来计算具有任意精度输入的正态分布的端点?

0 投票
1 回答
53 浏览

scipy - 在计算 Spearmans 等级相关性(scipy)之前,我应该对我的序数变量进行编码吗?

我正在使用 scipy.stats.spearmanr 来计算 2 个序数变量的 Spearman 等级相关性。我不确定是否对它们进行编码。我两种方式都试过了,不管怎样,这个函数似乎都会吐出结果。所以我不确定该走哪条路。

0 投票
0 回答
75 浏览

python - scipy.stats.distributions.fit 是如何工作的?

我试图用正常的分布来近似一些硬分布。但scipy.stats.norm.fit给出了一些尴尬的结果。近似结果与原始结果相差甚远。然后我尝试手动设置参数,它看起来好多了。但是,对数似然状态则metod更好。为什么?一切正常吗?还有其他方法来估计分布参数吗?

在此处输入图像描述

0 投票
1 回答
188 浏览

python - python scipy.integrate逆ppf

您好,我想给我一个特定的数字积分的 x 值是多少。

到目前为止,我正在使用 scipy.integrate 并且工作正常,但是给定一个整数值有没有办法知道给出该结果的 x 是什么?

假设我有一个函数 f(x) = |2-x| 1<=x<=3

我想知道给我 0.25(第一个四分位数)的 x 值是多少。

在 scipy.stats 中用于正态分布的是 norm.ppf(),在这种特殊情况下,我将它用于 PDF(概率密度函数),但它可以是任何积分。

谢谢并恭祝安康

0 投票
1 回答
417 浏览

python - 具有 scipy.stats rvs() 函数的多元随机变量

scipy.stats统计分布套件(scipy.stats.normscipy.stats.uniformscipy.stats.t)都使用自己的函数生成单变量数据序列,.rvs()并且只有一个具有多变量表示形式:,multivariate_normal对应于numpynumpy.random.randn((N,K))事实上,几乎所有在 中发现的统计分布都numpy.random可以产生多变量数据。

scipy.stats考虑到它拥有一些在numpy.randomlike中找不到的分布,我如何将发现的单变量分布函数扩展到多元数生成johnsonsu?我必须自己手动制作一个将多个单变量连接在一起的循环函数吗?那应该是什么样子

0 投票
2 回答
488 浏览

python-3.x - 使用 scipy.stats 将 Weibull 分布拟合到数据是否表现不佳?

我正在研究在一些整数数据上拟合 Weibull 分布并估计相关的形状、比例、位置参数。但是,我在这样做时注意到scipy.stats库的性能不佳。

所以,我采取了不同的方向,并使用下面的代码检查了合身性能。我首先使用参数 shape=3、scale=200、location=1 的 Weibull 分布创建 100 个数字。随后,我使用fitter库估计最佳分布拟合。

我希望最适合的是 Weibull 分布。我试过重新运行这个测试。有时 Weibull 拟合是一个很好的估计。然而,大多数时候 Weibull 拟合被报告为最差的结果。在这种情况下,估计的参数为 = (0.13836651040093312, 66.99999999999999, 1.3200752378443505)。我假设这些参数依次对应于形状、比例、位置。以下是拟合过程的摘要。

此外,还生成了以下图。
阴谋

此外,瑞利分布是形状参数 = 2 的 Weibull 分布的特例。因此,我希望得到的 Weibull 拟合至少与 Rayleigh 一样好。

更新

我在 numpy 版本 1.19.2 和 scipy 版本 1.5.2 的 Linux/Ubuntu 20.04 机器上运行了上面的测试。上面的代码似乎按预期运行,并为 Mac 机器上的 Weibull 分发返回了正确的结果。

我还通过使用 R 库fitdistrplus测试了在 Linux 机器上生成的数据x上拟合 Weibull 分布:

并观察到估计的形状和比例值与最初给定的值非常接近。到目前为止,最好的猜测是问题是由于一些 Python-Ubuntu 错误/不兼容造成的。

我可以被认为是这个领域的新手。所以,我想知道,我在这里做错了吗?还是以某种方式预期这个结果?任何帮助是极大的赞赏。

谢谢你。

0 投票
0 回答
239 浏览

python - Python3:更新 numpy、scipy 和 scikit-learn 后没有名为“numpy.testing.decorators”的模块

此处已回答了一个相关问题。但是,在我更新我numpyscipy、 和scikit-learn包后,

并运行(我重新启动终端)

我仍然有错误ModuleNotFoundError: No module named 'numpy.testing.decorators'

一条评论:

此错误仅针对 Python3 显示。对于 Python2,它通过了。

0 投票
0 回答
61 浏览

python - 是否可以在 Python 中按列而不是行与一个固定系列进行运行关联?

两个月前我在这里问了一个问题(Is it possible to do running correlation with one fixed series in Python?),我从一位用户那里得到了很大的帮助。

我的目标是与 Pandas 中的一个固定系列进行运行关联。这可以通过以下按行工作的代码来实现。但是,我的目标是按列执行此操作。因此,我不想逐行测试相关性,而是想为每一列运行相关性测试。任何帮助表示赞赏!

但是,我的目标是按列执行此操作。

然后我的数据看起来像这样:

我想要的输出是这样的:

0 投票
1 回答
662 浏览

python - python中KDE的平滑逼近

我试图在我的 KDE 绘图的 x 轴上只获得非负值。我知道我可以限制 x 轴值,但我不希望那样。有没有办法平滑地逼近 KDE,使得没有非负值?我所有的数据都是非负的,但我没有很多样本点(最多 500 个,我无法获得更多)。我也尝试过调整带宽,但看起来不太好。

情节图