我使用nlsLM
函數來擬合非線性迴歸。如何從nlsLM
模型對象中提取帽子值和庫克距離?如何從R中的`nlsLM`模型對象中提取帽子值和庫克距離?
隨着使用nls
或nlreg
功能創建的對象,我知道如何提取帽子值和庫克的觀察距離,但我想不出怎樣使用nslLM
得到。
誰能幫我這個?謝謝!
我使用nlsLM
函數來擬合非線性迴歸。如何從nlsLM
模型對象中提取帽子值和庫克距離?如何從R中的`nlsLM`模型對象中提取帽子值和庫克距離?
隨着使用nls
或nlreg
功能創建的對象,我知道如何提取帽子值和庫克的觀察距離,但我想不出怎樣使用nslLM
得到。
誰能幫我這個?謝謝!
因此,它不是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
模型雖然適合。