- 在线时间
- 479 小时
- 最后登录
- 2026-4-13
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7789 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2922
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1171
- 主题
- 1186
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
# logistic回归4 S% j3 _ ?: O3 A7 [, K. |
实际上线性最小二乘回归和Logistic回归都是广义线性模型的一个特例。当随机变量Y服从高斯分布,那么得到的是线性最小二乘回归,当随机变量服从伯努利分布,则得到的是Logistic回归。
' h. l0 H) `) Y0 ]6 @- n' a$ G% i( R
( K& b L) X0 ~9 G; X* [R软件提供了拟合计算广义线性模型的函数glm(),其命令格式如下:fitted.model <- glm(formula, family=family.generator, data=data.frame) 其中,formula是拟合公式;family是分布族,即前面讲到的广义线性模型的种类,如正态分布、Poisson分布、二项分布等。
- [/ d% x9 h1 P# V* K2 n! E) o a o3 |% r( b
- o1 x8 t. Q) G6 z& I有了上面这些分布族和连接函数,我们就可以完成相应的广义线性模型的拟合问题。
* k" Z* g( ]" L; R( f4 ^. [
' r$ Z3 d/ U4 D1)正态分布 正态分布族的使用方法: fm <- glm(formula, family=gaussian(link=identity), data=data.frame) 其中,link=identity可以不写,因为正态分布的连接函数缺省值是恒等(identity)。事实上,整个参数family=gaussian也可以不写,因为分布族的缺省值就是正态分布。 注意:正态分布的广义线性模型实际上与线性模型是相同的,也就是 fm <- glm(formula, family=gaussian, data=data.frame) 与线性模型 fm <- lm(formula, data=data.frame)有完全相同的结果,但效率却低得多。4 K$ c' ?6 s0 J/ \4 J1 G* s
5 ?1 {4 ?2 |2 {
2)二项分布- c# Y( M9 @6 G3 B# B4 Y
. G3 |+ R) p8 s8 ?, R: K; B# Q
1 y4 l, z: f K$ `8 C# Tlogistic回归模型是一个非线性回归模型,自变量可以是连续变量,也可以是分类变量,或哑变量。但可以使用线性回归模型对参数进行估计,所以Logistic回归模型属于广义线性模型。
5 i% W7 a( \/ I* o a) a5 W8 ?- l6 K: b7 W. E! M2 h5 O2 q
Logistic回归模型的公式为: fm <- glm(formula, family=binomial(link=logit), data=data.frame) 其中,link=logit可以不写,因为logit是二项分布族连接函数的缺省状态。+ e- i( w" [8 w
实例一、Norell实验,高压电线对牲畜的影响- #1、加载数据
7 {: m; t7 _* d( \ - norell<-data.frame( x=0:5, n=rep(70,6), success=c(0,9,21,47,60,63) )
: n: L+ F( P- j1 J! h0 j# F0 | - norell$Ymat<-cbind(norell$success, norell$n-norell$success) 2 O7 s. Z Y3 f& r
-
' f @& X% ?4 a - #2、建模
0 [9 I L/ I% H8 B - glm.sol <- glm(Ymat ~ x, family=binomial, data=norell)1 H1 k\" Q2 u$ e& C3 d
-
( z0 F; S7 S M* n - #3、模型评估
. ]0 }* z8 S# i$ y3 g% h& m\" h - summary(glm.sol)
复制代码- ##
3 t; Y# C/ i. O- p; w2 H b - ## Call:
$ v, _5 h* {\" d% I6 ^# Y - ## glm(formula = Ymat ~ x, family = binomial, data = norell)* S$ w1 Y( J0 @4 d: Z/ j
- ## ( H1 Z* Z& `+ h |) V
- ## Deviance Residuals: * e# J3 d7 P, b: _5 C( t( d\" ?
- ## 1 2 3 4 5 6 % D* f0 d# X3 L# X D; F u- k
- ## -2.2507 0.3892 -0.1466 1.1080 0.3234 -1.6679
3 N, g% @. n, `- V! j - ## + A' N$ I/ G! _5 _! P0 |\" V
- ## Coefficients:, j5 X8 y\" M3 h# Q\" E
- ## Estimate Std. Error z value Pr(>|z|)
7 e$ c6 r) \3 f' }/ w - ## (Intercept) -3.3010 0.3238 -10.20 <2e-16 ***
7 O/ X1 o! u5 o/ m - ## x 1.2459 0.1119 11.13 <2e-16 ***% j0 f2 ~5 W& T
- ## ---1 O3 b9 @, B+ D6 D
- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+ [! d Y5 k/ D - ## : @\" ?! k$ g3 H/ }
- ## (Dispersion parameter for binomial family taken to be 1)
. I/ Q V' s. r8 m# h+ l8 }& B2 J- ~ - ## 1 m' W& ^! H2 s! ?' m& Q. O* N- }. u
- ## Null deviance: 250.4866 on 5 degrees of freedom
3 d& q& X2 l0 b5 p3 Y. M - ## Residual deviance: 9.3526 on 4 degrees of freedom* b) c! e Y# }7 I5 a# j; r1 l. C7 Z
- ## AIC: 34.0933 w0 R8 W; h\" ]: ^: p4 z* g3 }
- ##
( n3 ]& y# W$ I u* _ - ## Number of Fisher Scoring iterations: 4
复制代码- #与线性回归模型相同,在得到回归模型后,可以作预测:电流强度为3.5毫安时,有响应的牛的概率
+ ~+ E3 K7 p$ g' \ - / C0 p$ Z/ M/ |( c6 z n
- #4、预测) E: U1 V, ~! d
- pre <- predict(glm.sol, data.frame(x=3.5))' s* O0 `8 t% a5 Y\" K4 w; }
- (p <- exp(pre)/(1+exp(pre)))
复制代码- ## 1
1 P% F, Z0 U; v6 B - ## 0.742642
复制代码- #求有50%的牛响应时的电流强度:当P=0.5时,ln(P/(1-P))=0,所以X=-b0/b1, z4 ]) K( d! Q+ O
- glm.sol$coefficients
复制代码- ## (Intercept) x
# j {9 J, ?; | Q8 V7 @ - ## -3.301035 1.245937
复制代码- (X <- -glm.sol$coefficients[[1]]/glm.sol$coefficients[[2]])
复制代码- #5、画出响应比例与logistic回归曲线:
$ B! b3 `% Y9 K/ R8 A8 S - d <- seq(0, 5, length=100)+ x h. k# ~. M2 ]! `* d. P
- pre <- predict(glm.sol, data.frame(x=d))
) q% K) S: [6 ~* R2 w p6 @ - p <- exp(pre)/(1+exp(pre))
/ a& e6 N3 \, N# ?+ b - norell$y <- norell$success/norell$n5 I* G; a- }8 x8 J
- plot(norell$x, norell$y)1 [1 x8 C) K/ |7 y! G5 Z
- lines(d, p)
复制代码- #其中,d是给出曲线横坐标的点,pre是计算预测值,p是相应的预测概率。用plot函数和lines给出散点图和对应的预测曲线。
复制代码 1 i* z7 ]# g! g9 _/ X, ~
|
zan
|