在用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...