多元回归树:条件限制聚类
多元回归树是一种聚类的方法,不需要人为指定划分成的类群数量或者人为设定判别标准。多元回归树能够很好的处理非线性问题,经过交叉验证等一系列筛选过程,多元回归树能够发挥很好的预测作用。
多元回归树在经济决策领域、生态学领域等正受到越来越多的重视。
本文是根据《Numerical Ecology with R》中对多元回归树的部分翻译整理过来的。希望对感兴趣的读者有帮助。
引言
多元回归树(MRT, De’ath 2002) 是单变量回归树的推广,是用来对一系列数量变量递归划分成多个类群的一种方法,其划分的依据为这一系列变量所对应的数量或者分等级的解释变量。这样的过程有时候称为条件限制聚类。其结果为一个树状结构图,其“叶片”分别为各操作单元,这些单元分处于各类群中,各个类群内的总方差最小。但是类群的划分有一个临界值,或者受到解释变量准确程度的限制。在海量的类群划分方案中,人们倾向于找到“最具预测能力的”划分方案。
多元回归树在多种数据处理的场合都是十分稳健的,并且显示出强大的功能。在缺失值存在的情况下,以及变量和解释变量之间的关系为非线性时,仍然能够得到较好的结果。
计算原理
多元回归树包含两步:
条件限制数据分割
对结果的交叉验证
下面对两个的计算过程分别作检验的介绍。
1. 条件限制数据分割
对每一个解释变量,将样点划分成两个类群的所有可能都给出。对于数量变量,首先将要样点按照解释变量排序,之后,顺序的将其划分成两类,从第一个,第二个,第n-1个点处划分。对于分等级的变量,将样点划分为两个类群,将所有可能组合均给出。在所有可能的情况下,计算响应变量的每个小组内各数据和小组平均值的平方和。保留平方和最小的划分方案,记录该划分方案中解释变量或等级变量的数值。
对划分出的两个子类群,分别再重复上述过程,分别筛选出最优的划分方案,并记录该划分方案中解释变量或等级变量的数值。
重复上述过程,直至所有的样点均被划分成自己的类群中。继而搜寻类群数适当的划分方案,以满足研究的需要。如果数据分析的目的是为了预测,那么就必须进行下一步的交叉验证,以便找到预测效果最优的树。
出了末端样点的数量,也就是所谓的“叶片”的数量和组成之外,相对误差(relative error,RE)也是多元回归树的一个重要特征。例如,组间平方和与总平方的商。换句话说,这就是该回归树没能解释的方差变化。在没有经过交叉验证时,应该保留的是使得RE最小的回归树。这与保留R^2最大的情形类似。但是,这种情况下,回归树只具有解释功能,而缺乏预测功能。De’ath(2002)年指出:“RE给出的是回归树对于新数据的预测能力的过优化估计,而回归树预测的准确性能够从交叉验证相对误差(cross-validated relative error ,CVRE)获得更准确的估计”。
2. 回归树的交叉验证和剪接:
应该在什么水平上对回归树进行修剪?也就是如何保留最为敏感的划分位点?为了回答这一问题,人们利用如下方法:将样点划分成两个子集,其中一个为“训练集合”, 另一个为“验证集合”。具有良好预测能力的回归树会将验证集合中的各样点划分到合适的类群中。例如,验证集合中新增加的样点,其响应变量的数值与预测的该组响应变量的数值的差较小。回归树的预测能力可以用其预测误差进行评估。
预测误差的度量为CVRE,其公式为
CVRE = sum(sum((y[i,j][k] - y_estimate[k])^2))/sum(sum((y[i,j] - y_mean[j])^2))
其中 y[i,j][k] 为验证数据集k的一个样点
y_estimate[k] 是该点的预测值,
分母部分表示数据的总方差。
因此,CVRE可以定义为回归树没有解释的方差,除以响应数据的总方差。当然,回归树的划分有一点儿变化,则相应的分子也会发生变化。理想的预测情况下,CVRE的值为0,而回归树的预测效果越差,CVRE的值越接近于1.
3 MRT的过程
以下是多元回归树交叉验证的总过程。
将数据随机划分成k组(默认为10组)。
随机保留其中一组作为“验证组”(test groups),利用条件限制分类,按照组内平方和最小的原则,选取一棵最优的回归树。
将以上过程重复k-1次,每次保留一个预测组。
在以上的k个划分方案中,重新指派训练集合(什么意思?)。 计算每个划分方案的CVRE。
对回归树进行剪接:保留CVRE最小的划分方案。另一种方法是,保留CVRE与CVRE标准误相加最小的划分方案。这种方法是称为一标准误原则。
为了获得这一过程的误差,将其他随机分配的对象划分成k组,将这一或称重复多次(如500 - 1000次)。
最后获得的回归树是所有随机排列组合中CVRE值最小的,或者是1SE值最小的。
在多元回归树分析中,平方和的计算是在欧几里得空间中进行的。如果数据需要保留自身的特性,则需要进行相应的转换。
4 多元回归树实例:mvpart程序包
mvpart程序包最初是Terry M Therneau和Beth Atkinson编写的, Glenn De’ath对其进行了扩展,并负责该程序包的更新和维护。其计算用到的主要函数为rpart()
。该函数需要输入的响应变量为matrix,解释变量为data.frame()
. 两者的关系采用R的标准公示格式(可参考?lm).
示例来自mvpart程序包的帮助:
1 | library(mvpart) |