python統計分析——廣義線性模型的評估

參考資料:用python動手學統計學

? ? ? ? 殘差是表現數據與模型不契合的程度的重要指標。

1、導入庫

# 導入庫
# 用于數值計算的庫
import numpy as np
import pandas as pd
import scipy as sp
from scipy import stats
# 導入繪圖的庫
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
# 用于估計統計模型的庫
import statsmodels.formula.api as smf
import statsmodels.api as sm

2、數據準備

# 讀取數據
test_result=pd.read_csv(r"文件路徑")
# 擬合模型
mod_glm=smf.glm('result~hours',data=test_result,family=sm.families.Binomial()).fit()

3、皮爾遜殘差

二項式的皮爾遜殘差的計算公式如下:

Pearson\, residuals=\frac{y-N\hat{p}}{\sqrt{N \hat{p}(1-\hat{p})}}

其中,y為響應變量(二值隨機變量,即考試合格情況),N為試驗次數,\hat{p}為估計的成功概率(由mod_glm.predict()得到的預測值)。

對于每個預測結果,試驗次數都是1,所以皮爾遜殘差如下:

Pearson\, residuals=\frac{y-N\hat{p}}{\sqrt{N \hat{p}(1-\hat{p})}}

4、皮爾遜殘差的含義

????????皮爾遜殘差的分母中的N\hat{p}(1-\hat{p})就是二項分布的方差,它的平方根就是二項分布的標準差。y-\hat{p}為殘差。殘差除以分布的標準差,得到的就是皮爾遜殘差。

? ? ? ? 假設N不變,那么當p=0.5時,二項分布的方差Np(1-p)最大。當合格與不合格各占一半時,數據非常分散,此時預測值與實際值之間的差距看起來反而更小(易于接受)。當p=0.9時,預測的結果是基本合格,方差較小,此時預測值與實際值之間的差距看起來反而更大(難以接受)。這就是皮爾遜殘差的含義。

? ? ? ? 皮爾遜殘差的平方和叫作皮爾遜卡方統計量。是模型契合度的指標。

5、計算皮爾遜殘差

????????按計算公式的計算代碼如下:

# 預測的成功概率
pred=mod_glm.predict()
# 響應變量(合格情況)
y=test_result.result
# 皮爾遜殘差
pearson_resid=(y-pred)/np.sqrt(pred*(1-pred))
pearson_resid

? ? ? ? 從擬合的模型中直接獲取皮爾遜殘差

mod_glm.resid_pearson

結果如下:

? ? ? ? 皮爾遜殘差的平方和即為皮爾遜卡方統計量。

# 方法一
np.sum(mod_glm.resid_pearson**2)
# 方法二
mod_glm.pearson_chi2

6、模型偏差

????????模型偏差(deviance)是評估模型契合度的指標。模型偏差越大,契合度越差。

? ? ? ? 模型偏差用似然的方式表現了殘差平方和,最大似然法所得的結果等于使得模型偏差最小的參數估計的結果。

? ? ? ? 模型偏差的含義就是廣義線性模型中的殘差平方和。對兩個模型偏差的差值進行檢驗的含義和方差分析相同。按模型偏差的定義,兩個模型偏差的差值近似卡方分布。

????????模型偏差的差值檢驗也叫做似然比檢驗。

????????偏差殘差的平方和就是模型偏差。偏差殘差計算公式相對比較復雜,直接從擬合的模型中獲取即可如下:

# 偏差殘差
mod_glm.resid_deviance
# 模型偏差
np.sum(mod_glm.resid_deviance**2)

? ? ? ? 當然和可以模型的summary結果中直接獲取模型偏差。

mod_glm.summary().tables[0]

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

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

相關文章

mybatis中if的test如何判斷雙等號(==)

我們在寫mybatis.xml時往往會寫!&#xff0c;如&#xff1a; <if test"validType ! null and validType ! "> </if>當時如何判斷等于某一個值呢&#xff0c;如下將test的雙引號改為單引號&#xff0c;值用雙引號&#xff1a; <if testvalidType &q…

面經 | Java創建線程的三種方式

利用JUC包創建線程的三種方式&#xff1a; 通過繼承Thread類創建線程類實現Runnable接口創建線程類通過Callable和Future接口創建線程 繼承Thread類創建線程 class Thread1 extends Thread {Overridepublic void run() {System.out.println("啟動線程1");} }實現R…

第七篇:微信小程序的跳轉頁面

前提&#xff1a;建議還沒學HTML、CSS、JavaScript、JSON、vue、Ajax的兄弟姐妹們&#xff0c;先去把這些基礎補好過一遍&#xff0c;不然不好理解微信小程序 前面這一篇已經講過一次<navigator>跳轉頁面的用法了&#xff0c;今天詳細講解一下 回顧&#xff1a; 小程序…

Lesson 1 introduction of machine /deep learning

聽課&#xff08;李宏毅老師的&#xff09;筆記&#xff0c;方便梳理框架&#xff0c;以作復習之用。本節課主要介紹了什么是機器學習&#xff0c;機器學習的類型和流程&#xff0c;用一個現實中的例子詳細地展示了整個工作流程。 1. 機器學習的定義 2. 不同的函數類型 預測數…

MyBatis 學習(四)之 SQL 映射文件

目錄 1 SQL 映射文件介紹 2 select 元素 3 insert 元素 4 update 和 delete 元素 5 sql 元素 6 parameterType 元素 7 resultType 元素 8 resultMap 元素&#xff08;重要&#xff09; 9 參考文檔 1 SQL 映射文件介紹 映射器是 MyBatis 中最復雜并且是最重要的…

【軟考中級】系統集成項目管理工程師—案例分析基礎

軟考中級——系統集成項目管理工程師 案例分析基礎 考試時間及要求 中級考試案例分析5道題&#xff0c;時間150分鐘&#xff0c;時間充裕。&#xff08;高級考試案例分析3道題【高級一般第一題都是找錯、第二題改錯、第三題默寫】&#xff0c;時間90分鐘、平均每道題花30分鐘…

Vue(3.3.4)+three.js(0.161.0)實現3D可視化地圖

一.前言 由于最近在學習three.js,所以觀摩了一下掘金&#xff0c;csdn等網站上的有關這部分的內容&#xff0c;剛好看到一個帶你入門three.js——從0到1實現一個3d可視化地圖 - 掘金 (juejin.cn)&#xff0c;再加上我的專業屬性是地理相關&#xff0c;可以說是專業對口&#xf…

Java使用ffmpeg指令實現音頻格式轉換

針對Linux環境下如何安裝ffmpeg請看上一篇文章Linux上搭建并使用ffmpeg&#xff08;Java&#xff09;-CSDN博客 public static void voiceChangeFormat(String localPath, String targetPath) {List<String> command new ArrayList<>();command.add("ffmpeg…

存儲xss實現獲取cookie(本地實戰)

實戰更能體驗收獲&#xff01;&#xff01;&#xff01; 環境準備&#xff1a; 1.phpstudy 2.dvwa靶場 實戰 首先我們在phpstudy指定的localhost網站目錄下編寫一個xss.php文件&#xff0c;內容如下&#xff1a; <?php $cookie $_GET[cookie]; $ip getenv (REMOTE_…

electron+vue3全家桶+vite項目搭建【28】封裝窗口工具類【2】窗口組,維護窗口關系

文章目錄 引入實現效果思路主進程模塊渲染進程模塊測試效果 引入 demo項目地址 窗口工具類系列文章&#xff1a; 封裝窗口工具類【1】雛形 我們思考一下窗口間的關系&#xff0c;窗口創建和銷毀的一些動作&#xff0c;例如父子窗口&#xff0c;窗口組合等等&#xff0c;還有…

【前端素材】推薦優質在線高端家具電商網頁Classi平臺模板(附源碼)

一、需求分析 1、系統定義 在線高端家具商城是一個專門銷售高端家具產品的電子商務平臺&#xff0c;旨在為消費者提供購買高品質家具的便捷渠道。 2、功能需求 在線高端家具商城是一個專門銷售高端家具產品的電子商務平臺&#xff0c;旨在為消費者提供購買高品質家具的便捷…

Maven高級(黑馬學習筆記)

Maven 是一款構建和管理 Java 項目的工具。 分模塊設計與開發 介紹 所謂分模塊設計&#xff0c;顧名思義指的就是我們在設計一個 Java 項目的時候&#xff0c;將一個 Java 項目拆分成多個模塊進行開發。 1). 未分模塊設計的問題 如果項目不分模塊&#xff0c;也就意味著所有…

node.js和electron安裝

文章目錄 一、node.js安裝1.node.js下載安裝2.設置鏡像 二、其它問題1.文件夾創建錯誤2.electron安裝錯誤 一、node.js安裝 1.node.js下載安裝 參考B站視頻node.js安裝&#xff0c;沒有按視頻中設置鏡像 2.設置鏡像 參考&#xff1a;https://npmmirror.com/ npm config se…

十八:Java8新特性

文章目錄 01、Java8概述02、Java8新特性的好處03、并行流與串行流04、Lambda表達式4.1、Lambda表達式使用舉例4.2、Lambda表達式語法的使用14.3、Lambda表達式語法的使用2 05、函數式(Functional)接口5.1、函數式接口的介紹5.2、Java內置的函數式接口介紹及使用舉例 06、方法引…

Hgame題解(第二星期)

Hgame題解&#xff08;第二星期&#xff09; Web Select More Courses 打開靶機發現是一個登陸頁面&#xff0c;根據題目提示下載弱密碼字典&#xff0c;通過BP爆破獲得用戶密碼為qwert123 登陸后進入下一個頁面&#xff0c;由于學分已滿無法選課&#xff0c;所以需要先進行…

回歸預測 | Matlab實現BiTCN基于雙向時間卷積網絡的數據回歸預測

回歸預測 | Matlab實現BiTCN基于雙向時間卷積網絡的數據回歸預測 目錄 回歸預測 | Matlab實現BiTCN基于雙向時間卷積網絡的數據回歸預測效果一覽基本介紹程序設計參考資料 效果一覽 基本介紹 1.Matlab實現BiTCN基于雙向時間卷積網絡的數據回歸預測&#xff08;完整源碼和數據&a…

推薦瑩瑩API管理系統PHP源碼

瑩瑩API管理系統PHP源碼附帶兩套模板,PHP版本要求為5.6至8.0之間&#xff0c;已測試通過的版本為7.4。 需要安裝PHPSG11加密擴展。 已測試&#xff1a;寶塔/主機親測成功搭建&#xff01; 演示地 址 &#xff1a; runruncode.com/php/19698.html 安裝說明&#xff08;適用于寶…

深入理解c指針(六)

目錄 九、函數指針數組 1、字符指針變量 2、數組指針變量 3、二維數組傳參的本質 4、函數指針變量 4.1 分析《C陷阱和缺陷》中的兩端代碼 4.2 typedef關鍵字 5、函數指針數組 6、函數指針數組的用途---轉移表 九、函數指針數組 1、字符指針變量 在指針的類型中我們知道…

教你如何判斷Java代碼中異步操作是否完成

在許多應用程序中&#xff0c;我們經常使用異步操作來提高性能和響應度。在Java中&#xff0c;我們可以使用多線程或者異步任務來執行耗時操作&#xff0c;并且在后臺處理過程完成后獲取結果。但是&#xff0c;在使用異步操作時&#xff0c;我們通常需要知道異步任務何時完成&a…

【C++精簡版回顧】15.繼承派生

1.繼承派生的區別 繼承&#xff1a;子繼父業&#xff0c;就是子類完全繼承父類的全部內容 派生&#xff1a;子類在父類的基礎上發展 2.繼承方式 1.public繼承為原樣繼承 2.protected繼承會把public繼承改為protect繼承 3.private繼承會把public&#xff0c;protected繼承改為pr…