2×3卡方检验prism_卡方检验2python代码实现
統計學,風控建模經常遇到卡方分箱算法ChiMerge。卡方分箱在金融信貸風控領域是邏輯回歸評分卡的核心,讓分箱具有統計學意義(單調性)。卡方分箱在生物醫藥領域可以比較兩種藥物或兩組病人是否具有顯著區別。但很多建模人員搞不清楚卡方分箱原理。先給大家介紹一下經常被提到的卡方分布和卡方檢驗是什么。歡迎各位同學學習更多相關知識
騰訊云課堂:python金融風控評分卡模型和數據分析
https://ke.qq.com/course/package/31250?tuin=dcbf0ba
微信公眾號:pythonEducation模型和統計項目QQ:231469242
分類變量檢驗方法
卡方分布繪圖
如果多個符合正態分布的獨立隨機變量z1,z2,z3.....zk,
z1+z2+z3+....z_k呈現卡方分布,自由度k.
有幾個正態分布相加,就有幾個自由度
官方繪圖代碼
# -*- coding: utf-8 -*- '''騰訊云課堂:python金融風控評分卡模型和數據分析:https://ke.qq.com/course/package/31250?tuin=dcbf0ba微信公眾號:pythonEducation模型和統計項目QQ:231469242'''from scipy.stats import chi2import matplotlib.pyplot as pltimport numpy as npfig, ax = plt.subplots(1, 1) df = 20mean, var, skew, kurt = chi2.stats(df, moments='mvsk') #繪制函數的起始點和終止點#pdf為概率密度函數#百分比函數(PPF) :the inverse of the CDF. PPF 函數和連續分布函數CDF相逆,#比如輸入哪一個點,可以得到低于等于20的概率?#ppf(0.01, df)表示輸入哪個點,得到概率低于0.01initial=chi2.ppf(0.01, df)end=chi2.ppf(0.99, df)x = np.linspace(initial,end, 100) #概率密度函數用于繪圖ax.plot(x, chi2.pdf(x, df), 'r-', lw=5, alpha=0.6, label='chi2 pdf')plt.title("df is %d"%df)plt.show()卡方檢驗代碼
可汗學院的問題
# -*- coding: utf-8 -*-'''騰訊云課堂:python金融風控評分卡模型和數據分析:https://ke.qq.com/course/package/31250?tuin=dcbf0ba微信公眾號:pythonEducation模型和統計項目QQ:231469242''''''卡方公式(o-e)^2 / e期望值和收集到數據不能低于5,o(observed)觀察到的數據,e(expected)表示期望的數據(o-e)平方,最后除以期望的數據e''' import numpy as npfrom scipy import statsfrom scipy.stats import chisquare list_observe=[30,14,34,45,57,20]list_expect=[20,20,30,40,60,30] std=np.std(data,ddof=1)print(chisquare(f_obs=list_observe, f_exp=list_expect))p=chisquare(f_obs=list_observe, f_exp=list_expect)[1]'''返回NAN,無窮小''' if p>0.05 or p=="nan": print"H0 win,there is no difference"else: print"H1 win,there is difference"contigency table聯立表
測試數據
第一行:草本藥1,草本藥2,安慰劑
第二行:生病和非生病
H0:草本藥和疾病無關系
H1:草本藥和疾病有關系
可汗學院計算出來的卡方值2.53;自由度2,顯著性0.1,的關鍵值4.6
卡方值2.53
1 | python代碼與可汗學院算出結果一致,此版本體現算法推導過程。缺點就是要自己計算出期望值列表 |
此版本不用算出期望值,更加方便,參考的是2*2聯立表,自由度=1,critical value=2.7
# -*- coding: utf-8 -*- '''騰訊云課堂:python金融風控評分卡模型和數據分析:https://ke.qq.com/course/package/31250?tuin=dcbf0ba微信公眾號:pythonEducation模型和統計項目QQ:231469242'''#獨立性檢驗test for independence,也是卡方檢驗chi_square#前提條件:a,b,c,d 必須大于5 #2.706是判斷標準(90概率),值越大,越有關,值越小,越無關def value_independence(a,b,c,d): if a>=5 and b>=5 and c>=5 and d>=5: return ((a+b+c+d)*(a*d-b*c)**2)/float((a+b)*(c+d)*(a+c)*(b+d)) #返回True表示有關#返回False表示無關def judge_independence(num_independence): if num_independence>2.706: print ("there is relationship") return True else: print("there is no relationship") return False a=34b=38c=28d=50chi_square=value_independence(a,b,c,d)relation=judge_independence(chi_square)python官網版本,更加方便和科學
https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.chi2_contingency.html
import scipy.stats as stats data = np.array([[43,9],[44,4]])V, p, dof, expected = stats.chi2_contingency(data)print(p)例子:
歡迎訪問講師騰訊課堂教學主頁,學習更多python金融模型實戰https://ke.qq.com/teacher/231469242?tuin=dcbf0ba
總結
以上是生活随笔為你收集整理的2×3卡方检验prism_卡方检验2python代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LabVIEW在Windows10下调出
- 下一篇: 门窗计算机公式,门窗天使软件怎么编辑公式