Como pequenos valores de


63

Para alguns testes R, existe um limite mais baixo nos cálculos do de . Não sei por que é esse número, se há uma boa razão para isso ou se é apenas arbitrário. Muitos outros pacotes de estatísticas são acessados , então esse é um nível de precisão muito mais alto. Mas não tenho visto muitos trabalhos relatando ou .2,2210-160.0001p<2,2210-16p=2,2210-16

É uma prática comum / recomendável relatar esse valor calculado ou é mais comum relatar outra coisa (como p < 0.000000000000001)?


Se você obtiver um valor p tão pequeno e desejar calcular o valor p real, poderá usar esta função em excel = TDIST (t, df, 2) Adicione os valores de seus 't' e df e obterá o valor real Valor-p ta

7
@ Tazeeb, existe alguma razão para o Excel retornar uma estimativa mais precisa do que R ..? Até onde eu sei, é muito menos preciso.
Tim

...But I haven't seen too many papers reporting p<2.22⋅10−16....Veja alguns artigos da GWAS , existem muitos artigos mostrando resultados para pvalores em centenas, por exemplo: região KLK do câncer de próstata, p = 9x10 ^ -186.
Zx8754

1
Consulte também a resposta do whuber aqui: stats.stackexchange.com/questions/11812 .
ameba diz Restabelecer Monica

Respostas:


87

Há uma boa razão para isso.

O valor pode ser encontrado via noquote(unlist(format(.Machine)))

           double.eps        double.neg.eps           double.xmin 
         2.220446e-16          1.110223e-16         2.225074e-308 
          double.xmax           double.base         double.digits 
        1.797693e+308                     2                    53 
      double.rounding          double.guard     double.ulp.digits 
                    5                     0                   -52 
double.neg.ulp.digits       double.exponent        double.min.exp 
                  -53                    11                 -1022 
       double.max.exp           integer.max           sizeof.long 
                 1024            2147483647                     4 
      sizeof.longlong     sizeof.longdouble        sizeof.pointer 
                    8                    12                     4 

Se você olhar para a ajuda, ( ?".Machine"):

double.eps  

the smallest positive floating-point number x such that 1 + x != 1. It equals 
double.base ^ ulp.digits if either double.base is 2 or double.rounding is 0; 
otherwise, it is (double.base ^ double.ulp.digits) / 2. Normally 2.220446e-16.

É essencialmente um valor abaixo do qual você pode estar bastante confiante de que o valor será bastante numericamente sem sentido - pois qualquer valor menor provavelmente não será um cálculo preciso do valor que estávamos tentando calcular. (Tendo estudado um pouco de análise numérica, dependendo de quais cálculos foram executados pelo procedimento específico, há uma boa chance de a falta de sentido numérico ser muito superior a isso.)

Mas o significado estatístico terá sido perdido muito antes. Observe que os valores p dependem de suposições e, quanto mais longe você for, mais fortemente o valor p verdadeiro (em vez do valor nominal que calculamos) será afetado pelas suposições equivocadas, em alguns casos, mesmo quando elas só está um pouco errado. Como as suposições simplesmente não serão totalmente satisfeitas, os valores p médios podem ser razoavelmente precisos (em termos de precisão relativa, talvez apenas por uma fração modesta), mas valores p extremamente pequenos podem estar fora de muitas ordens de magnitude.

O que quer dizer que a prática usual (algo como "<0,0001", que você diz ser comum em pacotes, ou a regra da APA que Jaap menciona em sua resposta) provavelmente não está tão longe da prática sensata, mas o ponto aproximado em que as coisas perder o significado além de dizer ' é muito pequeno ', é claro, variará bastante, dependendo das circunstâncias.

Essa é uma das razões pelas quais não posso sugerir uma regra geral - não pode haver uma única regra que seja remotamente adequada para todos em todas as circunstâncias - mude um pouco as circunstâncias e a ampla linha cinza marcando a mudança de algo significativo para relativamente sem sentido vai mudar, às vezes por um longo caminho.

Se você fosse para especificar informações suficientes sobre as circunstâncias exatas (por exemplo, é uma regressão, com este muito não-linearidade, que quantidade de variação nesta variável independente, este tipo e quantidade de dependência no termo de erro, que tipo de e quantidade de heterocedasticidade, essa forma de distribuição de erros), eu poderia simular valores p 'verdadeiros' para você comparar com os valores nominais p, para que você pudesse ver quando eles eram muito diferentes para o valor nominal ter algum significado.

Mas isso nos leva à segunda razão pela qual - mesmo se você especificou informações suficientes para simular os verdadeiros valores-p - eu ainda não conseguia declarar responsavelmente um corte para essas circunstâncias.

O que você denuncia depende das preferências das pessoas - a sua e o seu público. Imagine que você me contou o suficiente sobre as circunstâncias para eu decidir que queria traçar a linha com um nominal de 10 - 6 .p10-6

Tudo bem, podemos pensar - exceto sua própria função de preferência (o que parece certo para você, você deve observar a diferença entre os valores-p nominais dados pelos pacotes de estatísticas e os resultantes da simulação quando você supõe um conjunto específico falhas de suposições) pode colocá-lo em e os editores do periódico ao qual você deseja enviar podem ter sua regra geral cortada em 10 - 4 , enquanto o próximo periódico pode colocá-lo em 10 - 3 e o o próximo pode não ter regra geral e o editor específico que você recebeu pode aceitar valores ainda mais baixos do que eu forneci ... mas um dos árbitros pode ter um corte específico!10-510-410-3

Na falta de conhecimento de suas funções e regras de preferência, e na falta de conhecimento de seus próprios utilitários, como sugiro responsavelmente qualquer escolha geral de quais ações executar?

Posso pelo menos dizer o tipo de coisa que faço (e não sugiro que seja uma boa escolha para você):

10-610-510-4

Isso é certamente útil para informar uma escolha - mas é mais provável que eu discuta os resultados da simulação que os use para escolher um valor de corte, dando aos outros a chance de escolherem o seu.

Uma alternativa à simulação é examinar alguns procedimentos mais robustos * para as várias falhas potenciais de suposição e ver quanta diferença em relação ao valor-p pode fazer. Seus valores-p também não serão particularmente significativos, mas pelo menos dão uma noção de quanto impacto pode haver. Se algumas são muito diferentes da nominal, também dá mais uma idéia de quais violações de suposições devem ser investigadas. Mesmo que você não relate nenhuma dessas alternativas, ele fornece uma imagem melhor de quão significativo é seu pequeno valor-p.

* Observe que aqui realmente não precisamos de procedimentos que sejam robustos a violações graves de alguma suposição; aqueles que são menos afetados por desvios relativamente leves da suposição relevante devem ser bons para este exercício.

Eu direi que quando / se você vier a fazer essas simulações, mesmo com violações bastante leves, em alguns casos, pode ser surpreendente até que ponto os valores p não tão pequenos podem estar errados. Isso fez mais para mudar a maneira como interpreto pessoalmente um valor p mais do que mudou os pontos de corte específicos que eu poderia usar.

Ao enviar os resultados de um teste de hipóteses real para um diário, tento descobrir se eles têm alguma regra. Caso contrário, tendem a me agradar e espero que os árbitros se queixem.


11
Gosto especialmente do comentário sobre o significado estatístico ter sido perdido muito antes.
usεr11852 diz Reinstate Monic

Ótima resposta! Aprecio todos os detalhes sobre isso, esclarece por que R fornece esse número. Mas isso realmente não responde à pergunta sobre o que denunciar.
7133 paul

1
Achei que havia abordado a questão, no sentido de explicar por que não era responsável fazer uma sugestão específica. Observe que discuto por que faz sentido relatar algo como o "<0.0001" que é prática comum em alguns pacotes. Existem algumas razões pelas quais eu não sugiro um número específico - o primeiro dos quais eu dei. Vou expandir esse motivo e o segundo em uma edição.
Glen_b

paul, eu adicionei uma discussão mais substancial.
Glen_b

2
Sim, você precisa fazer alguma coisa; o objetivo do meu comentário mais extenso era transmitir que não posso lhe dizer o que você deve optar por fazer; só posso discutir os problemas que surgem à sua escolha. Espero ter feito isso, mas fico feliz em tentar esclarecer mais questões, se puder.
Glen_b

27

Qual prática comum pode depender do seu campo de pesquisa. O manual da American Psychological Association (APA), que é um dos estilos de citação mais usados, declara (p. 139, 6ª edição):

Não use nenhum valor menor que p <0,001


8
Embora seja também o que cito (+1), também não tenho certeza se é necessário revisar ou não esta recomendação com uma casa decimal, dada a recente recomendação de Valen Johnson no PNAS : "Torne 0,005 o nível de significância padrão [ ...]. Associe resultados de testes altamente significativos a valores de P inferiores a 0,001. "
Henrik

3
Boa resposta. Não há guias de estilo nem padrões reais em meus campos, pelo menos não para valores-p. Eu trabalho interdisciplinarmente, mas acho que a ciência da computação e o HCI seriam o campo para isso. Penso que o estilo da APA seria para onde os autores se voltariam, uma vez que os métodos são geralmente emprestados de psicologia cognitiva ou de outras áreas que a APA cobriria.
7133 paul

10
5σp<106

1
5σzpp0.0001zp

@amoeba Sim, acho que você está certo.
Glen_b

14

Esses valores p extremos ocorrem com mais frequência em campos com quantidades muito grandes de dados, como genômica e monitoramento de processos. Nesses casos, às vezes é relatado como -log 10 (valor-p). Veja, por exemplo, esta figura da Nature , onde os valores de p vão para 1e-26.

-log 10 (valor-p) é chamado "LogWorth" pelos estatísticos com quem trabalho no JMP.


22
ppp

8
@BenBolker De fato, embora menos provável do que "a NSA adulterou seus dados", até eventos como "Um raio cósmico sacudiu vários bits importantes em seus dados" são muito, muito mais prováveis ​​do que essas probabilidades.
Glen_b

6
p<10100ρ0.9n500

8
p=2.2×10226

9
@amoeba Na seção de comentários do Slate Star Codex, Daniel Wells observa que science.sciencemag.org/content/363/6425/eaau1043 relata um valor p de 3,6e-2382 ("não é um erro de digitação, dois mil ", diz Daniel ), que supera a sua por uma margem considerável!
Mark Amery

-3

em R, "<2e-16" não significa literalmente <2e-16, mas significa que o valor é tão pequeno que R não pode registrá-lo ou exibi-lo.

No teste de regressão, muitas vezes eu recebo p tão pequeno quanto 4.940656e-324, quando gera "<2e-16", esse é um número ainda menor que 4.940656e-324


Qual número é " ainda menor que 4.940656e-324 "?
Sven Hohenstein

8
Sua declaração " em R", <2e-16 "não significa que literalmente <2e-16 " está incorreta. Quando R é exibido <2e-16, o valor é menor que 2e-16, literalmente.
Sven Hohenstein

Você entendeu mal o que eu disse. Quando R disse "<2e-16", o valor de p é menor que 2e-16, mas não significa que o valor de p menor que 2e-16 seja exibido como "<2e-16". Como mostrei, R não tem nenhum problema para exibir no valor de p de resumo lm qualquer número entre [4.940656e-324, 2e-16], enquanto o limite esquerdo é 2 ^ -1074. Portanto, suponho que somente quando o valor p for menor que 2 ^ -1074, R dirá que o valor p é menor que um valor delta pequeno. Acontece que R exibe esse valor delta como 2e-16. Então, meu palpite é "<2e-16" na verdade significa "<2 ^ -1074" em p-valores
user3590816

6
Seu palpite, no entanto, está incorreto: é o que o @Sven está tentando lhe dizer. Consulte a ajuda format.pvalou experimente, como em format.pval(1e-16).
whuber
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.