Для объектов типа lm
или glm
или даже для объектов типа lmer
можно извлечь значения шляпы из модели с помощью функции R hatvalues()
. Однако, по-видимому, это не работает с объектами nls
. Я гуглил по-всякому, но не могу найти способ получить эти значения. Разве 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))
nls
, что является базой R. Извините за это. - person Bajcz   schedule 26.08.2016hatvalues
для объектовnls
, означает, что этот расчет не является правильным методом / невозможен для оценки nls. crossValidated больше подходит для дальнейшего продвижения по этому пути. - person lmo   schedule 26.08.2016