Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior | ||
| pessoais:walmes:ridiculas [2010/12/20 20:07] – walmes | pessoais:walmes:ridiculas [2011/02/11 17:01] (atual) – walmes | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| ====== Ridiculas - dicas curtas em R ====== | ====== Ridiculas - dicas curtas em R ====== | ||
| - | ===== Ridiculas - dicas curtas em R ===== | + | ===== Regressão na análise de variância |
| + | <code R> | ||
| + | # | ||
| + | # dados | ||
| + | sorgo <- read.table(" | ||
| + | sorgo <- transform(sorgo, | ||
| + | str(sorgo) | ||
| + | # | ||
| + | # | ||
| + | # gráficos exploratórios | ||
| + | require(lattice) | ||
| + | xyplot(indice~dose|cultivar, | ||
| + | | ||
| + | xyplot(indice~dose, | ||
| + | # | ||
| + | # | ||
| + | # análise de variância do modelo de fatores | ||
| + | m0 <- aov(indice~bloco+cultivar*ordered(dose), | ||
| + | summary(m0) | ||
| + | # | ||
| + | # | ||
| + | # checagem | ||
| + | par(mfrow=c(2, | ||
| + | plot(m0) | ||
| + | layout(1) | ||
| + | # | ||
| + | # | ||
| + | # desdobrando as somas de quadrados de doses dentro de cultivar | ||
| + | # dicas: forneça para ’by’ o número de níveis de cultivar (3) | ||
| + | # forneça para ’length.out’ os graus de liberdade de dose (6-1) | ||
| + | m1 <- aov(indice~bloco+cultivar/ | ||
| + | summary(m1) | ||
| + | coef(m1) | ||
| + | summary(m1, split=list(" | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ))) | ||
| + | # | ||
| + | # | ||
| + | # desdobrando somas de quadrados de cultivar dentro das doses | ||
| + | # dicas: forneça para ’by’ o número de níveis de dose (6) | ||
| + | # forneça para ’length.out’ os graus de liberdade de cultivar (3-1) | ||
| + | m2 <- aov(indice~bloco+ordered(dose)/ | ||
| + | coef(m2) | ||
| + | summary(m2, split=list(" | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ))) | ||
| + | # | ||
| + | # | ||
| + | # desdobrando efeitos dos graus polinômio dentro de dose dentro de cultivar | ||
| + | # lof é falta de ajuste (lack of fit) | ||
| + | summary(m1, split=list(" | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ))) | ||
| + | # | ||
| + | # | ||
| + | # obter as equações de regressão e R^2 para os modelos linear, quadrático e cúbico | ||
| + | # dica: usar contraste tipo soma zero para blocos para se anularem na fórmula | ||
| + | # e remover o intercepto especificando o ’-1’, trocar a ordem dos termos no modelo | ||
| + | # linear (estimativas corretas mas erros padrões e p-valores precisam de correção) | ||
| + | m3 <- aov(indice~-1+cultivar/ | ||
| + | contrast=list(bloco=contr.sum)) | ||
| + | summary.lm(m3) | ||
| + | # | ||
| + | # | ||
| + | # quadrático (estimativas corretas mas erros padrões e p-valores precisam de correção) | ||
| + | m4 <- aov(indice~-1+cultivar/ | ||
| + | contrast=list(bloco=contr.sum)) | ||
| + | summary.lm(m4) | ||
| + | # | ||
| + | # | ||
| + | # cúbico (estimativas corretas mas erros padrões e p-valores precisam de correção) | ||
| + | m5 <- aov(indice~-1+cultivar/ | ||
| + | contrast=list(bloco=contr.sum)) | ||
| + | summary.lm(m5) | ||
| + | # | ||
| + | # | ||
| + | # calcular os R^2 | ||
| + | sapply(c(linear=1, | ||
| + | | ||
| + | | ||
| + | function(i){ | ||
| + | da <- with(subset(sorgo, | ||
| + | | ||
| + | summary(lm(x~poly(dose, | ||
| + | })}) | ||
| + | # | ||
| + | # | ||
| + | </ | ||
| + | |||
| + | ===== Experimento com dois fatores de efeito aditivo e perda de muitas parcelas ===== | ||
| + | |||
| + | <code R> | ||
| + | # | ||
| + | # dados | ||
| + | |||
| + | da <- expand.grid(rept=1: | ||
| + | da$y <- c(58.4, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, | ||
| + | 68.4, NA, NA, NA, NA, 258.8, 265.6, NA, NA, NA, NA, NA, 250, NA, 278.8, | ||
| + | 268.8, NA, NA, NA, 309.6, NA, NA, NA, NA, NA, NA, NA, NA, NA, 254, 598.8, | ||
| + | NA, NA, NA, NA, 250, 399.6, 260, NA, NA, NA, 288.4, NA, NA, NA, 397.2, NA, | ||
| + | NA, 337.6, NA, 415.2, NA, 450.8, NA, NA, NA, NA, 393.2, NA, NA, NA, NA, | ||
| + | NA, NA, NA, 380.4, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 634, 417.2, | ||
| + | NA, NA, NA, NA, NA) | ||
| + | |||
| + | # | ||
| + | # ajuste do modelo aditivo com teste F marginal | ||
| + | |||
| + | m0 <- lm(y~ep+tr, data=da) | ||
| + | drop1(m0, test=" | ||
| + | |||
| + | # | ||
| + | # análise de resíduos | ||
| + | |||
| + | par(mfrow=c(2, | ||
| + | plot(m0) | ||
| + | layout(1) | ||
| + | |||
| + | # | ||
| + | # estimativas dos efeitos sob a restrição do R | ||
| + | |||
| + | summary(m0) | ||
| + | |||
| + | # | ||
| + | # obtenção das médias ajustadas para os níveis de tratamento | ||
| + | |||
| + | require(contrast) | ||
| + | lapply(levels(da$tr), | ||
| + | | ||
| + | | ||
| + | } | ||
| + | ) | ||
| + | |||
| + | # | ||
| + | # comparação multipla de médias | ||
| + | |||
| + | require(multcomp) | ||
| + | summary(glht(m0, | ||
| + | |||
| + | # | ||
| + | </ | ||