日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

卡方 python_卡方优度检测 (Python 实现) --基于jupyter

發(fā)布時間:2024/10/14 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 卡方 python_卡方优度检测 (Python 实现) --基于jupyter 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

卡方獨立性檢驗

import numpy as np

from scipy.stats import chi2_contingency # 列聯(lián)表分析

from scipy.stats import chi2 # 卡方分布

(2)參數(shù)說明

【輸入】:

參數(shù)

描述

alpha

置信度,用來確定臨界值;

data

數(shù)據(jù),請使用numpy.array數(shù)組;

【輸出】:

參數(shù)

描述

CMIN

卡方值,也就是統(tǒng)計量;

p

P值(統(tǒng)計學(xué)名詞),與置信度對比,也可進行假設(shè)檢驗,P值小于置信度,則拒絕原假設(shè);

freedom

自由度;

re

判斷變量,1表示拒絕原假設(shè),0表示接受原假設(shè);

prediction_value

原數(shù)據(jù)數(shù)組同維度的對應(yīng)理論預(yù)測值(預(yù)測結(jié)果);

def chi2_independence(alpha, data):

CMIN, p, dof, prediction_value = chi2_contingency(data)

if dof == 0:

print('自由度應(yīng)該大于等于1')

elif dof == 1:

cv = chi2.isf(alpha * 0.5, dof)

else:

cv = chi2.isf(alpha * 0.5, dof-1)

if CMIN > cv:

re = 1 # 表示拒絕原假設(shè)

else:

re = 0 # 表示接受原假設(shè)

return CMIN, p, dof, re, prediction_value

# 測試

alpha1 = 0.005 # 置信度,常用0.01,0.05,用于確定拒絕域的臨界值

data1 = np.array([[43, 49,22,114], [8, 2,5,15],[47,44,30,121]])

data2 = np.array([[43, 49,22], [8, 2,5],[47,44,30]]) # # 插入數(shù)據(jù)(用于測試)

CMIN, p, freedom, re, prediction_value = chi2_independence(alpha1, data2)

print("卡方值:\n",CMIN)

print("P值:\n",p)

print("自由度:\n",freedom)

print("判斷變量:\n",re)

print("原數(shù)據(jù)數(shù)組同維度的理論預(yù)測值(預(yù)測結(jié)果):\n",prediction_value)

1.png

卡方擬合性檢驗?

卡方檢驗?zāi)軝z驗單個多項分類名義型變量各分類間的實際觀測次數(shù)與理論次數(shù)之間是否一致的問題,這里的觀測次數(shù)是根據(jù)樣本數(shù)據(jù)得多的實計數(shù),理論次數(shù)則是根據(jù)理論或經(jīng)驗得到的期望次數(shù)。

這一類檢驗稱為擬合性檢驗。 其自由度通常為分類數(shù)減去1,理論次數(shù)通常根據(jù)某種經(jīng)驗或理論。

總而言之,卡方擬合度檢驗用于判斷不同類型結(jié)果的比例分布相對于一個期望分布的擬合程度。

卡方擬合性檢驗適用于變量為類別型變量的情況。

# 導(dǎo)如相關(guān)庫

import numpy as np

from scipy.stats import chisquare

from scipy.stats import chi2 # 卡方分布

(1)假設(shè)檢驗重要知識

H0: 類別A與B的比例沒有差異;

H1:類別A與B的比例有差異;

若卡方值大于臨界值,拒絕原假設(shè),表示A與B不相互獨立,A與B相關(guān);

函數(shù)中re返回為1表示拒絕原假設(shè),0表示接受原假設(shè);

(2)參數(shù)說明

【輸入】:

參數(shù)

描述

alpha

置信度,用來確定臨界值;

data

數(shù)據(jù),使用numpy.array數(shù)組;

sp

表示輸入數(shù)組的形狀參數(shù),默認(rèn)為一維;

【輸出】:

參數(shù)

描述

chis

卡方值,也就是統(tǒng)計量;

p_value

P值(統(tǒng)計學(xué)名詞),與置信度對比,也可進行假設(shè)檢驗,P值小于置信度,即可拒絕原假設(shè);

critical_value

拒絕域臨界值;

freedom

自由度;

result

判斷變量,1表示拒絕原假設(shè),0表示接受原假設(shè);

(3)應(yīng)用場景

要求樣本含量應(yīng)大于40,且每個格子中的理論頻數(shù)最好大于5;

def chi2_fitting(data, alpha, sp=None):

chis,p_value = chisquare(data, axis=sp)

i, freedom = data.shape # freedom為自由度

if freedom == 0:

print('自由度應(yīng)該大于等于1')

elif freedom == 1:

critical_value = chi2.isf(alpha * 0.5, freedom)

else:

critical_value = chi2.isf(alpha * 0.5, freedom - 1)

if chis > critical_value:

result = 1 # 表示拒絕原假設(shè)

else:

result = 0 # 表示接受原假設(shè)

return chis, p_value, critical_value, freedom-1, result

# 擬合測試

data1 = np.array([[43, 49,22], [8, 2,5],[47,44,30]]) # 插入數(shù)據(jù)

alpha1 = 0.05

chis1, p_value1, critical_value, dof, result1 = chi2_fitting(data1, alpha1)

print("卡方值: ",chis1)

print("P值: ",p_value1)

print("拒絕域臨界值:",critical_value)

print("自由度: ",dof)

print("判斷變量(1表示否定原假設(shè),0表示肯定原假設(shè)): ",result1)

2.png

導(dǎo)入房價數(shù)據(jù)集

使用卡方獨立性檢驗和卡方擬合性檢驗進行相關(guān)預(yù)測。

### 導(dǎo)入數(shù)據(jù)集

# 讀取房價數(shù)據(jù)

import pandas as pd

def load_housing_data():

return pd.read_csv('./housing.csv',encoding='gbk')

housing = load_housing_data()

# # 查看前五行數(shù)據(jù)

housing.head()

housing.describe() ## 數(shù)據(jù)集描述;

## 居民收入: income

income = housing['median_income']

income

## 房屋價值:house_value

## 房屋年齡:housing_median_age

## 房屋面積 :total_rooms

house_value = housing['median_house_value']

house_value

housing_median_age = housing['housing_median_age']

housing_median_age

total_rooms = housing['total_rooms']

total_rooms

(1) 探究收入與房價的關(guān)系

# 數(shù)據(jù): 探究收入與房價的關(guān)系

data2 = np.array([income,house_value]) # 數(shù)據(jù): 探究收入與房價的關(guān)系

CMIN, p, freedom, re, prediction_value = chi2_independence(alpha1, data2)

print("卡方值: ",CMIN)

print("P 值: ",p)

print("自由度: ",freedom) #

print("判斷變量(1表示否定原假設(shè),0表示肯定原假設(shè)): \n",re)

print("原數(shù)據(jù)數(shù)組同維度的理論預(yù)測值(預(yù)測結(jié)果):\n",prediction_value)

print("------------分隔線----------------")

print("【卡方擬合性檢驗】:")

alpha1 = 0.05

chis1, p_value1, critical_value, dof, result1 = chi2_fitting(data2, alpha1)

print("卡方值: ",chis1)

print("P值: ",p_value1)

print("拒絕域臨界值:",critical_value)

print("自由度: ",dof)

print("判斷變量(1表示否定原假設(shè),0表示肯定原假設(shè)): ",result1)

3.png

探究房齡與房價的關(guān)系

# 數(shù)據(jù): 探究房齡與房價的關(guān)系

data2 = np.array([housing_median_age,house_value]) # 數(shù)據(jù): 探究收入與房價的關(guān)系

CMIN, p, freedom, re, prediction_value = chi2_independence(alpha1, data2)

print("卡方值: ",CMIN)

print("P 值: ",p)

print("自由度: ",freedom) #

print("判斷變量(1表示否定原假設(shè),0表示肯定原假設(shè)): \n",re)

print("原數(shù)據(jù)數(shù)組同維度的理論預(yù)測值(預(yù)測結(jié)果):\n",prediction_value)

print("------------分隔線----------------")

print("【卡方擬合性檢驗】:")

alpha1 = 0.05

chis1, p_value1, critical_value, dof, result1 = chi2_fitting(data2, alpha1)

print("卡方值: ",chis1)

print("P值: ",p_value1)

print("拒絕域臨界值:",critical_value)

print("自由度: ",dof)

print("判斷變量(1表示否定原假設(shè),0表示肯定原假設(shè)): ",result1)

4.png

探究房屋面積與房價的關(guān)系

# 數(shù)據(jù): 探究房屋面積與房價的關(guān)系

data2 = np.array([total_rooms,house_value]) # 數(shù)據(jù): 探究收入與房價的關(guān)系

CMIN, p, freedom, re, prediction_value = chi2_independence(alpha1, data2)

print("卡方值: ",CMIN)

print("P 值: ",p)

print("自由度: ",freedom) #

print("判斷變量(1表示否定原假設(shè),0表示肯定原假設(shè)): \n",re)

print("原數(shù)據(jù)數(shù)組同維度的理論預(yù)測值(預(yù)測結(jié)果):\n",prediction_value)

print("------------分隔線----------------")

print("【卡方擬合性檢驗】:")

alpha1 = 0.05

chis1, p_value1, critical_value, dof, result1 = chi2_fitting(data2, alpha1)

print("卡方值: ",chis1)

print("P值: ",p_value1)

print("拒絕域臨界值:",critical_value)

print("自由度: ",dof)

print("判斷變量(1表示否定原假設(shè),0表示肯定原假設(shè)): ",result1)

5.png

【拓展】

擬合優(yōu)度檢驗

獨立性檢驗

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的卡方 python_卡方优度检测 (Python 实现) --基于jupyter的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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