gpt4 book ai didi

python - 如何在 python 中创建两个不同大小的样本之间的 qq 图?

转载 作者:太空宇宙 更新时间:2023-11-04 08:43:35 31 4
gpt4 key购买 nike

我有一个原始样本数据和它的模拟数据(不要问我是怎么模拟的),我想检查直方图是否匹配。所以最好的方法是通过 qqplot 但是 statsmodels 库不允许不同大小的样本。

最佳答案

构建 qq 图涉及在两个集合中找到相应的分位数并将它们相对于彼此绘制。在一组大于另一组的情况下,通常的做法是采用较小组的分位数水平,并使用线性插值来估计较大组中的相应分位数。此处对此进行了描述:http://www.itl.nist.gov/div898/handbook/eda/section3/qqplot.htm

手动操作相对简单:

import numpy as np
import pylab

test1 = np.random.normal(0, 1, 1000)
test2 = np.random.normal(0, 1, 800)

#Calculate quantiles
test1.sort()
quantile_levels1 = np.arange(len(test1),dtype=float)/len(test1)

test2.sort()
quantile_levels2 = np.arange(len(test2),dtype=float)/len(test2)

#Use the smaller set of quantile levels to create the plot
quantile_levels = quantile_levels2

#We already have the set of quantiles for the smaller data set
quantiles2 = test2

#We find the set of quantiles for the larger data set using linear interpolation
quantiles1 = np.interp(quantile_levels,quantile_levels1,test1)

#Plot the quantiles to create the qq plot
pylab.plot(quantiles1,quantiles2)

#Add a reference line
maxval = max(test1[-1],test2[-1])
minval = min(test1[0],test2[0])
pylab.plot([minval,maxval],[minval,maxval],'k-')

pylab.show()

关于python - 如何在 python 中创建两个不同大小的样本之间的 qq 图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42658252/

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