广义线性模型
广义线性模型使用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 〜X ,数据= 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克劳利关于生存分析的章节。
|