====== Carla Madelaire ====== {{:bie5782:01_curso_atual:alunos:trabalho_final:cmadelaire:pb030021.jpg?200|}} Doutoranda em Fisiologia Geral, Instituto de Biociências, USP [[http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4248326U0|Currículo lattes]] ===== Meus exercícios ===== [[.:exec|exercicio 1]] {{:bie5782:01_curso_atual:alunos:trabalho_final:cmadelaire:exercicio.r|exercicio tutorial 4}} {{:bie5782:01_curso_atual:alunos:trabalho_final:cmadelaire:exercicio1.r|exercicio tutorial 5}} {{:bie5782:01_curso_atual:alunos:trabalho_final:cmadelaire:7-2.r|exercicio tutorial 7}} {{:bie5782:01_curso_atual:alunos:trabalho_final:cmadelaire:7-2.r|exercicio tutorial 7b}} {{:bie5782:01_curso_atual:alunos:trabalho_final:cmadelaire:analiseexplot.r|exercicio 9}} ===== Trabalho final ===== Proposta de trabalho final Proposta 1 Na minha tese de doutorado, estudo padrões sazonais de características fisiológicas em anuros. Um dos dados que coleto referem-se a um protoloco experimental no qual injeto uma solução de fitohemaglutinina (proteína que desencadeia uma resposta inflamatória) na planta da pata de anuros. A resposta inflamatória é mensurada por meio de medidas de inchaço ao longo do tempo. Em outro grupo controle, faço a injeção de solução salina na planta da pata. Minha proposta é otimizar essa análise, elaborando uma função que me devolva a estatística descritiva e um gráfico dos dados dos dois grupos. Proposta 1 - reelaborada esta função tem o objetivo de auxiliar na representação e análise de variáveis que sejam obtidas ao longo do tempo, ao utilizar esta função o usuário obterá os seguintes itens: -um gráfico com duas variáveis, uma variável numérica (y) em função de uma variável temporal (x); a variável numérica terá representado média e desvio padrão, os pontos de cada valor X tempo serão conectados por uma linha que será desenhada no gráfico. -a estatística descritiva do vetor de valores; -análise de variância dos dados para informar se as medidas diferem ao longo do tempo; Proposta 1 - re-reelaborada Protocolos experimentais de farmacologia e fisiologia tem o objetivo de testar o efeito da administração de uma solução (droga inibidora ou estimuladora, hormônios, entre outros) na atividade de organismos, órgãos, células, receptores ou moléculas. Geralmente, neste tipo de teste são usados 2 grupos experimentais: 1)Controle - no qual é administrado apenas solução salina ou veículo 2)Teste - no qual é administrado a substância que se pretende avaliar o efeito. Após a administração da solução salina/veículo e solução experimental nos respectivos grupos, é feito um acompanhamento, ao longo do tempo, da atividade que acredita-se estar sendo influenciada pela substância experimental. Pensando nisso, a função desenvolvida por mim pretende otimizar a análise desses dados, calculando a estatística descritiva dos dados coletados por horário e grupo, apresentando um gráfico exploratório e mostrando se há diferença estatística nas medidas encontradas. Help granulosa() R Documentation package: ggplot2,grid *Função para otimização de análise de experimentos farmacológicos conduzidos em dois grupos experimentais e com acompanhamento de resultados ao longo do tempo* Descrição: - Calcula a estatística descritiva de dados coletados ao longo do tempo em dois diferentes grupos; - Analisa se há diferença estatística das medidas entre grupos levando em conta o fator horário (ANOVA para medidas repetidas considerando o fator horário); - Plota um gráfico exploratório dos dados. Uso: granulosa (Horário,IndivíduoG1,Grupo1,IndivíduosG2,Grupo2) Argumentos: - Horário,IndivíduoG1,Grupo1,IndivíduosG2,Grupo2: - Horario é um vetor de valores de cada momento das medidas; - IndivíduoG1 é um vetor de letras ou números que identifica os indivíduos do Grupo 1; - Grupo1 é um vetor de valores dos dados obtidos para o Grupo 1, ao longo do tempo; - IndivíduoG2 é um vetor de letras ou números que identifica os indivíduos do Grupo 2; - Grupo2 é um vetor de valores dos dados obtidos para o Grupo 2, ao longo do tempo; *importante ressaltar que os vetores de identificação dos indivíduos deve apresentar letras/valores diferentes para o Grupo 1 e Grupo 2 e devem ser coerentes, ou seja, se os indivíduos do grupo 1 estão representado por letras, os indivíduos do grupo 2 também devem ser representados por letras. Resultados obtidos: - Retorna uma lista com a média, mediana, mínimo e máximo dos valores por horário e por grupo; - Retorna uma lista com a média, mediana, mínimo, máximo e quantils do grupo 1 e grupo 2; - Retorna o sumário de uma ANOVA para medidas repetidas considerando o fator horário; - Retorna um gráfico exploratório dos dados; Exemplo: granulosa(Horário,IndivíduoG1,Grupo1,IndivíduosG2,Grupo2) Horário <- c(1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10) IndivíduosG1<-c("A","B","C","D","E","F","G","H","I","J","A","B","C","D","E","F","G","H","I","J") Grupo1<- rnorm(20, mean=8, sd=2) IndivíduosG2<-c("a","b","c","d","e","f","g","h","i","j","a","b","c","d","e","f","g","h","i","j") Grupo2<-rnorm(20, mean=10, sd=2) Autora Carla Bonetti Madelaire e-mail: cmadelaire@yahoo.com.br Código da função granulosa<-function(Horário,IndivíduoG1,Grupo1,IndivíduosG2,Grupo2) { Y<-c(Grupo1,Grupo2) N<-length(Grupo1) Grupo<-rep(c("Grupo 1","Grupo 2"),each=N) X<-c(Horário,Horário) Indivíduos<-c(IndivíduosG1,IndivíduosG2) data<-data.frame(Indivíduos,Grupo,X,Y) mediaporhora<-with(data, tapply(Y, list(Grupo,X), mean)) desviopadraoporhora<-with(data, tapply(Y, list(Grupo,X), sd)) medianaporhora<-with(data, tapply(Y, list(Grupo,X), median)) minimoporhora<-with(data, tapply(Y, list(Grupo,X), min)) maximoporhora<-with(data, tapply(Y, list(Grupo,X), max)) lista1<-list(mediaporhora,desviopadraoporhora,medianaporhora,minimoporhora,maximoporhora) names(lista1)<-c("Média por hora","Desvio padrão por hora","Mediana por hora","Mínimo por hora","Máximo por hora") data$Grupo = factor(data$Grupo, levels=c("Grupo 1","Grupo 2")) mediadogrupo<-tapply(data$Y,data$Grupo,mean) desviooadraoporgrupo<-tapply(data$Y,data$Grupo, sd) medianaporgrupo<-tapply(data$Y,data$Grupo, median) minimoporgrupo<-tapply(data$Y,data$Grupo, min) maximoporgrupo<-tapply(data$Y,data$Grupo, max) lista2<-list(mediadogrupo,desviooadraoporgrupo,medianaporgrupo,minimoporgrupo,maximoporgrupo) names(lista2)<-c("Média por grupo","Desvio padrão por grupo","Mediana por grupo","Mínimo por grupo","Máximo por grupo") quantil<-tapply(data$Y,data$Grupo, quantile) names(quantil)<-c("Quantils Grupo 1", "Quantils Grupo 2") aov.out <- aov(X ~ Grupo * Y + Error(Indivíduos/Y), data=data) sumario<-summary(aov.out) data2<-data.frame(Grupo1,Grupo2,Horário) g1<-tapply(data2$Grupo1,data2$Horário,mean) g2<-tapply(data2$Grupo2,data2$Horário,mean) Y<-c(g1,g2) X<-Horário M<-length(g1) Grupo<-rep(c("Grupo 1","Grupo 2"),each=M) erropadrao1<-(sd(Grupo1))/(sqrt(M)) erropadrao2<-(sd(Grupo2))/(sqrt(M)) erropadrão <- c(erropadrao1,erropadrao2) press<-data.frame(X,Y,erropadrão,Grupo) f1 = ggplot(data = press, aes(x = X, y = Y, Grupo = Grupo) ) f2 <- f1 + geom_errorbar(aes(ymin = Y - erropadrão, ymax = Y + erropadrão), width=0.3) + geom_line() + geom_point(aes(shape=Grupo, fill=Grupo), size=5) f3 <- f2 + scale_x_continuous("Tempo") + scale_y_continuous("Medida") + scale_shape_manual(values=c(24,21)) + scale_fill_manual(values=c("white","black")) + theme_bw() lista4<-list(sumario,f3) names(lista4)<-c("Sumário ANOVA", "Gráfico exploratório") listafinal<-list(lista1,lista2,lista3,lista4) return(listafinal) } {{:bie5782:01_curso_atual:alunos:trabalho_final:cmadelaire:trabalhofinalpostado.r|Script da função com comentários explicativos em todas as linhas}} Carla, a sua proposta 1 está um pouco vaga . De que gráficos e medidas descritivas você está falando.? Pelo que pude entender, uma possibilidade seria plotar o tamanho do edema em função do tempo. É isso? Se for esse o caso, uma simples lm() resolveria e sua função não estaria acrescentando nada novo. Já a proposta B está excessivamente simples, pois , pelo que percebi, a sua função estaria simplesmente somando minutos a partir de determinada hora. Por favor, tente desenvolver mais suas propostas para eu poder ajuda-la. ----//[[millan.cristiane@gmail.com.br| Cristiane]]// ====== Mais Comentários I ====== //**__Comentários__**// Concordo com os comentários da Cris. DEVE descrever melhor o que a função fará, o formato dos dados de entrada, quais argumentos terá e o tipo e estrutura do objeto e gráficos de saída . Fique com o primeiro, mas tente colocar em um contexto mais geral Veja algumas dicas de como estruturar a proposta que incluímos no wiki: http://ecologia.ib.usp.br/bie5782/doku.php?id=bie5782:01_curso_atual:alunos:trabalho_final:start#a_proposta \\ Aguardamos suas correções! Avise a Cris quando terminar via email acima para ela ou eu darmos uma olhada. --- //[[aleadalardo@gmail.com|Alexandre Adalardo de Oliveira]] 2014/04/25 17:02// ====== Mais Comentários I ====== Carla, deve manter todas as propostas no wiki. Não apague nenhuma delas para termos o histórico documentado. Sua proposta reelaborada é simples e deve ter cuidado para executá-la. Uma função que faça um bom gráfico geral é uma possibilidade, mas deve ser algo que ofereça algum desafio com o risco de fazer uma função muito básica, o que compromete sua avaliação. Na sua descrição não conseguimos reconhecer o desafio que essa função representa. Além disso, uma variavel contínua (y) e uma "temporal" (x) (tb. contínua), não estão no âmbito da ANOVA. ---- **Sugestão**: uma função que receba uma variável continua e uma categórica e faça um gráfico com médias e intervalos de confiança para cada nivel da categórica e rode uma anova, retornando uma tabela de ANOVA além do gráfico. Note que para isso ser um desafio vc. teria que fazer tudo usando apenas as funções básicas de gráfico e (points, lines, segments) e fazer a anova tb. usando apenas as funções aritméticas básicas, se usar as funções prontas, a sua função teria apenas duas linhas... o que não é adequado para o trabalho final. --- //[[aleadalardo@gmail.com|Alexandre Adalardo de Oliveira]] 2014/05/08 09:06//