2016-02-28 21 views

回答

1

因此,它不是Cook's Distance或基於帽子值,但是您可以使用nlstools包中的函數nlsJack來摺疊您的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模型雖然適合。