Índice
- O Curso R
-
- Tutoriais
-
- Apostila
-
- 6. Testes de Hipótese (em preparação!)
- Exercícios
-
- Material de Apoio
-
- Área dos Alunos
-
- Cursos Anteriores
-
IBUSP
Outras Insitutições
Linques
Visitantes
Outras Insitutições
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) }
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.
—- Cristiane
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.
— Alexandre Adalardo de Oliveira 2014/04/25 17:02
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.
— Alexandre Adalardo de Oliveira 2014/05/08 09:06