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)