gpt4 book ai didi

python - 如何在python中手动生成Q-Q图而不使用逆分布函数

转载 作者:行者123 更新时间:2023-11-30 22:26:47 28 4
gpt4 key购买 nike

我有 4 个不同的分布,我已将它们拟合到观察样本中。现在我想比较我的结果并找到最佳解决方案。我知道有很多不同的方法可以做到这一点,但我想使用分位数-分位数 (q-q) 图。

我的 4 个分布的公式是:

dist 1

dist 2

dist 3

dist 4

其中K 0是第二类零阶修正贝塞尔函数,Г是 Gamma 函数。

我的示例样式大致如下:(0.2, 0.2, 0.2, 0.3, 0.3, 0.4, 0.4, 0.4, 0.4, 0.6, 0.7 ...),所以我有多个相同的值,并且它们之间也有间隙.

我已阅读有关此 site 的说明并尝试用Python实现它们。所以,就像链接中一样:

1)我将数据按照从小到大的顺序排序。

2) 我计算了间隔 (0,1) 上的“n”个均匀间隔的点,其中“n”是我的样本大小。

3)这是我无法管理的一点。

据我所知,我现在应该使用之前计算的值(那些均匀分布的值),将它们放入上述分布的反函数中,从而计算分布的理论分位数。

作为引用,这里是反函数(部分用 wolframalpha 计算,并且尽可能):

invdist 1

invdist 2

invdist 3

invdist 4

其中 W 是兰伯特 W 函数,后面括号中的所有内容都是参数。

问题是,显然第一个分布不存在反函数。下一个可能会产生复数(根下为负,因为根据拟合 b = 0.55),最后两个有一个兰伯特 W 函数(我不知道如何在 python 中实现它们)。

所以我的问题是,有没有一种方法可以在没有逆分布函数的解析表达式的情况下计算 q-q 图?

非常感谢您能给我的任何帮助!

最佳答案

一种更简单、更传统的方法是计算每个模型的对数似然并选择具有最大对数似然的模型。为此,您不需要 cdf 或分位数函数,只需要密度函数,您已经有了。

对数似然只是 log p(x|model) 的总和,其中 p(x|model) 是给定模型下数据 x 的概率密度。这里“模型”= 通过最大化参数可能值的对数似然来选择参数的模型。

您可以通过对参数空间上的对数似然进行积分,同时考虑分配给每个模型的任何先验概率,从而更加小心地处理这一点;这将是贝叶斯方法。

听起来你本质上是想通过最小化 Kolmogorov-Smirnov (KS) 统计量来选择一个模型,尽管它的名字很重,但非常简单——它是潜在分位数函数和经验函数之间的区别分位数。这是有道理的,但我认为比较对数似然更传统,也更简单,因为您只需要 pdf。

关于python - 如何在python中手动生成Q-Q图而不使用逆分布函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47122284/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com