python 广义似然比_python利用似然比进行参数检验

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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值