我正在使用该nlsLM
函数来拟合非线性回归。如何从nlsLM
模型对象中提取帽子值和库克距离?
对于使用nls
ornlreg
函数创建的对象,我知道如何提取观察值的帽子值和库克距离,但我不知道如何使用nslLM
.
谁能帮我解决这个问题?谢谢!
我正在使用该nlsLM
函数来拟合非线性回归。如何从nlsLM
模型对象中提取帽子值和库克距离?
对于使用nls
ornlreg
函数创建的对象,我知道如何提取观察值的帽子值和库克距离,但我不知道如何使用nslLM
.
谁能帮我解决这个问题?谢谢!
所以,这不是库克的距离或基于帽子值,但您可以使用包中的函数nlsJack
来nlstools
折刀您的 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
模型拟合。