关于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,∞) ↩
相关文章推荐
- softmax回归
- 网易公开课讲义2 Classification and logistic regression 笔记
- 斯坦福吴恩达-cousera课程笔记-Logistic回归
- 【机器学习实战】logistics回归例程调试(2)
- 逻辑回归(Logistic Regression)
- logistic回归
- 逻辑回归
- 《机器学习实战》--Logistic回归
- Logistic回归 Python实现
- Google深度学习笔记 Logistic Classification
- Theano Logistic Regression
- 《机器学习实战》笔记之五——Logistic回归
- Logistic回归算法(梯度上升)
- Logistic回归(随机梯度上升)
- Logistic回归(改进的随机梯度上升)
- Logistic回归(实例)
- 史上最直白的logistic regression教程 之 二
- 史上最直白的logistic regression教程 之 三
- 史上最直白的logistic regression教程 之 四
- logistic转换成标准评分卡