python利用似然比進行引數檢驗

2021-10-06 13:34:38 字數 1178 閱讀 7596

在用sklearn進行邏輯回歸的時候,如果想要檢視變數的p值是否足夠小,那麼就只能自己計算p值。似然比是邏輯回歸引數檢驗的一種方法

假設我們的邏輯回歸有n個特徵,需要對其中的x1特徵對於的引數w1做引數檢驗

1、計算包含全部特徵的**概率似然估計l0

2、扣除x1特徵進行重新擬合邏輯回歸,計算新的邏輯回歸模型的似然估計l1

3、計算2*ln(l0 / l1)服從自由度為1的卡方分布

import copy

def likelihood(pred,y):

if not isinstance(y,list):

yt = y.tolist()

else:

yt = copy.copy(y)

ss = 0

for i in range(len(yt)):

ss += np.log(pred[i][yt[i]])

return ss

from scipy.stats import chi2

# lr為包含所有特徵的模型,x_train為包含所有特徵自變數,y_train為包含所有特徵的因變數

pred = lr.predict_proba(x_train)

total_likelihood = likelihood(pred,y_train)

for i in range(len(x_cols)):

# 統計所有特徵的pvalue

# 計算扣除col的**值

left_col = x_cols[:i] + x_cols[i+1:]

left_train_x = x_train.loc[:,left_col]

left_lr =  logisticregression(penalty='l2', c=0.9, n_jobs=-1)

left_lr.fit(left_train_x, y_train)

left_pred = left_lr.predict_proba(left_train_x)

left_likelihood = likelihood(left_pred,y_train)

ch2_value = (total_likelihood  - left_likelihood) * 2

pvalue = chi2.sf(ch2_value, 1)

print(x_cols[i],pvalue)

引數估計 矩估計和極大似然估計概述

原文 引數估計 引數估計 是根據從總體中抽取的樣本估計總體分布中包含的未知引數的方法。它是統計推斷的一種基本形式,是數理統計學的乙個重要分支,分為點估計和區間估計兩部分。點估計 依據樣本估計總體分布中所含的未知引數或未知引數的函式。區間估計 置信區間的估計 依據抽取的樣本,根據一定的正確度與精確度的...

小白學AI 線性回歸與邏輯回歸(似然引數估計)

文章 機器學習煉丹術 線性回歸解決的是回歸問題,邏輯回歸相當於是線性回歸的基礎上,來解決分類問題。線性回歸 linear regression 是什麼相比不用多說了。格式是這個樣子的 f x sum i b 而邏輯回歸 logistic regression 的樣子呢?f x sigma sum i...

利用python進行T檢驗

引入所需的包 from scipy import stats import numpy as np注 ttest 1samp,ttest ind,ttest rel均進行雙側檢驗 h0 0 h1 0 ttest 1samp官方文件 生成50行x2列的資料 np.random seed 7654567...