<div dir="ltr"><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">André,</div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif"><br></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">Você pode obter as predições manualmente.</div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif"><br></div><div class="gmail_default"><span style="font-family:monospace"># Dados.<br>library(MCMCglmm)<br>data(PlodiaPO)<br>str(PlodiaPO)<br><br># Divisão dos dados.<br>library(caTools)<br>divisao <- sample.split(PlodiaPO$PO, SplitRatio = 0.75)<br><br># ATTENTION: `divisao` já é um vetor lógico, portanto ...<br># conj_treinamento <- subset(PlodiaPO, divisao == TRUE)<br>conj_treinamento <- subset(PlodiaPO, divisao)<br># ATTENTION: o conjunto de valiação também tem que ser data.frame.<br># conj_validacao <- subset(PlodiaPO$PO, divisao == FALSE)<br>conj_validacao <- subset(PlodiaPO, !divisao)<br><br># Modelo.<br>library(sommer)<br>fit <- mmer(PO ~ 1, random = ~FSfamily, data = conj_treinamento)<br>summary(fit)<br><br># Conteúdo.<br>names(fit)<br><br># Quantidades necessárias para a predição (efeitos fixos e aleatórios).<br>fit$Beta<br>fit$U<br><br># Classe, métodos, implementação e documentação.<br>class(fit)<br>methods(class = "mmer")<br>getS3method("predict", "mmer")<br>help(predict.mmer, help_type = "html")<br><br># ATTENTION: o nome do parâmetro é `newdata` e não `new_data`.<br>pred <- predict(fit, newdata = conj_validacao, classify = "FSfamily")<br>pred<br><br># Pelo visto precisa usar o parâmetro `classify` pois já saiu com o<br># efeito de "FSfamily".<br>pred <- predict(fit, newdata = conj_validacao)<br>str(pred)<br><br># Predições.<br>unique(pred$predictions[, c("FSfamily", "predicted.value.PO")])<br><br># Fazendo as predições na mão.<br>X <- model.matrix(~1, data = conj_validacao)<br>Z <- model.matrix(~0 + FSfamily, data = conj_validacao)<br>conj_validacao$fit <-<br>    X %*% fit$Beta[["Estimate"]] + Z %*% fit$U$FSfamily$PO<br><br># Predições (coincidem até a 4 casa decimal).<br>merge(unique(pred$predictions[, c("FSfamily", "predicted.value.PO")]),<br>      unique(conj_validacao[, c("FSfamily", "fit")]))<br></span></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif"><br></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">À disposição.</div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">Walmes.<br></div></div>