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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

2×3卡方检验prism_卡方检验2python代码实现

發布時間:2023/12/14 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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'''import numpy as npimport matplotlib.pyplot as pltimport scipy.stats as statsimport seaborn as snsimport math,pylab,matplotlib,numpyfrom matplotlib.font_manager import FontProperties #設置中文字體font=FontProperties(fname=r"c:\windows\fonts\simsun.ttc",size=15) n=10 #繪制自由度為n的卡方分布圖,n表示生成卡方數組的個數def Get_chisquareDatas(n): #標準正太分布 normalDistribution=stats.norm(0,1) list_data=[] for i in range(n): normal_data=normalDistribution.rvs(30) chisquare_data=normal_data**2 list_data.append(chisquare_data) return list_data def Plot_chisquare(n): list_data=Get_chisquareDatas(n) sum_data=sum(list_data) plt.hist(sum_data) Plot_chisquare(2)Plot_chisquare(3)Plot_chisquare(10)

官方繪圖代碼

# -*- 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代碼與可汗學院算出結果一致,此版本體現算法推導過程。缺點就是要自己計算出期望值列表

# -*- coding: utf-8 -*-'''卡方公式(o-e)^2 / e期望值和收集到數據不能低于5,o(observed)觀察到的數據,e(expected)表示期望的數據(o-e)平方,最后除以期望的數據e聯立表contigency table計算'''from scipy.stats import chisquare list_observe=[34,38,28,50]list_expect=[29.76,42.2,32.24,45.77]row=2colume=2def Contigency_table(row,colume,list_observe,list_expect): degreeFreedom=(row-1)*(colume-1) print(chisquare(f_obs=list_observe, f_exp=list_expect,ddof=degreeFreedom)) p=chisquare(f_obs=list_observe, f_exp=list_expect)[1] if p>0.05 or p=="nan": print"H0 win,there is no difference" else: print"H1 win,there is difference"Contigency_table(row,colume,list_observe,list_expect)

此版本不用算出期望值,更加方便,參考的是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代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。