У меня есть продольный фрейм данных с несколькими строками на идентификатор.
> data("dietox")
> head(dietox, 5)
Pig Evit Cu Litter Start Weight Feed Time
1 4601 Evit000 Cu000 1 26.5 26.50000 NA 1
2 4601 Evit000 Cu000 1 26.5 27.59999 5.200005 2
3 4601 Evit000 Cu000 1 26.5 36.50000 17.600000 3
4 4601 Evit000 Cu000 1 26.5 40.29999 28.500000 4
5 4601 Evit000 Cu000 1 26.5 49.09998 45.200001 5
Я пытаюсь подогнать модель GEE для прогнозирования Weight
для каждой строки кадра данных.
library(gee)
library(dplyr)
> model1 <- gee(Weight ~ Start + Feed, id=Pig, data=dietox, corstr="exchangeable")
> model1
GEE: GENERALIZED LINEAR MODELS FOR DEPENDENT DATA
gee S-function, version 4.13 modified 98/01/27 (1998)
Model:
Link: Identity
Variance to Mean Relation: Gaussian
Correlation Structure: Exchangeable
Call:
gee(formula = Weight ~ Start + Feed, id = Pig, data = dietox,
corstr = "exchangeable")
Number of observations : 789
Maximum cluster size : 11
Coefficients:
(Intercept) Start Feed
5.1539561 0.9384232 0.4294209
Теперь я хочу иметь возможность добавить новый столбец к фрейму данных - prediction
, который содержит прогнозируемое значение веса для каждой строки данных. Идея состоит в том, что тогда я смогу сравнить исходную переменную Weight
с переменной prediction
в разных точках переменной Time
.
Когда я пытаюсь сделать это с помощью функций mutate
и predict
, я получаю сообщение об ошибке, в котором говорится, что количество наблюдений, используемых в подгонке модели (789), отличается от количества наблюдений в исходном фрейме данных (861).
> new_df <- dietox %>%
+ mutate(prediction = predict(model1))
Error: Column `prediction` must be length 861 (the number of rows) or one, not 789
У меня следующие вопросы: 1. Как мне извлечь фрейм данных для 789 наблюдений, которые использовались при подборе модели? 2. Почему количество наблюдений, используемых в модели, отличается от общего количества наблюдений в исходной системе данных?