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

python - Scipy.stats gaussian_kde 从条件分布中重新采样

我正在使用 scipy.stats 中的 gaussian_kde 来拟合来自多元数据的联合 PDF,比如 X 和 Y。

现在我想根据 X 的值有条件地从这个 PDF 中重新采样。例如,一旦我的 X=x,从它的条件分布中生成 Y。

让我们使用此处文档中的示例。kernel.resample(1)将在所有分布上生成一对 (X,Y)。例如,一旦 X 为 0,我如何生成 Y?

0 投票
0 回答
40 浏览

python - 在掩码数组上运行 scipy.stats 的测试

如果我对屏蔽数组的屏蔽组件进行统计测试,我想它应该不起作用。但是当我运行 scipy.stats 测试时,我得到了实际的数字。
这是一个最小的例子:

请注意,x[:,0] 是一组被屏蔽的组件,因此没有可以运行测试的值。

这是否意味着在同一数组的未屏蔽组件上运行相同的测试时,例如 x[:,1],结果同样不可靠?

0 投票
2 回答
1183 浏览

python - 微分熵是用 scipy.stats 中的integrate.quad 计算的?

scipy.stats.entropy计算连续随机变量的微分熵. 究竟是用什么估计方法,用什么公式计算微分熵的?(即分布的微分熵与norm分布的熵beta

下面是它的github代码。微分熵是 pdf 乘以 log pdf 的负积分和,但我看不到这个或写的 log。可能是在调用 tointegrate.quad吗?

来源(第 2501 - 2524 行):https ://github.com/scipy/scipy/blob/master/scipy/stats/_distn_infrastructure.py

0 投票
2 回答
857 浏览

python - 在 Python 中计算指数分布的 lambda 参数的置信区间

假设我有一个样本,我有理由相信它遵循指数分布。我想估计分布参数 (lambda) 和一些置信度指示。置信区间或标准误差都可以。可悲的是,scipy.stats.expon.fit似乎不允许这样做。这是一个例子,我将使用 lambda=1/120=0.008333 作为测试数据:

关于伽马分布数据的类似问题的答案建议使用GenericLikelihoodModel模块statsmodels。虽然我可以确认这对于 gamma 分布的数据非常有效,但它不适用于指数分布,因为优化显然会导致不可逆的 Hessian 矩阵。这是由于 Hessian 矩阵中的非有限元素或np.linalg.eigh为 Hessian 矩阵生成非正特征值造成的。(这里的源代码;HessianInversionWarning 在类的fit方法中引发LikelihoodModel)。

这似乎每次都会发生,因此它可能与指数分布的数据有关。

还有其他可能的方法吗?或者我可能在这里遗漏了什么或做错了什么?

编辑:事实证明,我做错了什么,即我错误地

代替

并相应地查看 fit 元组的第一个元素,而我应该查看第二个元素。

结果,我考虑的另外两个选项(按照维基百科上描述的标准程序手动计算拟合和置信区间)并按照此答案scikits.bootstrap中的建议使用实际上确实有效,并且是我将在一分钟内添加的解决方案的一部分不是问题。

0 投票
0 回答
148 浏览

python - 无法在 Python 中执行 OLS 回归的卡方检验统计量

这是我第一次来这里,我是编程新手。

我用 stats.linregress 将我的 df 的一列与另一列回归,我试图用卡方统计检验评估拟合优度,我尝试了 2 种方法,scipy.stats.chi2_contingency() 和 scipy.stats.chisquare (),问题是我无法从这些方法可读的列中获取频率(这就是我的想法)。

代码是:

输出:LinregressResult(斜率=57.735721968728164,截距=-1788.6653717798467,右值=0.014085574855596942,pvalue=0.47927072225571066,stderr=81.59589542103119)

但是我得到了 ValueError: 操作数不能与形状一起广播 (2525,) (25,

我尝试像这样应用 .ravel() 方法:

但这并没有改变什么。

我尝试使用 scipy.stats.chi2_contingency():

但我得到ValueError:所有值都observed必须是非负的。

我也试过这个来获取表格:

但我得到 TypeError: value_counts() missing 1 required positional argument: 'self'

你能帮我用一种简单的方法来获得统计数据吗?我不需要使用methof本身,只是为了获取统计信息,我可以从表中获取p值。我在 jupiter notebook 上使用 python 3,我的操作系统是 win 10(我知道我知道,但直到最近我才需要编程任何东西)。提前致谢

0 投票
1 回答
1596 浏览

python - scipy 中用于计算相对熵的 3 个函数。有什么不同?

python 中的 Scipy 提供了以下函数,这些函数似乎可以计算相同的信息论度量,即 Kullback-Leibler 散度,也称为相对熵:

  • scipy.stats.entropy, 如果qk=None
  • scipy.special.rel_entr
  • scipy.special.kl_div

为什么三个是一样的?有人可以解释它们之间的区别吗?

0 投票
2 回答
711 浏览

python - Csr 矩阵:如何用 np.nan 而不是 0 替换缺失值?

似乎默认csr_matrix填充缺失值0。那么如何用 填充缺失值np.nan呢?

输出:

预期的:

0 投票
1 回答
106 浏览

python - 将数据集拟合到正态分布的混合

在我的应用程序中,输入数据集通常来自高斯分布。但是,有时它是多模态的,在这种情况下,我想将数据建模为来自多个高斯分布的数据的混合。

现在,我想估计许多基础分布的均值和 sigma。

我找不到办法做到这一点。

我正在考虑的一种方法是将数据集拆分为多个。我将使用高斯 KDE 并使用最小值作为分割点。但是,在基础分布重叠的区域中,它不会是准确的。

有没有更好的方法来做到这一点?

0 投票
0 回答
83 浏览

python - 如何将 Numpy 数组传递给只需要一个参数的 lambda 函数?

我正在尝试在 numpy 数组的第一列上使用 scipy.stats.johnsonsu.expect() 函数,但预期值函数包括来自 numpy 数组的值:

我收到此错误:

我可以通过对列表的正常迭代来做到这一点,但我想知道如何传入 A,以便输出是一个 [Mx1] 数组,其中包含来自 .expect() 的值,而在 lambda 函数中,A 被保存在计算期望值时保持不变。

0 投票
2 回答
224 浏览

random - SciPy:半圆上的 von Mises 分布?

我试图找出定义包裹在半圆上的 von-Mises 分布的最佳方法(我用它来绘制不同浓度的无方向线)。我目前正在使用 SciPy 的 vonmises.rvs()。本质上,我希望能够输入 pi/2 的平均方向,并将分布截断到不超过 pi/2 的任一侧。

我可以使用截断的正态分布,但我会失去 von-mises 的包装(比如,如果我想要一个 0 的平均方向)

我在研究文件中看到了这一点,研究了映射纤维方向,但我不知道如何实现它(在 python 中)。我有点不知道从哪里开始。

如果我的 von Mesis 被定义为(来自 numpy.vonmises):

和:

我将如何更改它以使用半圆环绕?

有这方面经验的人可以提供一些指导吗?