# 第5章 广义与一般线性模型
# 广义线性模型函数glm()的用法
glm(formula, family=gaussian, data, ...)
# formula为公式,即为要拟合的模型
# family为分布族,包括正态分布(Guassian)、二项分布(Binomial)、
# 泊松分布(Poisson)和伽马分布(Gamma)
# data为可选择的数据框
# logistic实例
nk <- read.table("clipboard", header=T)
attach(nk)
y <- cbind(k, n-k)
# 构建逻辑回归模型
glm.logit <- glm(y~x, family=binomial)
# 模型参数检验
summary(glm.logit)
# 应用模型来进行预测
pre <- predict(glm.logit, data.frame(x=3.5))
p <- exp(pre)/(1+exp(pre))
x1 <- -glm.logit$coef[[1]]/glm.logit$coef[[2]]
# 画出logistic回归曲线
d <- seq(0,5,len=100); d
pre <- predict(glm.logit, data.frame(x=d))
p <- exp(pre)/(1+exp(pre))
y1 <- k/n
plot(x,y1); lines(d,p)
# 例5-2
d5.2 <- read.table("clipboard",header=T); attach(d5.2)
logit.glm <- glm(y~x1+x2+x3, family=binomial, data=d5.2)
summary(logit.glm)
logit.step <- step(logit.glm, direction="both")
summary(logit.step)
pre1 <- predict(logit.step, data.frame(x1=1))
pre2 <- predict(logit.step, data.frame(x1=0))
p1<-exp(pre1)/(1+exp(pre1))
p0<-exp(pre2)/(1+exp(pre2))
c(p1,p0)
# 对数线性模型
fm = glm(formula, family=poisson(link=log), data=data.frame)
fm = glm(formula, family=quasipoisson(link=log), data=data.frame)
# 案例分析:广义线性模型应用及R操作
case5 = read.table("clipboard", header=T); attach(case5)
fm = glm(y~sex+age, family=binomial, data=case5); fm
summary(fm)