[R-br] [OFF-Topic] Distribuição Normal e teste de t

Cesar Rabak cesar.rabak em gmail.com
Quinta Maio 1 16:05:11 BRT 2014


Thales,

Considerar a normalidade (ou seja se a distribuição é gaussiana ou não¹)
apenas das diferenças seria estudar um processo diferente. Um processo onde
apenas a distribuição das médias (então que passaríamos a tratar como uma
amostra de uma população de resultados desse processo que gera essas
diferenças).

O que pode ser ou não o caso do OP.

Contudo, em geral, o teste t é um teste para verificar se uma medida de
posição (média) de uma distribuição (assumida ser gaussiana) difere de
outra outra (idem) e como hipótese nula assume-se que as duas amostras
viriam da mesma distribuição e portanto a expectativa (diferença entre as
duas amostras seria zero).

A formulação do teste pareado é feito para aumentar o poder do teste frente
ao conhecimento adicional que o mesmo conjunto de indivíduos está contido
em ambas as amostras, note porém que ainda se usa um outro parâmetro
(estimado da(s) amostra(s)) a variância (ou desvio padrão) nas fórmulas,
mantendo a premissa que os dados viriam de uma distribuição gaussiana.

Nesse caso a hipótese de a distribuição ser gaussiana é mantida para que o
resultado do teste sobre a média possa ser analisado.

HTH

--
Cesar Rabak

[1] Meu ouvido e olhos podem ser distraídos pela palavra "normalidade" que
muitos sentidos diferentes. . .


2014-04-25 13:23 GMT-03:00 Marcos Vital <marcosvital em gmail.com>:

> Olá, Thales
>
> Bom, não estou respondendo a sua dúvida sobre Monte Carlo (não conheço bem
> o método), mas queria fazer uma observação sobre o pressuposto da
> normalidade.
>
> Como o seu teste é pareado, o cálculo do t é feito sobre as diferenças, e
> não sobre os valores brutos. Então acredito que você deva testar a
> normalidade das diferenças entre as variáveis x e y.
>
> Fiz o teste rapidamente com os dados que você incluiu no email, e o
> shapiro agora não rejeita a normalidade. Veja:
>
> dif<-x-y
>
> shapiro.test(dif)
>
>         Shapiro-Wilk normality test
>
> data:  dif
> W = 0.9716, p-value = 0.2683
>
> Considere isso como possibilidade, então, pois é possível que você não
> precise sair do bom e velho teste t.
>
> Abraços
>
> Marcos
>
> Em 25 de abril de 2014 12:00, <r-br-request em listas.c3sl.ufpr.br> escreveu:
>
>> Enviar submissões para a lista de discussão R-br para
>>         r-br em listas.c3sl.ufpr.br
>>
>> Para se cadastrar ou descadastrar via WWW, visite o endereço
>>         https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>> ou, via email, envie uma mensagem com a palavra 'help' no assunto ou
>> corpo da mensagem para
>>         r-br-request em listas.c3sl.ufpr.br
>>
>> Você poderá entrar em contato com a pessoa que gerencia a lista pelo
>> endereço
>>         r-br-owner em listas.c3sl.ufpr.br
>>
>> Quando responder, por favor edite sua linha Assunto assim ela será
>> mais específica que "Re: Contents of R-br digest..."
>>
>>
>> Message: 2
>> Date: Fri, 25 Apr 2014 08:55:04 +0200
>> From: Tropidurus Torquatus <t.torquatus em gmail.com>
>> To: r-br em listas.c3sl.ufpr.br
>> Subject: [R-br] [OFF-Topic] Distribuição Normal e teste de t
>> Message-ID: <E44FD9CC-9263-4D76-91B5-C084EDFB64C7 em gmail.com>
>> Content-Type: text/plain; charset=windows-1252
>>
>>
>> Caros R-users,
>>
>> Coloquei como off-topic pois acredito que esta seja mais uma dúvida
>> conceitual do que de R ppd.
>>
>> Dado que tenho dois conjuntos de dados:
>>
>> x <- c ( 13.772 , 10.119 , 11.224 , 21.999 , 17.181 , 27.477 , 21.693 ,
>> 26.706 , 14.576 , 19.689 , 12.494 , 19.511 , 16.785 , 16.551 , 20.780 ,
>>  0.000 , 25.867 , 28.223 , 26.059 , 21.668 , 18.209 , 20.186 , 28.320 ,
>> 26.946 , 16.218 , 16.814 , 16.859 ,  0.000 ,  0.000 ,  3.986 ,  1.625 ,
>> 17.286 , 28.149 , 19.404 , 21.669 , 22.058 , 14.947 , 14.512 , 21.177 ,
>> 29.997 , 20.958 , 15.123 , 28.932 , 23.807 , 30.589 , 10.208 , 20.076 ,
>> 18.897 , 14.666 , 13.955)
>>
>> y <-  c ( 13.902 , 10.102 , 11.301 , 22.081 , 17.234 , 27.540 , 21.741 ,
>> 26.677 , 14.621 , 19.766 , 12.547 , 19.622 , 16.857 , 16.628 , 20.787 ,
>>  0.000 , 25.943 , 28.313 , 26.166 , 21.724 , 18.255 , 20.307 , 28.387 ,
>> 27.079 , 16.202 , 16.857 , 16.875 ,  0.000 ,  0.000 ,  3.951 ,  1.681 ,
>> 17.353 , 28.273 , 19.422 , 21.724 , 22.164 , 14.902 , 14.458 , 21.174 ,
>> 30.024 , 20.949 , 15.101 , 28.926 , 23.850 , 30.597 , 10.147 , 20.035 ,
>> 18.873 , 14.691 , 13.892)
>>
>> As duas amostras estão pareadas.
>> As duas amostras falham para o teste de normalidade:
>>
>> > shapiro.test ( x )
>>
>>         Shapiro-Wilk normality test
>>
>> data:  testetcompounds$tR...tM.UV.ABC
>> W = 0.9373, p-value = 0.01057
>>
>> > shapiro.test ( y )
>>
>>         Shapiro-Wilk normality test
>>
>> data:  testetcompounds$tR...tM.UV.ABC.Group10
>> W = 0.9372, p-value = 0.01043
>>
>> No livro Bayesian Computation with R
>>
>> Sugere que para distribuições não normais é necessário fazer o teste de
>> Monte Carlo
>>
>> Com a seguinte função
>> =======================================================
>>  tstatistic = function ( y , x )
>>   {
>>   m = length ( y )
>>   n = length ( x )
>>   sp = sqrt( ( ( m - 1 ) * sd ( y ) ^ 2 + ( n - 1 ) * sd ( x ) ^ 2 ) / (
>> m + n - 2 ) )
>>   t = ( mean ( y ) - mean ( x ) ) / ( sp * sqrt ( 1 / m + 1 / n) )
>>   return ( t )
>>   }
>> ========================================================
>> Retornando
>>
>> t = -0.02242564
>>
>> Em seguida o teste:
>> ========================================================
>> alpha = 0.01 ; m = 50 ; n = 50  # sets alpha, m and n ( alpha is the
>> stated significance level, m and n are the samples sizes )
>> N = 10000                                       # sets the number of
>> simulations
>> n.reject = 0                                    # counter of num. of
>> rejections
>> for ( i in 1 : N )
>>   {
>>   x = rnorm ( m , mean = x , sd = x )
>>
>>                                   # simulates xs from population 1
>>   y = rnorm ( n , mean = y , sd = y )
>>
>>                                   # simulates ys from population 2
>>  t = tstatistic ( y , x )                       # computes the t statistic
>>   if ( abs ( t ) > qt ( 1 - alpha / 2 , n + m - 2) )
>>     n.reject = n.reject + 1
>>
>>                                           # reject if |t| exceeds critical
>> pt
>>   }
>> true.sig.level = n.reject/N
>>
>>                                           # est. is proportions of
>> rejections
>> ========================================================
>> Retornando
>>
>> true.sig.level = 0.0049
>>
>>
>> Problema Conceitual
>>
>> 1) Como interpretar esse resultado?
>>
>>
>> Porém ainda há uma diferença entre o t calculado por essa fórmula e o t
>> calculado com o comando t.stat (padrão do R)
>>
>> ================================================================
>> t = t.test ( y , x , mu = 0 , paired = TRUE , var.equal = TRUE ,
>> conf.level = 0.9999 )
>> t
>>
>>         Paired t-test
>>
>> data:  y and x
>> t = 4.6437, df = 49, p-value = 2.594e-05
>> alternative hypothesis: true difference in means is not equal to 0
>> 99.99 percent confidence interval:
>>  0.003082235 0.067077765
>> sample estimates:
>> mean of the differences
>>                 0.03508
>>
>> ================================================================
>>
>> E finalmente? minha média da diferencia é conhecida e não é zero, assim
>> utilizei o seguinte comando:
>>
>> t = t.test ( y , x , mu = 0.87 , paired = TRUE , var.equal = TRUE ,
>> conf.level = 0.9999, alternative = "less? )
>>
>>
>> Paired t-test
>>
>> data:  y and x
>> t = -110.5231, df = 49, p-value < 2.2e-16
>> alternative hypothesis: true difference in means is less than 0.87
>> 99.99 percent confidence interval:
>>        -Inf 0.06545182
>> sample estimates:
>> mean of the differences
>>                 0.03508
>>
>> 2) Problema de Comando? como fazer a simulação de Monte Carlo na situação
>> acima?
>>
>>
>> * Obs.: aceito sugestões de leitura sobre o assunto e comando
>> alternativos para comparar a médias
>>
>>
>> Muito obrigado e me desculpe pelo longo e-mail.
>>
>>
>> Thales
>>
>>
>>
>
> --
> Marcos Vinícius Carneiro Vital
> Universidade Federal de Alagoas
> Instituto de Ciências Biológicas e da Saúde
> Setor de Biodiversidade e Ecologia
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
> código mínimo reproduzível.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20140501/3d763295/attachment.html>


Mais detalhes sobre a lista de discussão R-br