Вот пример того, что я хочу сделать, с набором случайно сгенерированных чисел:
a <- runif(100, min =0.5, max=1);
b <- runif(100, min = 0, max =1);
c <- factor(rep(c("High", "Low", "High", "High"), times = 25));
df<-data.frame(a,b,c);
head(df)
a b c
1 0.9506028 0.84686708 High
2 0.7296878 0.24566532 Low
3 0.6208635 0.90166263 High
4 0.9009880 0.98464187 High
5 0.6032242 0.23613096 High
6 0.5409369 0.06325577 Low
Итак, я хочу создать две отдельные линейные модели, одну для поднабора данных (c == "Высокий", n = 75), а другой для поднабора данных (c == "Низкий", n = 25) ........
... Тогда я хочузапустить anova для сравнения линейных моделей:
mod1<-lm(b~a, data=df, subset = c=="High")
mod2<-lm(b~a, data=df, subset = c=="Low")
До этого момента все работало отлично, но следующая команда:
anova(mod1,mod2)
выдает ошибку:
Ошибка в anova.lmlist (объект, ...): не все модели были приспособлены к одному и тому же размеру набора данных
Эту проблему можно решить с помощью функции обновления, хотя я поканаткнуться на пример, показывающий, как обновить функцию подмножества в строке вызова lm.
Спасибо :))