分享

广义线性模型

 脑系科数据科学 2020-09-28

广义线性模型


广义线性模型使用glm()函数进行拟合glm函数的形式

glm(formula ,family = familytype (link = linkfunction ),data =)

家庭默认链接功能
二项式(link =“logit”)
高斯(link =“身份”)
伽玛(link =“inverse”)
inverse.gaussian分布(链接=“1 / mu ^ 2”)
泊松(link =“log”)
(link =“identity”,variance =“constant”)
quasibinomial(link =“logit”)
quasipoisson(link =“log”)

查看帮助(glm)了解其他建模选项。查看每个家庭的其他允许链接功能的帮助(家庭)这里将介绍三种广义线性模型的亚型:逻辑回归,泊松回归和生存分析。

Logistic回归

当您从一组连续预测变量中预测二元结果时,Logistic回归很有用。由于其限制性较小的假设,它通常优于判别函数分析。

# Logistic Regression
# where F is a binary factor and 
# x1-x3 are continuous predictors 
fit <- glm(F~x1+x2+x3,data=mydata,family=binomial())
summary(fit) # display results
confint(fit) # 95% CI for the coefficients
exp(coef(fit)) # exponentiated coefficients
exp(confint(fit)) # 95% CI for exponentiated coefficients
predict(fit, type="response") # predicted values
residuals(fit, type="deviance") # residuals

您可以使用anova fit1 fit2 ,test =“Chisq”)来比较嵌套模型。此外,cdplot(˚F ,数据= MYDATA 将显示二元结果的条件密度情节˚F在连续X变量。

条件密度图 点击查看

泊松回归

当预测表示来自一组连续预测变量的计数的结果变量时,泊松回归很有用。

# Poisson Regression
# where count is a count and 
# x1-x3 are continuous predictors 
fit <- glm(count ~ x1+x2+x3, data=mydata, family=poisson())
summary(fit) display results

如果你有过度分散(看剩余偏差是否比自由度大得多),你可能想用quasipoisson()而不是poisson()

生存分析

生存分析(也称为事件历史分析或可靠性分析)涵盖了用于对事件时间建模的一组技术。数据可能被正确审查 – 该事件可能在研究结束时未发生,或者我们可能对观察信息的信息不完整,但知道在某段时间内没有发生事件(例如,参与者在一周内辍学10但当时还活着)。

虽然广义线性模型通常使用glm()函数进行分析,但生存分析通常是使用生存包中的函数进行的生存包可以处理一个和两个样本问题,参数加速故障模型和Cox比例风险模型。

通常以格式开始时间停止时间状态输入数据(1 =发生事件,0 =事件未发生)。或者,数据格式可以是事件状态的时间(1 =发生事件,0 =事件未发生)。状态= 0表示观察结果正确。在进一步分析之前,数据通过Surv()函数绑定到Surv对象中

survfit()用于估计一个或多个组的生存分布。
survdiff()测试两个或更多组之间生存分布的差异。
coxph()
模拟一组预测变量的危险函数。

# Mayo Clinic Lung Cancer Data
library(survival)
# learn about the dataset
help(lung)
# create a Surv object 
survobj <- with(lung, Surv(time,status))
# Plot survival distribution of the total sample
# Kaplan-Meier estimator 
fit0 <- survfit(survobj~1, data=lung)
summary(fit0)
plot(fit0, xlab="Survival Time in Days", 
   ylab="% Surviving", yscale=100,
   main="Survival Distribution (Overall)") 
# Compare the survival distributions of men and women 
fit1 <- survfit(survobj~sex,data=lung)
# plot the survival distributions by sex 
plot(fit1, xlab="Survival Time in Days", 
  ylab="% Surviving", yscale=100, col=c("red","blue"),
  main="Survival Distributions by Gender") 
  legend("topright", title="Gender", c("Male", "Female"),
  fill=c("red", "blue"))
# test for difference between male and female 
# survival curves (logrank test) 
survdiff(survobj~sex, data=lung) 
# predict male survival from age and medical scores 
MaleMod <- coxph(survobj~age+ph.ecog+ph.karno+pat.karno,
  data=lung, subset=sex==1)
# display results 
MaleMod
# evaluate the proportional hazards assumption 
cox.zph(MaleMod)

总群体的生存分布 按性别分列的生存率 点击查看

有关更多信息,请参阅Thomas Lumley 关于生存包的 R新闻文章其他很好的资源包括麦周的使用R软件进行生存分析和模拟以及MJ克劳利关于生存分析的章节

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多