15.6 其它模型类型

线性回归仅是R建模能力的冰山一角。由于R现在是许多大学统计部门所选择的工具,所以几乎每个能想到的模型都会出现在R或它的某个包中。有很多书重点讲述如何使用R来完成统计方面的任务,本节仅简要指出哪里能够找到进一步的信息。

提示

有许多人都编写了R的模型函数,它们分布在很多不同的包中,因此它们的语法各有千秋。caret包的封装了大约150个模型,提供了一个一致的接口,里面还有用于模型训练和验证一些工具。Max Kuhn的 Applied Predictive Modeling是这个包的最佳指引。

线性(普通最小二乘回归)模型的lm函数有其泛化(generalization)版本函数glm,此函数可让你为因变量上的误差项和变换指定不同的分布。你可将其用于logistic回归(其中的响应变量是逻辑或类别类型的)或其它,它的语法跟lm几乎完全相同:

  1. 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混合效应模型是一种回归,其中的一些要预测的变量会影响响应而不是平均值的方差。例如,如果要测量人们血液中的氧气含量,那么你可能想知道人与人之间的差别,以及对某人的测量值之间的差别,但你不会在乎某个特定的人的氧气水平是较高还是较低。

  1. 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包可以让你创建大量的回归树。C50mboost提供了梯度提升(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包中包含了很多能求解常/偏/延迟微分方程系统的方法。