如何为 Python probplot 函数提供负 log10 分布以绘制 qq 的 p 值?

问题描述 投票:0回答:1

我想使用

scipy.stats.probplot
将以下代码从 R 翻译为 Python。

qqplot(-log10(ppoints(1000)), -log10(p_value)

这是 p 值与负对数刻度的均匀分布相比的 Q-Q 图。我正在追求类似以下的东西。 (我知道还有其他库可以实现此目的,但我正在寻找

probplot
的答案。)

probplot(-np.log10(p_values_data), dist="uniform", sparams=(0, 1), plot=plt)

这不能正常工作,因为 x 轴是统一的。这里,

plt
是由于
import matplotlib.pyplot as plt
。我发现了帖子here等,但我没有找到任何关于修改
dist
参数以适应
-log10(uniform)
的信息。

如何使用

probplot
获得此图?

python r statistics scipy.stats
1个回答
0
投票

您可以手动转换数据,以便将它们与均匀分布进行比较:

transformed_data = -np.log10(p_values_data)

expected_quantiles = stats.uniform.ppf(np.linspace(0.001, 0.999, len(transformed_data)))

然后是您已经提供的命令

© www.soinside.com 2019 - 2024. All rights reserved.