- html - 我的下拉菜单的内容关闭得太快
- c# - 使用 Html Agility Pack 从网页中的表中获取值而不使用 "SelectNode'
- html - 内容容器下的 CSS 下拉菜单
- html - 如何停止嵌套列表重叠父列表?
最终,我试图将两个 PDF 之间的 copula 可视化,这两个 PDF 是根据数据估计的(均通过 KDE)。假设,对于其中一个 KDE,我将离散的 x,y
数据排序在一个名为 data
的元组中。我需要生成具有此分布的随机变量,以便执行概率积分变换(并最终获得均匀分布)。我生成随机变量的方法如下:
import scipy.stats as st
from scipy import interpolate, integrate
pdf1 = interpolate.interp1d(data[0], data[1])
class pdf1_class(st.rv_continuous):
def _pdf(self,x):
return pdf1(x)
pdf1_rv = pdf1_class(a = data[0][0], b= data[0][-1], name = 'pdf1_class')
pdf1_samples = pdf1_rv.rvs(size=10000)
但是,这种方法非常慢。我还收到以下警告:
IntegrationWarning: The maximum number of subdivisions (50) has been achieved. If increasing the limit yields no improvement it is advised to analyze the integrand in order to determine the difficulties. If the position of a local difficulty can be determined (singularity, discontinuity) one will probably gain from splitting up the interval and calling the integrator on the subranges. Perhaps a special-purpose integrator should be used. warnings.warn(msg, IntegrationWarning)
IntegrationWarning: The occurrence of roundoff error is detected, which prevents the requested tolerance from being achieved. The error may be underestimated. warnings.warn(msg, IntegrationWarning)
有没有更好的方法来生成随机变量?
最佳答案
根据@unutbu 的建议,我实现了 _cdf
和 _ppf
,这使得 10000 个样本的计算成为瞬时的。为此,我在上面的代码中添加了以下内容:
discrete_cdf1 = integrate.cumtrapz(y=data[1], x = data[0])
cdf1 = interpolate.interp1d(data[0][1:], discrete_cdf1)
ppf1 = interpolate.interp1d(discerete_cdf1, data[0][:-1])
然后我将以下两个方法添加到 pdf1_class
def _cdf(self,x):
return cdf1(x)
def _ppf(self,x):
return ppf1(x)
关于python - 使用自定义 pdf 时 stats.rv_continuous 变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51946345/
from scipy import stats import numpy as np class your_distribution(stats.rv_continuous): def _pd
我有以下代码片段: from scipy import stats class my_distribution(stats.rv_continuous): def __init__(self)
我正在尝试为我根据数据生成/估计的一些 pdf 计算 E[f(x)]。 文档中说: Subclassing New random variables can be defined by subclas
我一直在寻找关于如何使用 rv_continuous 的好的教程或示例,但一直找不到。 我读了: http://docs.scipy.org/doc/scipy/reference/generated
我想自己生成一个有界分布函数。但我在上限中看到了奇怪的行为。这是我的代码: import matplotlib.pyplot as plt from scipy.stats import rv_con
我有以下 scipy.stats.rv_continuous 的子类: from scipy.stats import rv_continuous import math class Distribu
在我的 Python 项目中,我像这样扩展 scipy.stats.rv_continuous: class GenlogisticGen(LmomDistrMixin, scipy.stats.rv
我包含了我在下面编写的代码。由于某种原因,与初始分布相比,上限 0.804 被过度采样。我正在使用的两个发行版都会出现这种情况。 这是 rv_continuous 的常见问题还是我遗漏了什么? imp
编辑:计算出分布。并使其大部分工作,除了形状参数为负时。 PDF 应该适用于负形状值,但不适用于子类分布。 我正在尝试使用 scipy 统计数据创建偏态正态分布。我现在只需要PDF。 我对 rv_co
最终,我试图将两个 PDF 之间的 copula 可视化,这两个 PDF 是根据数据估计的(均通过 KDE)。假设,对于其中一个 KDE,我将离散的 x,y 数据排序在一个名为 data 的元组中。我
我正在尝试生成具有特定光度的 QSO 的随机概率密度函数,其形式为: 1/( (L/L_B^* )^alpha + (L/L_B^* )^beta ) 其中 L_B^*、alpha 和 beta 都是
我试图使用 scipy.stats.rv_continuous 对给定概率密度函数(pdf)的随机变量进行采样: class Distribution(stats.rv_continuous):
以下最小示例似乎存在内存泄漏(使用 SciPy 版本 0.17.0 进行测试) import resource from scipy.stats import rv_continuous class
我正在尝试通过子类化 rv_continuous 来生成二维均匀分布. from scipy import stats class uniform_2d(stats.rv_continuous):
我想为一些可能受离散分布支配的数据找到最大似然估计。但是在 scipy.stats 中,只有代表连续分布的类才有合适的函数来做到这一点。代表离散分布的类不代表的原因是什么? 最佳答案 简短的回答:因为
我是一名优秀的程序员,十分优秀!