问题标签 [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 投票
0 回答
46 浏览

python - 如何优化我的函数以进行数值优化?

下面的代码提供了一个完整的可重现示例。我的问题(主要)是关于我的功能thetaMax()。这是一个最小化心理测量过程的对数似然的函数。

我正在学习 Python,并通过将我的 R 函数转换为 python 来做到这一点。下面的代码按预期工作。但是,因为我正在学习 Python,但我的问题是关于风格和质量。

该函数thetaMax将运行在数十万人之上,并且在我的 R 代码中是高效的,并且在多个核心之间进行拆分。但是,在考虑并行处理之前,我的第一个目标是让 Python 代码尽可能快速高效。

我的功能可能有很多部分thetaMax可以改进,但我最关心的一个方面是:

我认为这样做作为一个循环可能很糟糕,并且可以通过某种形式的矢量化来改进。以下是实现此代码所需的完整内容,感谢任何愿意就如何改进代码提供建议的人。

0 投票
0 回答
38 浏览

python - 拟合子类 scipy 分布时的 ValueError

我正在尝试从子类rv_continuousscipy.stats以实现 3 参数对数正态分布。_pdf到目前为止,我只是重新实现了该方法,看看是否可以运行一个最小的示例:

运行此代码时出现错误ValueError: math domain error。这是因为在拟合过程的第一次迭代中,到达了一个点,x = -11 并且其他参数的值等于 1。这会导致 log 函数中的负值导致错误。

什么是典型的解决方法?没有一个数据值是负数,所以我假设这发生在标准化步骤中。rv_continuous在尝试拟合数据之前,我是否遗漏了应重新实施的任何方法?该文档提到至少应该重新实现_pdf或重新实现。_cdf

0 投票
1 回答
347 浏览

python - 使用 scipy.stats 和 numpy 了解对数正态分布和正态分布之间的关系

如果有人可以帮助我了解我哪里出错了,我将不胜感激。我有一些描述概率分布的数据。数据为我提供了 P10、P50 和 P90 的值。我也知道分布是对数正态分布。

我已经读过,对于一个对数正态分布的随机变量 X,然后 Y = ln(X) 具有正态分布 - 例如维基百科(https://en.wikipedia.org/wiki/Log-normal_distribution)。

但是,当我尝试使用 scipystats 和 numpy 来理解这一点时,我无法让它成为现实。因为我知道这是真的,而且我知道我在这些 python 库中使用的简单函数没有问题,所以我知道我在某处的理解存在差距。我只是,为了我的一生,看不到我错过了什么......

我正在使用的代码是:

以上返回 0.9932 - 或其他非常接近 1 的值。到目前为止一切都很好。我可以随心所欲地改变 s 和缩放(或到目前为止已经尝试过),并且正常测试总是接近 1。如果我改变均值(mu,loc),问题就来了:

在这种情况下,我得到的答案是 1.8 左右——即不是正态分布。就像我说的那样,我显然误解了某些东西,但我看不出它是什么。

综上所述,如果我用ss.lognorm.rvsloc 不为 0 来计算一系列对数正态分布的随机变量,然后用它np.log来得到随机变量的自然对数,那么这个新的分布不是正态分布的,表面上看,似乎违反了该问题顶部链接的维基百科文章顶部描述的规则!

我非常感谢任何人可以给我的任何帮助 - 我只是想确信我了解如何将对数正态数据与正态曲线联系起来!

0 投票
1 回答
230 浏览

python - 是否使用 scipy 或其他库查找关键的 F 值?

Scipy Stats 带有一个 ANOVA 测试f_oneway(),它返回一个 p 值和一个 F 分数。p-score 很容易告诉你测试是通过还是失败,只需将它与你的 alpha 阈值进行比较,可以任意选择小以使测试更严格。如果 p 值低于您选择的 alpha,那就可以了。

但是,除非您有一个临界值可以与之比较,否则 F 值似乎毫无意义。查看 Wikipedia,似乎这个临界值是根据 alpha、自由度等计算的。作为一个统计白痴(但越来越好!),我真的不想尝试制作自己的函数,但是我在统计资料库中找不到。我错过了什么吗?

提问的原因:我想在其临界值旁边制作一个 F 分数的条形图。p 值似乎非常小,因此不太适合绘图。

谢谢!

0 投票
1 回答
367 浏览

python - 如何在 python 中使用 stats.norm 来解决以下与概率分布相关的问题

我在 ML 书中遇到了这个问题,这实际上更像是一个数学问题,而不是 ML。如果您能给我一个带有 stat 或任何绑定到 python 的包的解决方案,将不胜感激

根据对 1000 名葡萄种植农户对约 10 亩葡萄农田的农药使用情况进行的调查发现,葡萄种植者平均每周喷洒农药 38 升,相应的标准差为 5 升。 . 假设每周的农药喷洒量服从正态分布。编写代码回答下列问题:

(a) 每周喷洒农药超过 50 升的农民比例是多少?(b) 喷洒少于 10 升的农民比例是多少?(c) 喷洒 30 升到 60 升的农民比例是多少?

0 投票
0 回答
1076 浏览

python - 函数 norm.pdf 的工作原理

我无法理解 norm.pdf() 方法使用了哪些参数。从文档中我找到了这个定义;https://kite.com/python/docs/scipy.stats.norm.pdf 但在此代码中,例如该函数以这种方式使用;

有人可以解释一下这个功能是如何工作的吗?

0 投票
0 回答
68 浏览

python - 如何在没有“DLL 加载失败”错误的情况下导入 scipy.stats?

在命令提示符下使用 python 我可以导入 scipy,但是当尝试导入 scipy.stats 时,我得到以下输出:

导入 scipy

导入 scipy.stats

回溯(最近一次调用):文件“”,第 1 行,在文件“C:\Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\ scipy\stats__init__.py”,第 384 行,从 .stats 导入 * 文件“C:\Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\ scipy\stats\stats.py”,第 179 行,从 scipy.spatial.distance 导入 cdist 文件“C:\Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37 \site-packages\scipy\spatial__init__.py”,第 102 行,从 ._procrustes 导入 procrustes 文件“C:\Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy\spatial_procrustes.py”,第 11 行,从 scipy.linalg 导入正交_procrustes 文件“C:\Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python。 3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy\linalg__init__.py”,第 195 行,从 .misc 导入 * 文件“C:\Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python。 3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy\linalg\misc.py”,第 5 行,从 .blas 导入 get_blas_funcs 文件“C:\Users\David\AppData\Local\Packages\PythonSoftwareFoundation. Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy\linalg\blas.py”,第 215 行,从 scipy.linalg 导入 _fblaslinalg 进口 _fblaslinalg 进口 _fblaslinalg 进口 _fblaslinalg 进口 _fblaspy”,第 11 行,从 scipy.linalg 导入正交_procrustes 文件“C:\Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy\linalg__init__ .py”,第 195 行,从 .misc 导入 * 文件“C:\Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy\linalg \misc.py”,第 5 行,从 .blas 导入 get_blas_funcs 文件“C:\Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy \linalg\blas.py",第 215 行,从 scipy.linalg 导入 _fblaspy”,第 11 行,从 scipy.linalg 导入正交_procrustes 文件“C:\Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy\linalg__init__ .py”,第 195 行,从 .misc 导入 * 文件“C:\Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy\linalg \misc.py”,第 5 行,从 .blas 导入 get_blas_funcs 文件“C:\Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy \linalg\blas.py",第 215 行,从 scipy.linalg 导入 _fblas\Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy\linalg__init__.py”,第 195 行,从 .misc 导入 * 文件“C: \Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy\linalg\misc.py”,第 5 行,来自 .blas import get_blas_funcs 文件” C:\Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy\linalg\blas.py",第 215 行,来自 scipy.linalg 导入_fblas\Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy\linalg__init__.py”,第 195 行,从 .misc 导入 * 文件“C: \Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy\linalg\misc.py”,第 5 行,来自 .blas import get_blas_funcs 文件” C:\Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy\linalg\blas.py",第 215 行,来自 scipy.linalg 导入_fblas\Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy\linalg\misc.py”,第 5 行,来自 .blas import get_blas_funcs 文件” C:\Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy\linalg\blas.py",第 215 行,来自 scipy.linalg 导入_fblas\Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy\linalg\misc.py”,第 5 行,来自 .blas import get_blas_funcs 文件” C:\Users\David\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\scipy\linalg\blas.py",第 215 行,来自 scipy.linalg 导入_fblaslinalg 进口 _fblaslinalg 进口 _fblas

ImportError:DLL 加载失败:找不到指定的模块。

我已经在堆栈溢出中搜索了类似的问题,但似乎找不到解决方法。有人可以帮我吗?

0 投票
1 回答
73 浏览

python - Python scipy.stats - 在 invweibull 曲线上获取特定概率的数字

我正在用 Python 开发一个系统,它在给定统计曲线中所需的概率的情况下返回一个特定的数字

我的数据集包含这个变量的每个值,我称之为“数据”。首先我得到这个值并显示它的直方图

数据的帕累托分布

在直方图之后,我将其拟合到最佳曲线

数据拟合最佳曲线

来自 get_best 的参数 = {'invweibull': (2.2940157, -3.159848, 17.021271)}

现在我得到了关于特定曲线的所有参数(在本例中为 invweibull)我现在需要的是给出一个概率数(例如 95%),系统会检索我它所代表的数字。在这个例子中,50.35

95%概率的个数是50.35

给定概率,我怎样才能得到这个数字?

0 投票
1 回答
48 浏览

numpy - Numpy、OOP 和可调用对象

我正在实现一个带有 Metropolis 和 barkes alpha 的 Markov Chain Montecarlo 用于数值积分。我创建了一个名为MCMCIntegrator(). 我已经为它加载了一些属性,其中之一是我们试图集成的函数(一个 lambda)的 pdf g

这个类中还有其他方法,size是类必须生成的样本大小,std是 Normal Kernel 的标准差,您将在几秒钟内看到。是我们正在积分的real_int函数从 1 到 2 的积分值。我用 R 脚本生成了它。现在,问题。

当我调用该_chain()方法时,这是以下错误:

alpha 返回一个 nnumpy.float,但我不知道为什么它说它不可调用。

0 投票
0 回答
129 浏览

python - Matlab mle fitting vs Python Scipy

I'm converting a Matlab code into a Python version. The Matlab code uses the Maximum Likelihood Esistamtion mle function to fit to a set of samples a Rayleigh and Rice distribution.

It then uses the pdf function to compute the values of the pdf (given the estimated parameters) at some points.

The equivalents in Python are the scipy.stast.rayleigh/rice.fit functions. Problem is that for example the Rayleigh one in Python is the standardized version that return both a location and scale parameter whereas the Matlab mle returns only the scale parameter. Similar for the Rice case, Python version return 3 parameters whereas Matlab only two (as per definition of the Rice distribution).

I know that for the normal distribution location = mean and scale = variance so I was expeceting that for Rayleigh the scale in Mtalb is the same as the scale in Python but it seems they are used differently. The problem obviously propagate when I use the parameters in my code since I do not have a 1to1 match,

Is there a way to have in Python the same "behavior" as in Matlab?

Sorry for the silly question but the Scipy documentation, to my opinion, is not very complete.

Thank you