如何从R中的`nlsLM`模型对象中提取帽子值和Cook的距离?

时间:2016-02-28 13:33:42

标签: r regression diagnostics nls non-linear-regression

我正在使用nlsLM函数来拟合非线性回归。如何从nlsLM模型对象中提取帽子值和Cook的距离?

使用nlsnlreg函数创建对象时,我知道如何提取帽子值和Cook的观察距离,但我无法弄清楚如何使用{ {1}}。

任何人都可以帮我解决这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:1)

所以,它不是Cook的距离或基于帽子值,但你可以使用LIKE '%".$_GET['search']."%')");包中的函数nlsJack来折叠你的nls模型,这意味着它逐个删除每个点,然后引导结果模型,粗略地说,看看模型系数在有或没有给定观察的情况下有多大变化。

可重复的例子:

nlstools

该图显示了每个模型系数的百分比变化,因为每个单独的观察被移除,并且它将有影响的点标记为高于某个阈值,因为有影响力的"在结果图中。 xs = rep(1:10, times = 10) ys = 3 + 2*exp(-0.5*xs) for (i in 1:100) { xs[i] = rnorm(1, xs[i], 2) } df1 = data.frame(xs, ys) nls1 = nls(ys ~ a + b*exp(d*xs), data=df1, start=c(a=3, b=2, d=-0.5)) require(nlstools) plot(nlsJack(nls1)) 的文档描述了如何确定此阈值:

  

如果观察到的有和没有观察的参数的估计之间的差异超过估计的标准误差除以sqrt(n)的两倍,则根据经验将观察定义为对一个参数有影响。这种经验方法假设非线性模型的曲率很小。

到目前为止,我的印象是这是一个相当自由的标准 - 它往往标志着许多有影响力的观点。

nlsJack是一个非常有用的软件包,用于诊断nlstools模型拟合。