Je dispose d'un ensemble de données multiniveau à mesures répétées d'environ 300 patients, chacune contenant jusqu'à 10 mesures répétées permettant de prédire l'élévation de la troponine. Il y a d'autres variables dans l'ensemble de données, mais je ne les ai pas incluses ici. J'essaie d'utiliser nlme
pour créer une pente aléatoire, modèle d'interception aléatoire où les effets varient entre les patients, et l'effet du temps est différent chez les différents patients. Lorsque j'essaie d'introduire une structure de covariance de premier ordre pour permettre la corrélation des mesures dues au temps, j'obtiens le message d'erreur suivant. J'ai inclus mon code et un échantillon de l'ensemble de données, et je serais très reconnaissant pour tous les mots de sagesse.structure de covariance pour la modélisation multiniveau
#baseline model includes only the intercept. Random slopes - intercept varies across patients
randomintercept <- lme(troponin ~ 1,
data = df, random = ~1|record_id, method = "ML",
na.action = na.exclude,
control = list(opt="optim"))
#random intercept and time as fixed effect
timeri <- update(randomintercept,.~. + day)
#random slopes and intercept: effect of time is different in different people
timers <- update(timeri, random = ~ day|record_id)
#model covariance structure. corAR1() first order autoregressive covariance structure, timepoints equally spaced
armodel <- update(timers, correlation = corAR1(0, form = ~day|record_id))
Error in `coef<-.corARMA`(`*tmp*`, value = value[parMap[, i]]) : Coefficient matrix not invertible
données:
record_id day troponin
1 1 32
2 0 NA
2 1 NA
2 2 NA
2 3 8
2 4 6
2 5 7
2 6 7
2 7 7
2 8 NA
2 9 9
3 0 14
3 1 1167
3 2 1935
4 0 19
4 1 16
4 2 29
5 0 NA
5 1 17
5 2 47
5 3 684
6 0 46
6 1 45440
6 2 47085
7 0 48
7 1 87
7 2 44
7 3 20
7 4 15
7 5 11
7 6 10
7 7 11
7 8 197
8 0 28
8 1 31
9 0 NA
9 1 204
10 0 NA
10 1 19
Merci beaucoup pour votre aide. Oui, les données sont épineuses, et vous avez tout à fait raison, la transformation du journal permet de le rendre meilleur. Je ne peux pas déterminer comment ajouter les images dans ces commentaires, mais l'ensemble des résidus de l'ensemble de données ressemble gros à la vôtre. J'ai changé l'optimiseur en nlminb, mais maintenant je ne peux pas faire converger le modèle. Auriez-vous d'autres conseils?Un grand merci, Annemarie nlminb problème, code d'erreur de convergence = 1 message = limite d'itération atteinte sans convergence (10) – Annemarie
voir '? LmeControl', (en particulier' maxIter', 'msMaxIter'), même si cela ne résout pas le problème. –
Merci beaucoup @Ben Bolker – Annemarie