关于logistic regression小议

本文深入探讨了Logistic回归原理及其应用,重点介绍了如何利用连接函数建立预测变量与响应变量之间的关系,并通过最大似然估计进行参数求解。此外,还讨论了在R语言中的实现方法及多项分布情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分布族family和连接函数log

logistic regression 一般用在用一些预测变量预测二元值变量,是回归与分类的结合体,然而我们不能直接用连续值的回归方法来预测一个离散值 Y(0,1) ,所以我们就转而考虑利用离散值的概率分布的期望来代替:

  • 首先我们就要先考虑离散值的概率分布,一般考虑为二项分布Binomial(2),我们由 Y 的概率分布的期望可以得到分布的一个参数p=E(Y)

    因为0-1分布的期望就等于成功概率p

  • 所以实际上我们只要估计这样的参数p就可以了,一般利用 MLE , 但是由于考虑到要把预测变量的影响加进去,我们就必须建立一个从期望 E(Y) 到预测变量 z⃗  的一个线性关系,这个时候连接函数就派上用场了

    logit(p(zi))=β⃗ zi 1

  • 这样给定一组 Y 值我们就可以利用MLE得到关于 p 的似然函数,而p又由连接函数得到与 zi 的关系,这样我们就得到关于 β⃗  的似然函数(已知 Yi(i=1n) zi(i=1n)

    L(p)=ni=1pYi(1p)Yi
    L(β⃗ )=ni=1exp(Yi(β⃗ zi))ni=1(1+exp(β⃗ zi))

  • 这样我们就得到了关于 β⃗  MLE 估计

R实现

######family是响应变量的概率分布,()内是连接函数
fit2 <- glm (affairs ~ age + yearsmarried + religiousness + rating, data = Affairs,family = binomial (logit))
summary (fit2)

###############################################################
Coefficients:
              Estimate Std. Error z value Pr(>|z|)    
(Intercept)    1.93083    0.61032   3.164 0.001558 ** 
age           -0.03527    0.01736  -2.032 0.042127 *  
yearsmarried   0.10062    0.02921   3.445 0.000571 ***
religiousness -0.32902    0.08945  -3.678 0.000235 ***
rating        -0.46136    0.08884  -5.193 2.06e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

####################指数化之后,我们可以更方便的指出预测变量和响应变量之间的定量关系,当rating加一,则odds*0.63;若rating 加10,则odds*0.63^10
 exp(coefficients(fit2))
  (Intercept)           age  yearsmarried religiousness        rating 
    6.8952321     0.9653437     1.1058594     0.7196258     0.6304248 

################预测,观察type不同得到预测值不同
test <-data.frame(rating = 1:5, age = mean(age),yearsmarried = mean(yearsmarried), religiousness = mean (religiousness))
a <-predict(fit2, newdata = test)
b <-predict(fit2, newdata = test,type = "response")
exp(a)/(1+exp(a))
b
#####
> exp(a)/(1+exp(a))
        1         2         3         4         5 
0.5302296 0.4157377 0.3096712 0.2204547 0.1513079 
> b
        1         2         3         4         5 
0.5302296 0.4157377 0.3096712 0.2204547 0.1513079 
  • 所以在加了response 类型之后的预测值是直接给出了 p ,而没加response则是给出了logit(p)

Poisson Regression 中,我们使用的是 log(λ)=β⃗ z⃗ 
, 其中 λ Poisson Regression 的期望,而不是用odds


补充

如果响应变量取值不是二元而是多元,比如多项分布,有 n 个参数p1,p2,,pn(nk=1pk=1),那么连接参数和预测变量 {xn} 的就是一个方程组了
log(pk1pk2)=β⃗ xk1
log(pk2pk3)=β⃗ xk2

log(pknpkn1)=β⃗ xkn1
nk=1pk=1
这样的 n 个方程构成的方程组就可以把n个参数表示成 {xn} p1,p2,,pn 的形式,再根据多项分布的密度公式
f(x1=m1,x2=m2,,xn=mn)=Mnk=1mk!nk=1pmkk (M=nk=1mk)


  1. 这里为什么会用log(odds)来连接 p z⃗ 呢,就是因为 β⃗ z⃗  的取值是 (,) ,而通过这样的一个变换之后就可以把 p 的取值变成(0,1)了。同理,对于 Poisson Regression log(λ) (,) 变成 λ 的取值范围 (0,)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值