问题标签 [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 - 使用 STATSMODELS 的一种方法 Anova
我正在尝试在三组之间执行单向方差分析。我已经能够使用 SCIPY.STATS 获得 F 统计量和 F 分布的 p 值。但是,我的偏好是将 ANOVA 表作为具有平方和的 R 类输出。下面给出了我的 SCIPY.STATS 单向方差分析代码。STATSMODELS ANOVA 的所有文档都使用 pandas 数据框。任何有关如何调整我现有的 STATSMODELS 代码的帮助将不胜感激。
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 使用来规避这种情况,或者是否有其他方法/包来计算具有任意精度输入的正态分布的端点?
scipy - 在计算 Spearmans 等级相关性(scipy)之前,我应该对我的序数变量进行编码吗?
我正在使用 scipy.stats.spearmanr 来计算 2 个序数变量的 Spearman 等级相关性。我不确定是否对它们进行编码。我两种方式都试过了,不管怎样,这个函数似乎都会吐出结果。所以我不确定该走哪条路。
python - python scipy.integrate逆ppf
您好,我想给我一个特定的数字积分的 x 值是多少。
到目前为止,我正在使用 scipy.integrate 并且工作正常,但是给定一个整数值有没有办法知道给出该结果的 x 是什么?
假设我有一个函数 f(x) = |2-x| 1<=x<=3
我想知道给我 0.25(第一个四分位数)的 x 值是多少。
在 scipy.stats 中用于正态分布的是 norm.ppf(),在这种特殊情况下,我将它用于 PDF(概率密度函数),但它可以是任何积分。
谢谢并恭祝安康
python - 具有 scipy.stats rvs() 函数的多元随机变量
scipy.stats
统计分布套件(scipy.stats.norm
、scipy.stats.uniform
等 scipy.stats.t
)都使用自己的函数生成单变量数据序列,.rvs()
并且只有一个具有多变量表示形式:,multivariate_normal
对应于numpy
。numpy.random.randn((N,K))
事实上,几乎所有在 中发现的统计分布都numpy.random
可以产生多变量数据。
scipy.stats
考虑到它拥有一些在numpy.random
like中找不到的分布,我如何将发现的单变量分布函数扩展到多元数生成johnsonsu
?我必须自己手动制作一个将多个单变量连接在一起的循环函数吗?那应该是什么样子
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 错误/不兼容造成的。
我可以被认为是这个领域的新手。所以,我想知道,我在这里做错了吗?还是以某种方式预期这个结果?任何帮助是极大的赞赏。
谢谢你。
python - Python3:更新 numpy、scipy 和 scikit-learn 后没有名为“numpy.testing.decorators”的模块
此处已回答了一个相关问题。但是,在我更新我numpy
的scipy
、 和scikit-learn
包后,
并运行(我重新启动终端)
我仍然有错误ModuleNotFoundError: No module named 'numpy.testing.decorators'
。
一条评论:
此错误仅针对 Python3 显示。对于 Python2,它通过了。
python - 是否可以在 Python 中按列而不是行与一个固定系列进行运行关联?
两个月前我在这里问了一个问题(Is it possible to do running correlation with one fixed series in Python?),我从一位用户那里得到了很大的帮助。
我的目标是与 Pandas 中的一个固定系列进行运行关联。这可以通过以下按行工作的代码来实现。但是,我的目标是按列执行此操作。因此,我不想逐行测试相关性,而是想为每一列运行相关性测试。任何帮助表示赞赏!
但是,我的目标是按列执行此操作。
然后我的数据看起来像这样:
我想要的输出是这样的:
python - python中KDE的平滑逼近
我试图在我的 KDE 绘图的 x 轴上只获得非负值。我知道我可以限制 x 轴值,但我不希望那样。有没有办法平滑地逼近 KDE,使得没有非负值?我所有的数据都是非负的,但我没有很多样本点(最多 500 个,我无法获得更多)。我也尝试过调整带宽,但看起来不太好。