日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Q-Q图和P-P图

發(fā)布時間:2023/12/13 综合教程 30 生活家
生活随笔 收集整理的這篇文章主要介紹了 Q-Q图和P-P图 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一. QQ圖

分位數(shù)圖示法(Quantile Quantile Plot,簡稱 Q-Q 圖)
統(tǒng)計(jì)學(xué)里Q-Q圖(Q代表分位數(shù))是一個概率圖,用圖形的方式比較兩個概率分布,把他們的兩個分位數(shù)放在一起比較。首先選好分位數(shù)間隔。圖上的點(diǎn)(x,y)反映出其中一個第二個分布(y坐標(biāo))的分位數(shù)和與之對應(yīng)的第一分布(x坐標(biāo))的相同分位數(shù)。因此,這條線是一條以分位數(shù)間隔為參數(shù)的曲線。如果兩個分布相似,則該Q-Q圖趨近于落在y=x線上。如果兩分布線性相關(guān),則點(diǎn)在Q-Q圖上趨近于落在一條直線上,但不一定在y=x線上。Q-Q圖可以用來可在分布的位置-尺度范疇上可視化的評估參數(shù)。

從定義中可以看出Q-Q圖主要用于檢驗(yàn)數(shù)據(jù)分布的相似性,如果要利用Q-Q圖來對數(shù)據(jù)進(jìn)行正態(tài)分布的檢驗(yàn),則可以令x軸為正態(tài)分布的分位數(shù),y軸為樣本分位數(shù),如果這兩者構(gòu)成的點(diǎn)分布在一條直線上,就證明樣本數(shù)據(jù)與正態(tài)分布存在線性相關(guān)性,即服從正態(tài)分布。

二. PP圖
P-P圖是根據(jù)變量的累積概率對應(yīng)于所指定的理論分布累積概率繪制的散點(diǎn)圖,用于直觀地檢測樣本數(shù)據(jù)是否符合某一概率分布。如果被檢驗(yàn)的數(shù)據(jù)符合所指定的分布,則代表樣本數(shù)據(jù)的點(diǎn)應(yīng)當(dāng)基本在代表理論分布的對角線上。
由于P-P圖和Q-Q圖的用途完全相同,只是檢驗(yàn)方法存在差異。要利用QQ圖鑒別樣本數(shù)據(jù)是否近似于正態(tài)分布,只需看QQ圖上的點(diǎn)是否近似地在一條直線附近,而且該直線的斜率為標(biāo)準(zhǔn)差,截距為均值.
用QQ圖還可獲得樣本偏度和峰度的粗略信息.

scipy 畫Q-Q圖

fig = plt.figure()
res = stats.probplot(train['SalePrice'], plot=plt)
plt.show()

scipy.stats 用法

# -*- coding: utf-8 -*-
from scipy import stats
from numpy import random

# Distributions
# 常用分布可參考本文檔結(jié)尾處
# 分布可以使用的方法見下列清單
data=random.normal(size=1000)
stats.norm.rvs(loc=0,scale=1,size=10,random_state=None)     # 生成隨機(jī)數(shù)
stats.norm.pdf(-1.96,loc=0,scale=1)                         # 密度分布函數(shù),畫密度分布圖時使用
stats.norm.cdf(-1.96,loc=0,scale=1)                         # 累計(jì)分布函數(shù),-1.96對應(yīng)2.5%
stats.norm.sf(-1.96,loc=0,scale=1)                          # 殘存函數(shù)(=1-cdf),-1.96對應(yīng)97.5%
stats.norm.ppf(0.025,loc=0,scale=1)                         # 累計(jì)分布函數(shù)反過來
stats.norm.isf(0.975,loc=0,scale=1)                         # 殘存函數(shù)反過來
stats.norm.interval(0.95,loc=0,scale=1)                     # 置信度為95%的置信區(qū)間
stats.norm.moment(n=2,loc=0,scale=1)                        # n階非中心距,n=2時是方差
stats.norm.median(loc=0,scale=1)                            # Median of the distribution.
stats.norm.mean(loc=0,scale=1)                              # Mean of the distribution.
stats.norm.var(loc=0,scale=1)                               # Variance of the distribution.
stats.norm.std(loc=0,scale=1)                               # Standard deviation of the distribution.
stats.norm.fit(data)                                        # fit 估計(jì)潛在分布的參數(shù)

# Statistical functions
stats.describe([1,2,3])                                                 # 返回多個統(tǒng)計(jì)量
stats.gmean([1,2,4])                                                    # 幾何平均數(shù) n-th root of (x1 * x2 * ... * xn)
stats.hmean([2,2,2])                                                    # 調(diào)和平均數(shù) n / (1/x1 + 1/x2 + ... + 1/xn)
stats.trim_mean([1,2,3,5],0.25)                                         # 砍頭去尾均值,按比例砍
stats.sem(data)                                                         # Calculates the standard error of the mean
stats.mode([1,1,2])                                                     # 眾數(shù)
stats.skew(data)                                                        # 偏度
stats.kurtosis(data)                                                    # 峰度
stats.moment(data,moment=3)                                             # n階中心矩,3階就是偏度,4階就是峰度
stats.skewtest(data)                                                    # 檢驗(yàn)偏度是否符合正態(tài)分布的偏度
stats.kurtosistest(data)                                                # 檢驗(yàn)峰度是否符合正態(tài)分布的峰度
stats.normaltest(data)                                                  # 檢驗(yàn)是否符合正態(tài)分布
stats.variation([1,2,3])                                                # 變異系數(shù)(=std/mean*100%)
stats.find_repeats([1,1,2,2,3])                                         # 重復(fù)值查找

stats.itemfreq([1,1,2,2,3])                                             # 頻次統(tǒng)計(jì)
stats.percentileofscore([1,2,3,4,5],2)                                  # 返回?cái)?shù)值的分位數(shù)
stats.scoreatpercentile([1,2,3,4,5],80,interpolation_method="lower")    # 返回分位數(shù)對應(yīng)的數(shù)值

stats.bayes_mvs(data)                                                   # 返回均值/方差/標(biāo)準(zhǔn)差的貝葉斯置信區(qū)間

stats.iqr([1,2,3,4,5],rng=(25,75))                                      # 計(jì)算 IQR
stats.zscore(data)                                                      # 計(jì)算 zscore
stats.f_oneway(data,data+data,data+data+data)                           # 單因素方差分析,參數(shù)是(樣本組1,樣本組2,樣本組3)
stats.pearsonr(data,data+data)                                          # 皮爾森相關(guān)系數(shù)
stats.spearmanr(data,data+data)                                         # 斯皮爾曼秩相關(guān)系數(shù)
stats.kendalltau(data,data+data)                                        # 肯德爾相關(guān)系數(shù)
stats.pointbiserialr([1,1,1,0,0,0],[1,2,3,4,5,6])                       # 點(diǎn)二系列相關(guān),第一個變量需要是二分類變量
stats.linregress(data,data+data)                                        # 線性最小二乘回歸

stats.ttest_1samp(data,popmean=0)                                                               # 單樣本 t-檢驗(yàn): 檢驗(yàn)總體平均數(shù)的值
stats.ttest_ind(data,data+data)                                                                 # 雙樣本 t-檢驗(yàn): 檢驗(yàn)不同總體的差異
stats.ttest_rel(data,data+data)                                                                 # 配對樣本 t-檢驗(yàn)
stats.ttest_ind_from_stats(mean1=0,std1=1,nobs1=100,mean2=10,std2=1,nobs2=150,equal_var=True)   # 根據(jù)統(tǒng)計(jì)量做 t-檢驗(yàn)
stats.wilcoxon(data,data+data)                                                                  # 一種非參數(shù)的配對樣本檢驗(yàn)。t-檢驗(yàn)假定高斯誤差。可以使用威爾科克森符號秩檢驗(yàn), 放松了這個假設(shè)
stats.kstest(data,'norm')                                                                       # Kolmogorov–Smirnov檢驗(yàn): 檢驗(yàn)單一樣本是否服從某一預(yù)先假設(shè)的特定分布
stats.ks_2samp(data,data+data)                                                                  # 檢測兩樣本分布是否相同
stats.ranksums(data,data+data)                                                                  # Wilcoxon rank-sum statistic 檢測兩樣本分布是否相同
stats.chisquare(data,data)                                                                      # 卡方檢驗(yàn),第一個參數(shù)是樣本分布,第二個參數(shù)是期望分布

# Circular statistical functions
# 適用于環(huán)形數(shù)據(jù),如時間(60分鐘一圈),角度(360度一圈)
# 例如 0度 與 360度 的均值應(yīng)該是 0度
stats.circmean([0,360],high=0,low=360)      # 均值
stats.circvar([0,360],high=0,low=360)       # 方差
stats.circstd([0,360],high=0,low=360)       # 標(biāo)準(zhǔn)差

# Contingency table functions
# 列聯(lián)表
stats.chi2_contingency([[10,10,20],[20,20,20]],lambda_="log-likelihood")        # 卡方檢驗(yàn),n*m的列聯(lián)表,每個格子樣本數(shù)要大于5,lambda_默認(rèn)皮爾森
stats.fisher_exact([[8,2],[1,5]],alternative="two-sided")                       # 費(fèi)舍爾精確檢驗(yàn),2*2的列聯(lián)表,alternative:two-sided,less,greater
stats.contingency.expected_freq([[10,10,20],[20,20,20]])                        # 返回列聯(lián)表的期望頻次(各變量獨(dú)立時的預(yù)期頻次)
import numpy as np; stats.contingency.margins(np.array([[10,10,20],[20,20,20]]))# 返回列聯(lián)表的行列和

# Plot-tests
# 圖檢驗(yàn):probplot與Q-Q圖的差異:P-P圖是用分布的累計(jì)比,而Q-Q圖用的是分布的分位數(shù)來做檢驗(yàn)
import matplotlib.pyplot as plt
data=random.normal(loc=0,scale=1,size=500)
stats.probplot(data,dist=stats.norm,sparams=(0,1),plot=plt) # P-P圖(probability plot),參數(shù)sparams傳的是均值與標(biāo)準(zhǔn)差
stats.boxcox_normplot(abs(data),-3,3,plot=plt)              # 不知干啥用,Compute parameters for a Box-Cox normality plot
stats.ppcc_plot(data,-3,3,dist=stats.norm,plot=plt)         # 不知干啥用,Calculate and optionally plot probability plot correlation coefficient.
stats.ppcc_max(data,dist=stats.norm)                        # 不知干啥用,返回 PPCC 取最大時對應(yīng)的位置

# Univariate and multivariate kernel density estimation
# 核密度估計(jì)用于估計(jì)未知的密度函數(shù),屬於非參數(shù)檢驗(yàn)方法之一
stats.gaussian_kde([data,data+random.normal(size=500)])     # 不知干啥用,Representation of a kernel-density estimate using Gaussian kernels.

""" ---------------------------------------------------------------------------------------------------------
所有分布都是 rv_continuous(連續(xù)型分布) 與 rv_discrete(離散型分布) 的實(shí)例
rv_continuous([momtype, a, b, xtol, ...])   A generic continuous random variable class meant for subclassing.
rv_discrete([a, b, name, badvalue, ...])    A generic discrete random variable class meant for subclassing.
rv_histogram(histogram, *args, **kwargs)    Generates a distribution given by a histogram.

Continuous distributions 連續(xù)型分布
alpha   An alpha continuous random variable.
beta    A beta continuous random variable.
chi2    A chi-squared continuous random variable.
f       An F continuous random variable.
gamma   A gamma continuous random variable.
lognorm A lognormal continuous random variable.
ncx2    A non-central chi-squared continuous random variable.
ncf     A non-central F distribution continuous random variable.
nct     A non-central Student’s T continuous random variable.
norm    A normal continuous random variable.
pareto  A Pareto continuous random variable.
t       A Student’s T continuous random variable.
uniform A uniform continuous random variable.
wald    A Wald continuous random variable.
……

Multivariate distributions 多元分布
multivariate_normal A multivariate normal random variable.
matrix_normal       A matrix normal random variable.
multinomial         A multinomial random variable.
random_correlation  A random correlation matrix.
……

Discrete distributions 離散型分布
binom       A binomial discrete random variable.
hypergeom   A hypergeometric discrete random variable.
nbinom      A negative binomial discrete random variable.
poisson     A Poisson discrete random variable.
randint     A uniform discrete random variable.

參考:

Q-Q圖簡介

學(xué)習(xí)-Python-數(shù)據(jù)分析&數(shù)據(jù)挖掘-4 SciPy.stats

總結(jié)

以上是生活随笔為你收集整理的Q-Q图和P-P图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。