機器學習 - 比較檢驗

列聯表

列聯表(Contingency Table)是一種用于顯示兩個或多個分類變量之間關系的表格。它廣泛應用于統計學中的分類數據分析,尤其在獨立性檢驗和關聯性分析時。列聯表的每個單元格展示了相應分類變量組合的頻數(或比例)。

列聯表的結構

列聯表通常呈現為矩陣形式,行和列表示不同的分類變量。例如,一個簡單的2x2列聯表如下:

變量B的類別1變量B的類別2
變量A的類別1ab
變量A的類別2cd

其中:

  • a, b, c, d分別表示變量A的不同類別與變量B的不同類別組合的頻數。

列聯表的應用

  1. 卡方檢驗(Chi-Square Test):用于檢驗兩個分類變量之間是否存在統計顯著性的關聯。
  2. Fisher精確檢驗(Fisher’s Exact Test):當樣本量較小時,Fisher精確檢驗比卡方檢驗更合適。
  3. McNemar檢驗:用于配對樣本的二分類數據,常用于前后對比實驗中的數據分析。
  4. 獨立性檢驗:通過分析列聯表,確定兩個變量是否相互獨立。

示例

假設我們有一個關于是否喜歡某種產品的調查,調查結果包括性別和是否喜歡產品兩個變量。可以用一個2x2列聯表來表示:

性別 \ 喜歡產品
男性3020
女性2525

這個列聯表展示了男性和女性分別喜歡和不喜歡產品的頻數。

總結

列聯表是一種顯示兩個或多個分類變量之間關系的表格。通過分析列聯表中的頻數分布,可以了解變量之間的關聯性,并進行統計檢驗。

交叉驗證t檢驗

交叉驗證是一種評估機器學習模型性能的方法。它通過將數據集分成若干個子集,反復訓練和驗證模型來評估其性能穩定性和預測能力。常用的交叉驗證方法包括k折交叉驗證和留一法。

t檢驗是一種統計方法,用于比較兩組數據的均值是否存在顯著差異。常見的t檢驗類型包括:

  • 獨立樣本t檢驗:用于比較兩個獨立樣本的均值。
  • 配對樣本t檢驗:用于比較同一組樣本在不同條件下的均值。

交叉驗證t檢驗結合交叉驗證與t檢驗,通過交叉驗證評估模型性能,并使用t檢驗判斷性能差異是否顯著。交叉驗證t檢驗并不是基于列聯表的,它側重于連續數據的均值比較。

McNemar檢驗

McNemar檢驗是一種非參數統計檢驗,用于比較配對樣本的二分類數據,常用于分析前后變化的數據。例如,評估某種治療方法前后患者癥狀的改善情況。McNemar檢驗使用2x2列聯表,其中包含兩個分類變量的頻數分布:

事件B發生事件B不發生
事件A發生ab
事件A不發生cd

McNemar檢驗通過比較b和c的差異來判斷兩個分類變量是否具有顯著變化。它確實是基于列聯表的。

實例與公式

卡方檢驗

公式
[ \chi^2 = \sum \frac{(O_i - E_i)^2}{E_i} ]

其中,( O_i ) 是觀察頻數,( E_i ) 是期望頻數。

示例

假設我們有一個列聯表如下:

喜歡不喜歡
男性3020
女性2525

我們可以使用卡方檢驗來判斷性別和是否喜歡產品之間是否存在關聯。

import scipy.stats as stats# 構建列聯表
data = [[30, 20], [25, 25]]# 進行卡方檢驗
chi2, p, dof, expected = stats.chi2_contingency(data)print(f"Chi2: {chi2}, p-value: {p}")
McNemar檢驗

公式
[ \chi^2 = \frac{(b - c)^2}{b + c} ]

示例

假設我們有如下2x2列聯表用于McNemar檢驗:

后者陽性后者陰性
前者陽性105
前者陰性1520

我們可以使用McNemar檢驗來分析前后情況的變化。

import statsmodels.api as sm# 構建列聯表
data = [[10, 5], [15, 20]]# 進行McNemar檢驗
result = sm.stats.mcnemar(data)print(f"Chi2: {result.statistic}, p-value: {result.pvalue}")

以上代碼展示了如何使用Python進行卡方檢驗和McNemar檢驗的具體操作。通過這些實例和公式,可以更好地理解這些檢驗方法的應用和實現。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/43659.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/43659.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/43659.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【2024_CUMCM】LINGO入門+動態規劃

目錄 什么是動態規劃 怎么使用動態規劃? 例題:最短路線問題 2020b-問題一 穩定性分析 靈敏度分析 什么是動態規劃 基本想法:將原問題轉換為一系列相互聯系的子問題,然后通過逐層遞推求得最后的解 基本思想:解決…

X12端口配置指南:ISA ID、測試指示符與997

通過知行之橋EDI系統實現X12 & 標準XML之間的格式轉換時,需要完善交換頭ISA ID及其限定符、測試標識符以及997的相關配置。 在X12文件中有兩組EDI ID對,分別是發送方 ID 限定符 及發送方ID ,接收方 ID 限定符及接收方ID。 比如&#xf…

STM32Cubemx配置生成 Keil AC6支持代碼

文章目錄 一、前言二、AC 6配置2.1 ARM ComPiler 選擇AC62.2 AC6 UTF-8的編譯命令會報錯 三、STM32Cubemx 配置3.1 找到stm32cubemx的模板位置3.2 替換文件內核文件3.3 修改 cmsis_os.c文件3.4 修改本地 四、編譯對比 一、前言 使用keil ARM compiler V5的時候,編譯…

RK3568 buildroot 使用dropbear實現ssh遠程的方法

RK3568 buildroot 使用dropbear實現ssh遠程的方法 文章目錄 RK3568 buildroot 使用dropbear實現ssh遠程的方法前言一、創建S99dropbear.sh腳本二、創建sshd_config三、添加root賬戶密碼到系統驗證登錄前言 rk3568 linux 的sdk中,buildroot已經集成了dropbear的所需的lib庫環境…

交替打印-GO

1 兩個channel 版本 package mainimport ("fmt""sync")var wg sync.WaitGroup var c1 chan int var c2 chan intfunc A(){defer wg.Done()for i:0;i<10;i {<-c1fmt.Println(2*i)c2<-1 //牽引協程} } func B(){defer wg.Done()for i:0…

Java內存區域與內存溢出異常(自動內存管理)

序言&#xff1a;Java與C之間有一堵由內存動態分配和垃圾收集技術所圍成的高墻&#xff0c;墻外面的人想進去&#xff0c;墻里面的人卻想出來。 1.1概述 對于從事C、C程序開發的開發人員來說&#xff0c;在內存管理領域&#xff0c;他們既是擁有最高權力的“皇帝”&#xff0c…

使用OpenCV在按下Enter鍵時截圖并保存到指定文件夾

使用OpenCV在按下Enter鍵時截圖并保存到指定文件夾 在這篇博客中&#xff0c;我們將介紹如何使用OpenCV庫來實現一個簡單的功能&#xff1a;在按下Enter鍵時從攝像頭截圖并保存到指定的文件夾中。這個功能可以用于各種應用&#xff0c;例如監控系統、視頻捕捉等。 前置條件 …

在FPGA程序中Handshake(握手)和Register(寄存器)區別

在FPGA程序中&#xff0c;Handshake&#xff08;握手&#xff09;和Register&#xff08;寄存器&#xff09;是兩種不同的通信和數據傳輸機制。它們各有特點和適用場景。以下是它們的區別和應用場景的詳細解釋&#xff1a; Register&#xff08;寄存器&#xff09; 特點&#…

SQLServer用戶們,你們攤上大事了!

最近一段時間&#xff0c;我們經常會收到了許多用戶的咨詢&#xff0c;問我們何時能納管SQLServer&#xff1f;耐不住小伙伴們的猛烈催促及熱切期待&#xff0c;本不想納管SQLServer的研發團隊也抓緊將這項需求提上日程。并在DBdoctor v3.2.2版本中成功實現了對SQLServer的納管…

班級錄取查詢系統如何制作

在教育的長河中&#xff0c;我們每位老師都曾面臨過這樣一個問題&#xff1a;如何高效、準確地完成班級錄取查詢的任務&#xff1f;記得在以往&#xff0c;每當新學期伊始&#xff0c;我們不得不手忙腳亂地整理學生名單&#xff0c;然后逐一通知他們所在的班級。這個過程不僅耗…

谷歌Google Ads新賬號推廣方案

第一階段重點 推廣地區優化&#xff1a;分析投放國家的數據&#xff0c;剔除高花費低轉化的國家&#xff0c;將預算重新分配給高性價比的國家&#xff0c;從而降低詢盤成本并增加詢盤數量。關鍵詞優化&#xff1a;識別并暫停或降價高成本低回報的關鍵詞&#xff0c;減少詢盤成本…

《mysql篇》--索引事務

索引 索引的介紹 索引是幫助MySQL高效獲取數據的數據結構&#xff0c;是一種特殊的文件&#xff0c;包含著對數據表里所有記錄的引用指針&#xff0c;因為索引本身也比較大&#xff0c;所以索引一般是存儲在磁盤上的&#xff0c;索引的種類有很多&#xff0c;不過如果沒有特殊…

[ios-h5]在ios系統瀏覽器中輸入框得到焦點時頁面自動放大

問題&#xff1a; 在ios系統瀏覽器中輸入框得到焦點時頁面自動放大。 解決&#xff1a; 添加meta標簽。 <meta name"apple-mobile-web-app-capable" content"yes" /> <meta name"viewport" content"widthdevice-width, initial-…

隱式類型轉換 算術轉換

目錄 整型提升 間接證明整型提升的代碼案例 算術轉換 整型提升 何為整型提升&#xff1a; C語言的整型算術運算總是至少以缺省&#xff08;默認&#xff09;整型類型的精度來進行的 為了獲得這個精度&#xff0c;表達式中的字符類型和短整型操作數在使用之前被轉換為普通整…

基于SpringBoot實現輕量級的動態定時任務調度

在使用SpringBoot框架進行開發時&#xff0c;一般都是通過Scheduled注解進行定時任務的開發&#xff1a; Component public class TestTask {Scheduled(cron"0/5 * * * * ? ") //每5秒執行一次public void execute(){SimpleDateFormat df new SimpleDateFormat(…

解決 NullReferenceException: Object reference not set to an instance of an object

在 Unity 中 利用 URDF Importer import UR5e_gripper 的 URDF file 時出現錯誤&#xff1a; NullReferenceException: Object reference not set to an instance of an object。 理論上是有個Object 是 Null&#xff0c;當我再次檢查URDF后仍覺得路徑沒有寫錯。 于是我 把Mesh…

軟件測試面試200問(含答案+文檔)

Part1 1、你的測試職業發展是什么&#xff1f; 測試經驗越多&#xff0c;測試能力越高。所以我的職業發展是需要時間積累的&#xff0c;一步步向著高級測試工程師奔去。而且我也有初步的職業規劃&#xff0c;前3年積累測試經驗&#xff0c;按如何做好測試工程師的要點去要求自…

spring的bean注冊

bean注冊 第三方jar包的類想添加到ioc中&#xff0c;加不了Component該怎么辦呢。 可以使用Bean和Import引入jar包&#xff0c;可以使用maven安裝到本地倉庫。 修改bean的名字&#xff1a;Bean("aaa")使用ioc的已經存在的bean對象&#xff0c;如Country&#xff1a;p…

in-flight 要維持在 bdp 附近嗎

試圖在 bbr 和 aimd 之間保持公平是徒勞的&#xff0c;因為它們沒有共識。bbr 認為 in-flight 超過 bdp 是擁塞&#xff0c;而 aimd 認為 buffer 溢出才擁塞&#xff0c;兼顧彼此&#xff0c;就是 bbr3&#xff0c;aimd 不會往左&#xff0c;bbr 就往右。 vegas 同理&#xff…

自定義@AnonymousAccess注解

一.目的&#xff1a; 自定義AnonymousAccess注解&#xff0c;可以直接在controller上添加該注解使請求繞過權限驗證進行匿名訪問&#xff0c;便于快速調用調試以及部分不需要進行安全驗證的接口。而不是每次都需要去SecurityConfig文件中進行修改。 二.流程&#xff1a; 三.實…