15.6 其它模型类型
线性回归仅是R建模能力的冰山一角。由于R现在是许多大学统计部门所选择的工具,所以几乎每个能想到的模型都会出现在R或它的某个包中。有很多书重点讲述如何使用R来完成统计方面的任务,本节仅简要指出哪里能够找到进一步的信息。
提示
有许多人都编写了R的模型函数,它们分布在很多不同的包中,因此它们的语法各有千秋。
caret
包的封装了大约150个模型,提供了一个一致的接口,里面还有用于模型训练和验证一些工具。Max Kuhn的 Applied Predictive Modeling是这个包的最佳指引。
线性(普通最小二乘回归)模型的lm
函数有其泛化(generalization)版本函数glm
,此函数可让你为因变量上的误差项和变换指定不同的分布。你可将其用于logistic回归(其中的响应变量是逻辑或类别类型的)或其它,它的语法跟lm
几乎完全相同:
glm(true_or_false ~ some + predictor + variables, data, family = binomial())
John Fox的An R Companion to Applied Regression全书都在介绍用glm
函数能完成哪些很酷的东西。
nlme
包(随R附带)包含了用于线性混合效应模型(linear mixed-effects model)的lme
函数和用于非线性混合效应模型(nonlinear mixed-effects model)3的nlme
。同样地,它的语法与lm
或多或少都一样 :
3混合效应模型是一种回归,其中的一些要预测的变量会影响响应而不是平均值的方差。例如,如果要测量人们血液中的氧气含量,那么你可能想知道人与人之间的差别,以及对某人的测量值之间的差别,但你不会在乎某个特定的人的氧气水平是较高还是较低。
lme(y ~ some + fixed + effects, data, random = ~ 1 | random / effects)
José Pinheiro和Doug Bates合著的Mixed-Effects Models in S and S-PLU 是权威的参考书,其中有大量的范例。
对于成比例的响应变量,betareg
包中包含了一个同名函数,它允许进行Beta回归。这对于练习15-3尤其重要。
对于数据挖掘者(和其他涉及高维数据集的人士)来说,依附于R中的rpart
包能创建回归树(又名决策树)。更令人兴奋的是,randomForest
包可以让你创建大量的回归树。C50
和mboost
提供了梯度提升(gradient boosting),它在许多方面甚至比随机森林(random forrest)做得更好。
kmeans
可以让你使用K均值聚类(K-means clustering),还有几个包能提供专业扩展,例如kernlab
为加权的K均值,kml
为纵向的K均值,trimclust
用于修剪的K均值,而skmeans
为球形的K均值。
如果你做过大量的数据挖掘的工作,你可能会对Rattle很感兴趣,这是一个图形用户界面,它可以轻松地访问R的数据挖掘模型。Graham Willims撰写了一本相关的书Data Mining With Rattle and R。你可以先访问这个网站http://rattle.togaware.com/,看看它是否吸引你。
社会科学家可能喜欢传统的降维模型(dimension-reduction model):factanal
模型支持因子分析,而主成分分析有两种方法(princomp
能够兼容S-Plus,而prcomp
则采用了更现代的、数值更稳定的算法)。
deSolve
包中包含了很多能求解常/偏/延迟微分方程系统的方法。