Seaborn에서 qq plot을 데이터의 정규성 테스트로 사용할 수있는 사람이 있습니까? 또는 matplotlib에서 적어도 실패했습니다. 위키 피 디아 기사를 읽은 후 사전Seaborn과 SciPy를 사용한 Quantile-Quantile 플롯
0
A
답변
4
에서
덕분에, 나는 Q-Q 플롯이 서로에 대한 두 개의 분포의 분위수의 플롯 것을 이해합니다.
numpy.percentile
은 분포의 백분위 수를 얻을 수 있습니다. 따라서 각 분포에서 numpy.percentile
을 호출하고 결과를 서로 대입 할 수 있습니다.
import numpy as np
import matplotlib.pyplot as plt
a = np.random.normal(5,5,250)
b = np.random.rayleigh(5,250)
percs = np.linspace(0,100,21)
qn_a = np.percentile(a, percs)
qn_b = np.percentile(b, percs)
plt.plot(qn_a,qn_b, ls="", marker="o")
x = np.linspace(np.min((qn_a.min(),qn_b.min())), np.max((qn_a.max(),qn_b.max())))
plt.plot(x,x, color="k", ls="--")
plt.show()
3
Statsmodels.api이 작업의 플로터를 가지고있다.
체크 아웃 sm.qqplot는() sm docs
다음은 위와 같은 데이터를 사용하여 몇 가지 예입니다.
import numpy as np
import matplotlib.pyplot as plt
import statsmodels.api as sm
a = np.random.normal(5,5,250)
sm.qqplot(a)
plt.show()
아직 이미지를 게시 할 수 없습니다. 그래서 그것을 밖으로 시도하십시오. 이 것은 정상 분포에 대해 플롯 된 정규 분포를 보여줍니다.이 결과는 (직사각형) 직선입니다.
b = np.random.rayleigh(5,250)
sm.qqplot(b)
정상적인 dist에 대해 raleigh dist를 보여줍니다. 결과는 약간 오목한 곡선입니다.
http://www.statsmodels.org/dev/generated/statsmodels.graphics.gofplots.qqplot.html을 참조하십시오. –