Basicamente não existe segredo para reproduzir a mesma análise. O modo mais direto é declarar o modelo para estimar os parâmetros separados para cada nível do fator, depois montar as matrizes correspondentes às funções lineares e submetê-las à glht() ou qualquer outra função que permita inferências para funções lineares de parâmetros. O pacote car, contrast e gmodels têm funções equivalentes à glht(), minha preferida.
##-----------------------------------------------------------------------------
m0 <- lm(Y~0+estudo/X, DATA)
summary(m0)
m0$assign
tapply(coef(m0), m0$assign, mean)
## Matriz de pesos.
m <- rbind(rep(1, nlevels(DATA$estudo))/nlevels(DATA$estudo))
require(multcomp)
## Intercepto médio.
X <- cbind(m, 0*m)
summary(glht(m0, linfct=X), test=adjusted(type="none"))
## Inclinação média.
X <- cbind(0*m, m)
summary(glht(m0, linfct=X), test=adjusted(type="none"))
## As inclinações para cada nível saem no próprio summary() do modelo
## quando se declara o modelo na forma ~0+fator/numérica. Para
## conhecimento, pode ser feito assim.
M <- diag(nlevels(DATA$estudo))
X <- cbind(M, 0*M)
summary(glht(m0, linfct=X), test=adjusted(type="fdr"))
X <- cbind(0*M, M)
summary(glht(m0, linfct=X), test=adjusted(type="fdr"))
##-----------------------------------------------------------------------------
À disposição.
Walmes.