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

歡迎訪問 生活随笔!

生活随笔

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

python

卡方 python_Python评分卡建模—卡方分箱

發布時間:2024/4/19 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 卡方 python_Python评分卡建模—卡方分箱 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原標題:Python評分卡建模—卡方分箱

今天主要給大家講講卡方分箱算法ChiMerge。先給大家介紹一下經常被提到的卡方分布和卡方檢驗是什么。

一、卡方分布

卡方分布(chi-square distribution, χ2-distribution)是概率統計里常用的一種概率分布,也是統計推斷里應用最廣泛的概率分布之一,在假設檢驗與置信區間的計算中經常能見到卡方分布的身影。

卡方分布的定義如下:

若k個獨立的隨機變量Z1, Z2,..., Zk 滿足標準正態分布 N(0,1) , 則這k個隨機變量的平方和:

為服從自由度為k的卡方分布,記作:

或者記作

二、卡方檢驗

χ2檢驗是以χ2分布為基礎的一種假設檢驗方法,主要用于分類變量之間的獨立性檢驗。

其基本思想是根據樣本數據推斷總體的分布與期望分布是否有顯著性差異,或者推斷兩個分類變量是否相關或者獨立。

一般可以設原假設為 :觀察頻數與期望頻數沒有差異,或者兩個變量相互獨立不相關。

實際應用中,我們先假設原假設成立,計算出卡方的值,卡方表示觀察值與理論值間的偏離程度。

卡方值的計算公式為:

其中A為實際頻數,E為期望頻數。卡方值用于衡量實際值與理論值的差異程度,這也是卡方檢驗的核心思想。

卡方值包含了以下兩個信息:

1.實際值與理論值偏差的絕對大小。 2.差異程度與理論值的相對大小。

上述計算的卡方值服從卡方分布。根據卡方分布,卡方統計量以及自由度,可以確定在原假設成立的情況下獲得當前統計量以及更極端情況的概率p。如果p很小,說明觀察值與理論值的偏離程度大,應該拒絕原假設。否則不能拒絕原假設。

三、卡方檢驗實例

某醫院對某種病癥的患者使用了A,B兩種不同的療法,結果如表1,問兩種療法有無差別?

表1 兩種療法治療卵巢癌的療效比較

組別

有效

無效

合計

有效率(%)

A組

19

24

43

44.2

B組

34

10

44

77.3

合計

53

34

87

60.9

可以計算出各格內的期望頻數。

第1行1列: 43×53/87=26.2

第1行2列: 43×34/87=16.8

第2行1列: 44×53/87=26.8

第2行2列: 4×34/87=17.2

先建立原假設:A、B兩種療法沒有區別。根據卡方值的計算公式,計算:

算得卡方值=10.01。

得到卡方值以后,接下來需要查詢卡方分布表來判斷p值,從而做出接受或拒絕原假設的決定。

首先我們明確自由度的概念:自由度k=(行數-1)*(列數-1)。 這里k=1.然后看卡方分布的臨界概率表,我們可以用如下代碼生成:

import numpy as np

from scipy.stats import chi2

import pandas as pd

# chi square distribution

percents = [ 0.95, 0.90, 0.5,0.1, 0.05, 0.025, 0.01, 0.005]

df =pd.DataFrame(np.array([chi2.isf(percents, df=i) for i in range(1, 30)]))

df.columns = percents

df.index =df.index+1

pd.set_option('precision', 3)

df

查表自由度為1,p=0.05的卡方值為3.841,而此例卡方值10.01>3.841,因此 p < 0.05,說明原假設在0.05的顯著性水平下是可以拒絕的。也就是說,原假設不成立。

四、ChiMerge分箱算法

ChiMerge卡方分箱算法由Kerber于1992提出。

它主要包括兩個階段:初始化階段和自底向上的合并階段。

1.初始化階段:

首先按照屬性值的大小進行排序(對于非連續特征,需要先做數值轉換,比如轉為壞人率,然后排序),然后每個屬性值單獨作為一組。

2.合并階段:

(1)對每一對相鄰的組,計算卡方值。

(2)根據計算的卡方值,對其中最小的一對鄰組合并為一組。

(3)不斷重復(1),(2)直到計算出的卡方值都不低于事先設定的閾值,或者分組數達到一定的條件(如最小分組數5,最大分組數8)。

值得注意的是,小編之前發現有的實現方法在合并階段,計算的并非相鄰組的卡方值(只考慮在此兩組內的樣本,并計算期望頻數),因為他們用整體樣本來計算此相鄰兩組的期望頻數。

下圖是著名的鳶尾花數據集sepal-length屬性值的分組及相鄰組的卡方值。最左側是屬性值,中間3列是class的頻數,最右是卡方值。這個分箱是以卡方閾值1.4的結果。可以看出,最小的組為[6.7,7.0),它的卡方值是1.5。

如果進一步提高閾值,如設置為4.6,那么以上分箱還將繼續合并,最終的分箱如下圖:

卡方分箱除了用閾值來做約束條件,還可以進一步的加入分箱數約束,以及最小箱占比,壞人率約束等。

來源|數據分析sas和python返回搜狐,查看更多

責任編輯:

總結

以上是生活随笔為你收集整理的卡方 python_Python评分卡建模—卡方分箱的全部內容,希望文章能夠幫你解決所遇到的問題。

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