主要内容

库克的距离

目的

库克距离是拟合值的缩放变化,这对于识别模型中的异常值很有用X值(预测变量的观察结果)。库克距离表示每个观测值对拟合响应值的影响。如果库克距离大于平均库克距离的三倍,则可能是一个异常值。

定义

每个元素都在库克的距离内D是由于删除观测值而使拟合响应值发生的归一化变化。库克的观察距离

D j 1 n y j y j 2 p 年代 E

在哪里

  • y j j拟合响应值。

  • y j j拟合的响应值,其中拟合不包括观测值

  • 均方误差是均方误差。

  • p是回归模型中的系数数。

库克距离在代数上等价于以下表达式:

D r 2 p 年代 E h 1 h 2

在哪里r残差,和h2杠杆价值。

如何

拟合模型后mdl,例如,你可以用fitlmstepwiselm:

  • 通过使用点表示法在属性中建立索引来显示库克距离值。

    mdl.Diagnostics.CooksDistance
    CooksDistance是一个n的-by-1列向量诊断表格LinearModel对象。

  • 绘制库克距离值。

    plotDiagnostics (mdl cookd)
    详细信息请参见plotDiagnostics的功能LinearModel对象。

使用库克距离确定离群值

这个例子展示了如何使用库克距离来确定数据中的异常值。

加载示例数据并定义独立变量和响应变量。

负载医院X = double(医院(:,2:5));y = hospital.血压(:,1);

拟合线性回归模型。

mdl = fitlm(X,y);

绘制库克距离值。

plotDiagnostics (mdl“cookd”

图中包含一个轴对象。Cook’s distance Case order plot的坐标轴对象包含2个类型为line的对象。这些物体代表库克的距离,参考线。

图中的虚线对应的是建议的阈值,3 *意味着(mdl.Diagnostics.CooksDistance)。图中有一些Cook距离值大于阈值的观测值,本例中的阈值为3*(0.0108)= 0.0324。特别是,有两个库克距离值相对高于其他值,超过了阈值。您可能希望从数据中找到并删除这些内容,然后重新构建模型。

找出Cook距离值超过阈值的观测值。

找到((mdl.Diagnostics.CooksDistance) > 3 *意味着(mdl.Diagnostics.CooksDistance))
ans =10×12 13 28 44 58 70 71 84 93 95

找出Cook距离值相对大于其他Cook距离超过阈值的观测值的观测值。

找到((mdl.Diagnostics.CooksDistance) > 5 *意味着(mdl.Diagnostics.CooksDistance))
ans =2×12 84年

参考文献

[1]内特,J., M. H.库特纳,C. J.纳赫茨海姆和W.沃瑟曼。应用线性统计模型。第四版,芝加哥:欧文出版社,1996年版。

另请参阅

|||

相关的话题