R вариограмма сюжет в лм против лм?

Если я использую функцию lme в пакете nlme и пишу

m <- lme(y ~ Time, random = ~1|Subject)

а потом написать

Variogram(m, form = ~Time|Subject)

он производит вариограмму без проблем.

Тем не менее, если я использую лм без случайного эффекта,

m <- lm(y ~ Time)

и писать

Variogram(m, form = ~Time)

это производит

Error in Variogram.default(m, form = ~Time) : 
  argument "distance" is missing, with no default

В чем дело? Зачем ему нужно расстояние, когда я подгоняю lm, когда это не нужно было раньше с lme?

Как тогда можно построить вариограмму без указания "расстояния"? У меня та же проблема с использованием других методов моделирования: glm, gam, gamm и т. Д.

РЕДАКТИРОВАТЬ:

Вы можете проверить все это самостоятельно, используя, например, данные BodyWeight в nlme.

> m <- lm(weight ~ Time, data = BodyWeight)
> Variogram(m, form =~Time)
Error in Variogram.default(m, form = ~Time) : 
  argument "distance" is missing, with no default

1 ответ

В nlme E сть Variogram.lme Функция метода для lme подходит, но не существует эквивалентного метода для lm моделей.

Ты можешь использовать Variogram.default следующее:

library(nlme)
mod1 <- lm(weight ~ Time, data = BodyWeight)
n <- nrow(BodyWeight)
variog <- Variogram(resid(mod1), distance=dist(1:n))
head(variog)

############
      variog dist
1 17.4062805    1
2 23.1229516    2
3 29.6500135    3
4 15.6848617    4
5  3.1222878    5
6  0.9818238    6

Мы также можем построить вариограмму:

plot(variog)

Другие вопросы по тегам