1

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

对于使用nlsornlreg函数创建的对象,我知道如何提取观察值的帽子值和库克距离,但我不知道如何使用nslLM.

谁能帮我解决这个问题?谢谢!

4

1 回答 1

1

所以,这不是库克的距离或基于帽子值,但您可以使用包中的函数nlsJacknlstools折刀您的 nls 模型,这意味着它会一个一个地删除每个点,并引导生成的模型,粗略地说,如何无论有没有给定的观察,模型系数都会发生很大变化。

可重现的例子:

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))

该图显示了每个模型系数在删除每个单独的观察值时的百分比变化,并且它在结果图中将高于某个阈值的影响点标记为“有影响的”。的文档nlsJack描述了如何确定此阈值:

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

到目前为止,我的印象是,这是一个相当自由的标准——它倾向于将很多观点标记为有影响力。

nlstools总体而言,它是一个非常有用的软件包,可用于诊断nls模型拟合。

于 2016-08-26T13:25:06.833 回答