Gráfico para comprovar hipótese de diferença ou não

Ir em baixo

Gráfico para comprovar hipótese de diferença ou não

Mensagem por robertamfs em Sex Out 26, 2018 10:25 pm

Boa noite.
É possível inserir essas infomações marcadas em amarelo, da figura em anexo, com o R? Essa imagem é do artigo do Cumming et al. 2007? Quero aprender a fazer essa previsão sem precisar fazer um teste de hipótese para dois tratamentos com n=4. É possível no R?


Última edição por robertamfs em Sex Nov 09, 2018 12:57 am, editado 2 vez(es)

robertamfs

Mensagens : 30
Data de inscrição : 17/09/2018

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Gráfico para comprovar hipótese de diferença ou não

Mensagem por robertamfs em Sex Out 26, 2018 10:51 pm


robertamfs

Mensagens : 30
Data de inscrição : 17/09/2018

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Gráfico para comprovar hipótese de diferença ou não

Mensagem por Prof. Marcos em Sab Nov 10, 2018 9:27 am

Olá, Roberta, tudo bem?

É possível sim se adicionar tanto os valores do n quanto os demais parâmetros no gráfico, e com certeza podemos também medir o tamanho exato do "gap" entre os erros ou intervalos de confiança.

Note que reproduzir isso não é necessário para se seguir com o tipo de interpretação e conclusão a partir do gráfico: mas não deixa de ser um desafio legal de se tentar resolver!

Eu vou, em breve, tentar gerar um exemplo disso, e posto aqui neste tópico, ok?

Abraços!
avatar
Prof. Marcos

Mensagens : 384
Data de inscrição : 23/12/2015
Idade : 37
Localização : Maceió, AL

Ver perfil do usuário https://cantinhodor.wordpress.com/

Voltar ao Topo Ir em baixo

Re: Gráfico para comprovar hipótese de diferença ou não

Mensagem por robertamfs em Sab Nov 10, 2018 10:57 am

Ok , muito grata professor.

robertamfs

Mensagens : 30
Data de inscrição : 17/09/2018

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Gráfico para comprovar hipótese de diferença ou não

Mensagem por Prof. Marcos em Dom Nov 11, 2018 9:42 am

Pronto, consegui! Fi por um método beeeeeem manual, calculando cada elemento necessário de maneira individual. Com certeza pode ser possível automatizar várias etapas, mas aí seria um trabalho bem maior.

De qualquer forma, acredito que seja possível aproveitar o script e adaptá-lo para diversas outras situações parecidas.

Segue o código, basta copiar e colar no R que ele vai funcionar:

Código:
#Dados e pacote:
data(iris)
summary(iris)
library(sciplot)

#O gráfico sem nada:
lineplot.CI(iris$Species, iris$Sepal.Width, las=1, type="p")

#Calculando os valores das barras de erros:
erros<-tapply(iris$Sepal.Width, iris$Species, se)

#Estes valores são apenas de um dos lados da barra
#Ou seja, representam +-erro padrão
erros

#Se queremos saber o tamanho do "gap" entre as barras, podemos calcular o valor da média + erro padrão de uma das espécies, e média - erro padrão de outra
#Depois basta medir a diferença entre eles, e calcular isso em proporção à média dos dois erros calculados erro padrão

#Então vamos seguir calculando coisas que precisamos
medias<-tapply(iris$Sepal.Width, iris$Species, mean)

#Acho que será mais prático salvar em objetos individuais:
erro.set<-erros["setosa"]
erro.ver<-erros["versicolor"]
erro.vir<-erros["virginica"]
media.set<-medias["setosa"]
media.ver<-medias["versicolor"]
media.vir<-medias["virginica"]

#Calculando as diferenças:
dif.set.ver<-(media.set-erro.set)-(media.ver+erro.ver)
dif.set.vir<-(media.set-erro.set)-(media.vir+erro.vir)
dif.ver.vir<-(media.vir-erro.vir)-(media.ver+erro.ver)

#Vendo os valores, estes são os "gaps brutos", sem serem transformados em proporções:
dif.set.ver
dif.set.vir
dif.ver.vir

#Agora vamos ver o quanto estas diferenças valem proporcionalmente ao erro médio das duas barras sendo comparadas
#Podemos fazer isso para todas as comparações, mas no gráfico acho que o melhor é usar apenas a primeira e a terceira, senão pode ficar confuso e poluído demais
#Mas primeiro precisamos calcular os erros médios:
errom.set.ver<-mean(c(erro.set, erro.ver))
errom.set.vir<-mean(c(erro.set, erro.vir))
errom.ver.vir<-mean(c(erro.ver, erro.vir))

#Agora podemos calcular as proporções, o que no artigo é chamado de "gap":
gap.set.ver<-dif.set.ver/errom.set.ver
gap.set.vir<-dif.set.vir/errom.set.vir
gap.ver.vir<-dif.ver.vir/errom.ver.vir
  
#Olhando os valores:
gap.set.ver
gap.set.vir
gap.ver.vir

#Todos são acima de 2, o que mesmo com um n amostral baixo, já indicaria um p<0,05
#E neste caso o esforço amostral é alto: 50 unidades amostrais de cada espécie!

#O importante é a interpretação, mas para ilustrar vamos tentar colocar no gráfico
#Vou aeitar a escala do eixo y, pra ter mais espaço útil:
lineplot.CI(iris$Species, iris$Sepal.Width, las=1, type="p", ylim=c(2.5, 4))

text(x=1, y=media.set+erro.set+0.1, "n=50")
text(x=2, y=media.ver+erro.ver+0.1, "n=50")
text(x=3, y=media.vir+erro.vir+0.1, "n=50")

text(x=1.1, y=media.set-erro.set, ".......")
text(x=1.9, y=media.ver+erro.ver, ".......")

text(x=2.1, y=media.ver+erro.ver, ".......")
text(x=2.9, y=media.vir-erro.vir, ".......")

text(x=1.5, y=mean(c(media.set, media.ver)), paste("gap=", round(gap.set.ver, 1)))
text(x=2.5, y=mean(c(media.ver, media.vir)), paste("gap=", round(gap.ver.vir, 1)))

    
    
avatar
Prof. Marcos

Mensagens : 384
Data de inscrição : 23/12/2015
Idade : 37
Localização : Maceió, AL

Ver perfil do usuário https://cantinhodor.wordpress.com/

Voltar ao Topo Ir em baixo

Re: Gráfico para comprovar hipótese de diferença ou não

Mensagem por Prof. Marcos em Dom Nov 11, 2018 9:46 am


avatar
Prof. Marcos

Mensagens : 384
Data de inscrição : 23/12/2015
Idade : 37
Localização : Maceió, AL

Ver perfil do usuário https://cantinhodor.wordpress.com/

Voltar ao Topo Ir em baixo

Re: Gráfico para comprovar hipótese de diferença ou não

Mensagem por robertamfs em Dom Nov 11, 2018 11:13 am

Muito grata .

Essas fórmulas de médias não dera certo, aí fiz outra que está abaixo e deu certo aqui para mim:
#media.set<-medias["setosa"] ##não deu certo
media.set<-c(iris$Sepal.Width, iris$Species["setosa"], mean) #deu certo
#media.ver<-medias["versicolor"] ##não deu certo
media.set<-c(iris$Sepal.Width, iris$Species["versicolor], mean) #deu certo
#media.vir<-medias["virginica"] ##não deu certo
media.set<-c(iris$Sepal.Width, iris$Species["virginica"], mean) #deu certo

Essas outras fórmulas também não consegui rodar, deu erro (Error in media.set - erro.set : non-numeric argument to binary operator):
#Calculando as diferenças:
dif.set.ver<-(media.set-erro.set)-(media.ver+erro.ver)
dif.set.vir<-(media.set-erro.set)-(media.vir+erro.vir)
dif.ver.vir<-(media.vir-erro.vir)-(media.ver+erro.ver)
#Vendo os valores, estes são os "gaps brutos", sem serem transformados em proporções:
dif.set.ver
dif.set.vir
dif.ver.vir

SCRIPT RODADO NO MEU COMPUTADOR
> #Dados e pacote:
> data(iris)
> summary(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100 setosa :50
1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300 versicolor:50
Median :5.800 Median :3.000 Median :4.350 Median :1.300 virginica :50
Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
> library(sciplot)
>
> #O gráfico sem nada:
> lineplot.CI(iris$Species, iris$Sepal.Width, las=1, type="p")
>
> #Calculando os valores das barras de erros:
> erros<-tapply(iris$Sepal.Width, iris$Species, se)
>
> #Estes valores são apenas de um dos lados da barra
> #Ou seja, representam +-erro padrão
> erros
setosa versicolor virginica
0.05360780 0.04437778 0.04560791
>
> #Se queremos saber o tamanho do "gap" entre as barras, podemos calcular o valor da média + erro padrão de uma das espécies, e média - erro padrão de outra
> #Depois basta medir a diferença entre eles, e calcular isso em proporção à média dos dois erros calculados erro padrão
>
> #Então vamos seguir calculando coisas que precisamos
> medias<-tapply(iris$Sepal.Width, iris$Species, mean)
>
> #Acho que será mais prático salvar em objetos individuais:
> #erro.set<-erros["setosa"]##não deu certo
> erro.set<-c(iris$Sepal.Width, iris$Species["setosa"], mean)
> #erro.ver<-erros["versicolor"]##não deu certo
> erro.ver<-c(iris$Sepal.Width, iris$Species["versicolor"], mean)
> #erro.vir<-erros["virginica"]##não deu certo
> erro.vir<-c(iris$Sepal.Width, iris$Species["virginica"], mean)
>
> #media.set<-medias["setosa"] ##não deu certo
> media.set<-c(iris$Sepal.Width, iris$Species["setosa"], mean)
> #media.ver<-medias["versicolor"] ##não deu certo
> media.set<-c(iris$Sepal.Width, iris$Species["versicolor], mean)
+ #media.vir<-medias["virginica"] ##não deu certo
Error: unexpected symbol in:
"media.set<-c(iris$Sepal.Width, iris$Species["versicolor], mean)
#media.vir<-medias["virginica"
> media.set<-c(iris$Sepal.Width, iris$Species["virginica"], mean)
>
>
> #Calculando as diferenças:
> dif.set.ver<-(media.set-erro.set)-(media.ver+erro.ver))
Error: unexpected ')' in "dif.set.ver<-(media.set-erro.set)-(media.ver+erro.ver))"
> dif.set.vir<-(media.set-erro.set)-(media.vir+erro.vir)
Error in media.set - erro.set : non-numeric argument to binary operator
> dif.ver.vir<-(media.vir-erro.vir)-(media.ver+erro.ver)
Error: object 'media.vir' not found
>
> #Vendo os valores, estes são os "gaps brutos", sem serem transformados em proporções:
> dif.set.ver
Error: object 'dif.set.ver' not found
> dif.set.vir
Error: object 'dif.set.vir' not found
> dif.ver.vir
Error: object 'dif.ver.vir' not found
>
> #Agora vamos ver o quanto estas diferenças valem proporcionalmente ao erro médio das duas barras sendo comparadas
> #Podemos fazer isso para todas as comparações, mas no gráfico acho que o melhor é usar apenas a primeira e a terceira, senão pode ficar confuso e poluído demais
> #Mas primeiro precisamos calcular os erros médios:
> errom.set.ver<-mean(c(erro.set, erro.ver))
Warning message:
In mean.default(c(erro.set, erro.ver)) :
argument is not numeric or logical: returning NA
> errom.set.vir<-mean(c(erro.set, erro.vir))
Warning message:
In mean.default(c(erro.set, erro.vir)) :
argument is not numeric or logical: returning NA
> errom.ver.vir<-mean(c(erro.ver, erro.vir))
Warning message:
In mean.default(c(erro.ver, erro.vir)) :
argument is not numeric or logical: returning NA
>
> #Agora podemos calcular as proporções, o que no artigo é chamado de "gap":
> gap.set.ver<-dif.set.ver/errom.set.ver
Error: object 'dif.set.ver' not found
> gap.set.vir<-dif.set.vir/errom.set.vir
Error: object 'dif.set.vir' not found
> gap.ver.vir<-dif.ver.vir/errom.ver.vir
Error: object 'dif.ver.vir' not found
>
> #Olhando os valores:
> gap.set.ver
Error: object 'gap.set.ver' not found
> gap.set.vir
Error: object 'gap.set.vir' not found
> gap.ver.vir
Error: object 'gap.ver.vir' not found
>
> #Todos são acima de 2, o que mesmo com um n amostral baixo, já indicaria um p<0,05
> #E neste caso o esforço amostral é alto: 50 unidades amostrais de cada espécie!
>
> #O importante é a interpretação, mas para ilustrar vamos tentar colocar no gráfico
> #Vou aeitar a escala do eixo y, pra ter mais espaço útil:
> lineplot.CI(iris$Species, iris$Sepal.Width, las=1, type="p", ylim=c(2.5, 4))
>
> text(x=1, y=media.set+erro.set+0.1, "n=50")
Error in media.set + erro.set : non-numeric argument to binary operator
> text(x=2, y=media.ver+erro.ver+0.1, "n=50")
Error in text.default(x = 2, y = media.ver + erro.ver + 0.1, "n=50") :
object 'media.ver' not found
> text(x=3, y=media.vir+erro.vir+0.1, "n=50")
Error in text.default(x = 3, y = media.vir + erro.vir + 0.1, "n=50") :
object 'media.vir' not found
>
> text(x=1.1, y=media.set-erro.set, ".......")
Error in media.set - erro.set : non-numeric argument to binary operator
> text(x=1.9, y=media.ver+erro.ver, ".......")
Error in text.default(x = 1.9, y = media.ver + erro.ver, ".......") :
object 'media.ver' not found
>
> text(x=2.1, y=media.ver+erro.ver, ".......")
Error in text.default(x = 2.1, y = media.ver + erro.ver, ".......") :
object 'media.ver' not found
> text(x=2.9, y=media.vir-erro.vir, ".......")
Error in text.default(x = 2.9, y = media.vir - erro.vir, ".......") :
object 'media.vir' not found
>
> text(x=1.5, y=mean(c(media.set, media.ver)), paste("gap=", round(gap.set.ver, 1)))
Error in mean(c(media.set, media.ver)) : object 'media.ver' not found
> text(x=2.5, y=mean(c(media.ver, media.vir)), paste("gap=", round(gap.ver.vir, 1)))
Error in mean(c(media.ver, media.vir)) : object 'media.ver' not found
>

robertamfs

Mensagens : 30
Data de inscrição : 17/09/2018

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Gráfico para comprovar hipótese de diferença ou não

Mensagem por Prof. Marcos em Dom Nov 11, 2018 1:04 pm

Oi, Roberta!

Você executou os comandos na ordem, do começo ao fim do script?

Por exemplo, este comando:
media.set<-medias["setosa"] ##não deu certo
Só vai funcionar se você tiver criado o objeto medias antes, este:
medias<-tapply(iris$Sepal.Width, iris$Species, mean)

Os erros que aparecem mais à frente, como este:
object 'media.ver' not found
Devem ter acontecido porque os objetos não foram criados antes com os nomes corretos.

Confira tudo, tendo certeza de que está copiando e executando o script inteiro, ok? Aí, caso aconteça algum erro, vamos vendo por partes, sempre começando do primeiro: os erros que seguem depois podem ser apenas um "efeito cascata", então não adianta tentar entendê-los sem resolver os primeiros.

Abraços!
avatar
Prof. Marcos

Mensagens : 384
Data de inscrição : 23/12/2015
Idade : 37
Localização : Maceió, AL

Ver perfil do usuário https://cantinhodor.wordpress.com/

Voltar ao Topo Ir em baixo

Re: Gráfico para comprovar hipótese de diferença ou não

Mensagem por robertamfs em Dom Nov 11, 2018 2:22 pm

Refiz e deu certinho agora.

Devo ter deixado alguma linha para trás antes, embora tenha repetido algumas vezes.

Muito grata.



robertamfs

Mensagens : 30
Data de inscrição : 17/09/2018

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Gráfico para comprovar hipótese de diferença ou não

Mensagem por Prof. Marcos em Dom Nov 11, 2018 5:23 pm

Por nada! Espero que o código seja útil. Smile
avatar
Prof. Marcos

Mensagens : 384
Data de inscrição : 23/12/2015
Idade : 37
Localização : Maceió, AL

Ver perfil do usuário https://cantinhodor.wordpress.com/

Voltar ao Topo Ir em baixo

Re: Gráfico para comprovar hipótese de diferença ou não

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum