Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2014:alunos:trabalho_final:cmadelaire:start

Carla Madelaire

pb030021.jpg

Doutoranda em Fisiologia Geral, Instituto de Biociências, USP

Currículo lattes

Meus exercícios

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) 
    }
    

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

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. — 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.

Alexandre Adalardo de Oliveira 2014/05/08 09:06

05_curso_antigo/r2014/alunos/trabalho_final/cmadelaire/start.txt · Última modificação: 2020/08/12 06:04 (edição externa)