您的位置:首页 > 其它

关于logistic regression小议

2016-06-15 11:59 267 查看

分布族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=1…n)和zi→(i=1…n))

L(p)=∏ni=1pYi⋅(1−p)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(pknpkn−1)=β⃗ ′⋅xkn−1→

∑nk=1pk=1

这样的n个方程构成的方程组就可以把n个参数表示成{xn}和p1,p2,⋯,pn的形式,再根据多项分布的密度公式

f(x1=m1,x2=m2,⋯,xn=mn)=M∏nk=1mk!∏nk=1pmkk (M=∑nk=1mk)
这里为什么会用log(odds)来连接p和z⃗ 呢,就是因为β⃗ ′⋅z⃗ 的取值是(−∞,∞),而通过这样的一个变换之后就可以把p的取值变成(0,1)了。同理,对于Poisson Regression,log(λ) 把(−∞,∞) 变成λ的取值范围(0,∞)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Logistic