====== Modelagem e análise de dados experimentais com o programa computacional R ====== {{ :pessoais:walmes:example_3_reduced.gif|}} === Descrição === Disciplina: Tópicos Especiais (AF 722) - Modelagem e análise de dados experimentais com o programa computacional R \\ Professor Coordenador: PhD. Louise Larissa May De Mio \\ Professor Coordenador: PhD. [[http://www.leg.ufpr.br/~paulojus|Paulo Justiniano Ribeiro Júnior, LEG/UFPR]] \\ Professor Colaborador: MSc. [[http://www.leg.ufpr.br/~walmes|Walmes Marques Zeviani, LEG/UFPR]] \\ Nº de Créditos: 4 \\ Carga horária: 60h \\ Período Letivo: 2º semestre de 2012 \\ === Referências bibliográficas === @TechReport{ribeiro_jr-leg, url = {http://www.leg.ufpr.br/~paulojus/embrapa/Rembrapa/Rembrapa.pdf}, year = {2009}, author = {Paulo Justiniano {Ribeiro Júnior}}, title = {Introdução ao Ambiente Estatístico R} } @TechReport{faraway-cran, url = {http://cran.r-project.org/doc/contrib/Faraway-PRA.pdf}, year = {2002}, author = {Julian J. Faraway}, title = {Practical Regression and Anova using {R}} } @book{faraway_linear_2005, title = {Linear models with R}, url = {http://www.leg.ufpr.br/~walmes/docs/Linear%20Models%20with%20R.pdf}, isbn = {9781584884255}, publisher = {Chapman \& Hall/{CRC}}, author = {Julian James Faraway}, year = {2005}, pages = {244} } @book{venables_modern_2002, title = {Modern applied statistics with S}, url = {http://www.leg.ufpr.br/~walmes/docs/Modern%20Applied%20Statistical%20Methods%20with%20S%20plus.pdf}, isbn = {9780387954578}, publisher = {Birkhäuser}, author = {William N. Venables and Brian D. Ripley}, year = {2002}, pages = {518} } @book{everitt_handbook_2009, edition = {2}, title = {A Handbook of Statistical Analyses Using R, Second Edition}, %url = {http://www.maths.bath.ac.uk/~jjf23/ELM/}, url = {http://www.leg.ufpr.br/~walmes/docs/A%20handbook%20of%20statistical%20analyses%20using%20R.pdf}, isbn = {1420079336}, publisher = {Chapman \& Hall}, author = {Brian S. Everitt and Torsten Hothorn}, month = jul, year = {2009} } @book{dalgaard_introductory_2008, edition = {2nd}, title = {Introductory Statistics with R}, url = {http://www.leg.ufpr.br/~walmes/docs/Introductory%20Statistics%20with%20R.pdf}, isbn = {0387790535}, publisher = {Springer}, author = {Peter Dalgaard}, month = aug, year = {2008} } @book{dobson_introduction_2008, edition = {3}, title = {An Introduction to Generalized Linear Models, Third Edition}, url = {http://www.leg.ufpr.br/~walmes/docs/An%20introduction%20to%20generalized%20linear%20models.pdf}, isbn = {1584889500}, publisher = {Chapman and {Hall/CRC}}, author = {Annette J. Dobson and Adrian Barnett}, month = may, year = {2008} } @book{ritz_nonlinear_2008, edition = {1}, title = {Nonlinear Regression with R}, url = {http://www.leg.ufpr.br/~walmes/docs/Nonlinear%20Regression%20with%20R.pdf}, isbn = {0387096159}, publisher = {Springer}, author = {Christian Ritz and Jens Carl Streibig}, month = nov, year = {2008} } @book{sarkar_lattice:_2008, edition = {1}, title = {Lattice: Multivariate Data Visualization with R}, url = {http://www.leg.ufpr.br/~walmes/docs/Lattice%20Multivariate%20Data%20Visualization%20with%20R.pdf}, isbn = {0387759689}, shorttitle = {Lattice}, publisher = {Springer}, author = {Deepayan Sarkar}, month = mar, year = {2008} } @book{murrell_r_2005, edition = {1}, title = {R Graphics}, url = {http://www.leg.ufpr.br/~walmes/docs/R%20Graphics.pdf}, isbn = {{158488486X}}, publisher = {Chapman and {Hall/CRC}}, author = {Paul Murrell}, month = jul, year = {2005} } === Material usado no curso === Diretório com arquivos de dados e scripts do curso: {{http://www.leg.ufpr.br/~walmes/cursoR/af722_2012/}} === Cronograma de atividades do Curso === * Manhã (M): 09:00-10:30, 10:50-12:00; * Tarde (T): 13:30-15:00, 15:20-14:30; ^ Data ^ Atividade ^ Script ^ | aula 01, 10/08 (M) sex | Informações gerais sobre à disciplina. Introdução ao R, download, instação, primeiros passos. | [[http://www.leg.ufpr.br/~walmes/cursoR/af722_2012/aula1.R]] | | aula 02, 10/09 (M) seg | Importação de dados no formato texto. | [[http://www.leg.ufpr.br/~walmes/cursoR/af722_2012/aula2.R]] | | aula 03, 13/09 (M) qui | Importação e visualização de dados. | [[http://www.leg.ufpr.br/~walmes/cursoR/af722_2012/aula3.R]] | | aula 04, 14/09 (M) sex | Aplicando filtros, selecionando subconjuntos e gráficos da lattice. | [[http://www.leg.ufpr.br/~walmes/cursoR/af722_2012/aula4.R]] | | aula 05, 22/10 (M) seg | Simulando dados, regressão polinomial e não linear. | [[http://www.leg.ufpr.br/~walmes/cursoR/af722_2012/aula5.R]] | | aula 06, 25/10 (M) qui | Análise de experimento com alternativas para satisfazer os pressupostos. | [[http://www.leg.ufpr.br/~walmes/cursoR/af722_2012/aula6.R]] | | aula 07, 26/10 (M) sex | Análise de experimento, ajuste de polinômio e modelos segmentados. | [[http://www.leg.ufpr.br/~walmes/cursoR/af722_2012/aula7.R]] | | aula 08, 01/11 (M) qui | Programado: aula teórica análise contagem e proporção. | | | aula 09, 01/11 (T) qui | Programado: exposição dos casos experimentais. | | | aula 10, 28/11 (M) qua | Programado: (08:00-12:00) exposição das análises dos dados. | | === Vídeos === * {{http://www.youtube.com/watch?v=ExVhaN36jBs|Least Squares Regression Line Notes}}; * {{http://www.youtube.com/watch?v=0cUFTQs-PUo&feature=related|Least Squares Regression}}; * {{http://www.youtube.com/watch?v=MIqyiGvrUXE&feature=related|Introductory Statistics - Chapter 10: Regression}}; * {{http://www.r-tutor.com/elementary-statistics/hypothesis-testing|Hypotesis test with R}}; === Código === #------------------------------------------------------------------------------------------ vol <- read.table("http://www.leg.ufpr.br/~walmes/data/volume.txt", header=TRUE, sep="\t") str(vol) vol$dos <- factor(vol$dose) xyplot(volu~dose|gen, data=vol) m0 <- aov(volu~gen+dos+gen:dos, data=vol) anova(m0) par(mfrow=c(2,2)); plot(m0); layout(1) boxcox(m0) m1 <- aov((volu^(1/3))~gen+dos+gen:dos, data=vol) par(mfrow=c(2,2)); plot(m1); layout(1) anova(m1) with(vol, fat2.crd(gen, dos, volu^(1/3), mcomp=c("sk","tukey"))) #------------------------------------------------------------------------------------------ plot(residuals(m0)~vol$dos) plot(residuals(m0)~vol$dose) qqmath(~residuals(m0)|vol$dose) pesos <- tapply(residuals(m0), vol$dose, var) vol$pesos <- rep(pesos, each=27) m2 <- aov(volu~gen+dos+gen:dos, data=vol, weights=1/vol$pesos) par(mfrow=c(2,2)); plot(m2); layout(1) anova(m2) require(doBy) popMeans(m2, effect="gen") popMeans(m2, effect="dos") popMeans(m2, effect=c("gen", "dos")) require(agricolae) glr <- df.residual(m2) s2 <- deviance(m2)/df.residual(m2) with(subset(vol, dose=="0"), HSD.test(volu, gen, DFerror=glr, MSerror=pesos[1]*s2)) with(subset(vol, dose=="5"), HSD.test(volu, gen, DFerror=glr, MSerror=pesos[2]*s2)) with(subset(vol, dose=="25"), HSD.test(volu, gen, DFerror=glr, MSerror=pesos[3]*s2)) #------------------------------------------------------------------------------------------ # dose em cada genótipo X <- popMatrix(m2, effect=c("gen", "dos")) contr <- expand.grid(gen=levels(vol$gen), dos=levels(vol$dos)) which(contr$gen=="ATF06B") contr.x <- rbind("0vs5"=X[1,]-X[10,], "0vs25"=X[1,]-X[19,], "5vs25"=X[10,]-X[19,]) contr.x%*%coef(m2) # estimativas dos contrastes contr.x%*%vcov(m2)%*%t(contr.x) summary(glht(m2, linfct=contr.x)) #------------------------------------------------------------------------------------------ # fizemos isso para um único nível de gen, o código abaixo faz para todos lM <- lapply(levels(vol$gen), function(g){ X[contr$gen==g,] }) lM com <- combn(3, 2) compr <- lapply(lM, function(i){ m <- t(apply(com, 2, function(j) i[j[1],]-i[j[2],])) }) names(compr) <- levels(vol$gen) compr lapply(compr, function(g) summary(glht(m2, linfct=g))) #------------------------------------------------------------------------------------------ # colocando os resultados em um gráfico com IC IC <- lapply(compr, function(g) confint(glht(m2, linfct=g))) IC <- lapply(IC, "[[", "confint") #IC[[1]]$confint IC <- do.call(rbind, IC) nm <- apply(com, 2, function(i) paste(levels(vol$dos)[i[1]], levels(vol$dos)[i[2]], sep="vs")) IC <- cbind(expand.grid(compr=nm, gen=levels(vol$gen)), IC) str(IC) require(latticeExtra) segplot(compr~lwr+upr|gen, data=IC) segplot(compr~lwr+upr|gen, data=IC, layout=c(1,9), strip.left=TRUE, strip=FALSE, draw.bands=FALSE, centers=Estimate, segments.fun=panel.arrows, ends="both", angle=90, length=1, unit="mm") segplot(compr~lwr+upr|gen, data=IC, layout=c(1,9), strip.left=TRUE, strip=FALSE, draw.bands=FALSE, centers=Estimate, segments.fun=panel.arrows, ends="both", angle=90, length=1, unit="mm", panel=function(...){ panel.segplot(...) panel.abline(v=0, col=2) }) #------------------------------------------------------------------------------------------