¿Cómo se deben informar los pequeños valores ? (¿y por qué R pone un mínimo en 2.22e-16?)

63

Para algunas pruebas en R, hay un límite inferior en los cálculos del de . No estoy seguro de por qué es este número, si hay una buena razón para ello o si es arbitrario. A muchos otros paquetes de estadísticas solo se accede , por lo que este es un nivel de precisión mucho más alto. Pero no he visto demasiados documentos que informan o .2,2210-dieciséis0.0001pags<2,2210-dieciséispags=2,2210-dieciséis

¿Es una práctica común / mejor informar este valor calculado o es más típico informar algo más (como p < 0.000000000000001)?

Pablo
fuente
Si obtiene un valor p tan pequeño y desea calcular el valor p real, puede usar esta función en excel = TDIST (t, df, 2) Agregue los valores de su 't' y df y obtendrá el valor real p-value ta
77
@Tahzeeb ¿hay alguna razón por la cual Excel devolvería una estimación más precisa que R ..? Que yo sepa, es mucho menos preciso.
Tim
...But I haven't seen too many papers reporting p<2.22⋅10−16....Vea algunos documentos de GWAS , hay muchos documentos que muestran resultados para valores en cientos, por ejemplo: región KLK del cáncer de próstata, p = 9x10 ^ -186.
zx8754
1
Vea también la respuesta de whuber aquí: stats.stackexchange.com/questions/11812 .
ameba dice Reinstate Monica

Respuestas:

87

Hay una buena razón para ello.

El valor se puede encontrar a través de 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 

Si miras la ayuda, ( ?".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.

Esencialmente, es un valor por debajo del cual puede estar bastante seguro de que el valor no tendrá un gran significado numérico , ya que es probable que cualquier valor más pequeño no sea un cálculo preciso del valor que intentamos calcular. (Habiendo estudiado un pequeño análisis numérico, dependiendo de qué cálculos se realizaron por el procedimiento específico, hay una buena probabilidad de que la falta de sentido numérico sea bastante superior a eso).

Pero el significado estadístico se habrá perdido mucho antes. Tenga en cuenta que los valores p dependen de los supuestos, y cuanto más se adentre en la cola extrema, mayor será el valor p verdadero (en lugar del valor nominal que calculamos) se verá afectado por los supuestos erróneos, en algunos casos incluso cuando solo estás un poco equivocado. Dado que las suposiciones simplemente no se cumplirán exactamente, los valores p medios pueden ser razonablemente precisos (en términos de precisión relativa, tal vez solo por una fracción modesta), pero los valores p extremadamente pequeños pueden estar fuera por muchos órdenes de magnitud.

Lo que quiere decir que la práctica habitual (algo como el "<0.0001" que usted dice es común en los paquetes, o la regla APA que Jaap menciona en su respuesta) probablemente no esté tan lejos de la práctica sensata, pero el punto aproximado en el que las cosas perder el significado más allá de decir " es muy, muy pequeño ", por supuesto, variará bastante dependiendo de las circunstancias.

Esta es una razón por la que no puedo sugerir una regla general: no puede haber una sola regla que sea remotamente adecuada para todos en todas las circunstancias: cambie un poco las circunstancias y la línea gris amplia que marca el cambio de algo significativo a relativamente sin sentido cambiará, a veces por un largo camino.

Si se va a especificar la información suficiente sobre las circunstancias exactas (por ejemplo, que es una regresión, con esta cantidad no linealidad, que cantidad de variación de esta variable independiente, el tipo y la cantidad de la dependencia en el término de error, de que tipo de y la cantidad de heteroscedasticidad, esta forma de distribución de errores), podría simular valores p 'verdaderos' para que los compare con los valores p nominales, para que pueda ver cuándo eran demasiado diferentes para que el valor nominal tenga algún significado.

Pero eso nos lleva a la segunda razón por la cual, incluso si especificó suficiente información para simular los valores p verdaderos, todavía no podría establecer un límite de forma responsable incluso para esas circunstancias.

Lo que informa depende de las preferencias de las personas: las suyas y su audiencia. Imagina que me dijiste lo suficiente sobre las circunstancias para que decidiera que quería trazar la línea en una nominal de 10 - 6 .pags10-6 6

Muy bien, podríamos pensar, excepto su propia función de preferencia (lo que le parece correcto, si observara la diferencia entre los valores p nominales dados por los paquetes de estadísticas y los que resultan de la simulación cuando supone un conjunto particular de fallas de supuestos) podría ponerlo en y los editores de la revista a la que desea enviar podrían poner su regla general para cortar en 10 - 4 , mientras que la próxima revista podría ponerlo en 10 - 3 y el Es posible que el siguiente no tenga una regla general y el editor específico que obtuvo podría aceptar valores aún más bajos que los que le di ...105104103

En ausencia de conocimiento de sus funciones y reglas de preferencia, y la falta de conocimiento de sus propias utilidades, ¿cómo sugiero responsablemente cualquier elección general de qué acciones tomar?

Al menos puedo decirte el tipo de cosas que hago (y no sugiero que esta sea una buena opción para ti):

Hay pocas circunstancias (fuera de la simulación de los valores p) en las que haría una gran parte de ap menos de (puedo mencionar o no el valor informado por el paquete, pero no haría nada de eso más que era muy pequeño, generalmente enfatizaría la falta de significado del número exacto). A veces tomo un valor en algún lugar de la región de 10 - 5 a 10 - 4 y digo que p fue mucho menor que eso. En ocasiones, hago lo que se sugirió anteriormente: realizo algunas simulaciones para ver qué tan sensible es el valor p en la cola más larga a varias violaciones de los supuestos, particularmente si hay un tipo específico de violación que me preocupa.106105104 4

Eso es ciertamente útil para informar una elección, pero es probable que discuta los resultados de la simulación y los use para elegir un valor de corte, lo que les da a otros la oportunidad de elegir el suyo.

Una alternativa a la simulación es observar algunos procedimientos que son más robustos * a las diversas fallas potenciales de suposición y ver cuánta diferencia al valor p podría hacer. Sus valores p tampoco serán particularmente significativos, pero al menos dan una idea de cuánto impacto podría haber. Si algunos son muy diferentes del nominal, también da una idea más clara de qué violaciones de los supuestos investigar el impacto. Incluso si no informa sobre ninguna de esas alternativas, da una mejor idea de cuán significativo es su pequeño valor p.

* Tenga en cuenta que aquí realmente no necesitamos procedimientos que sean robustos a violaciones graves de alguna suposición; los que están menos afectados por desviaciones relativamente leves del supuesto relevante deberían estar bien para este ejercicio.

Diré que cuando / si viene a hacer tales simulaciones, incluso con violaciones bastante leves, en algunos casos puede sorprender hasta qué punto incluso los valores p no tan pequeños pueden estar equivocados. Eso ha hecho más para cambiar la forma en que interpreto personalmente un valor p más de lo que ha cambiado los límites específicos que podría usar.

Al enviar los resultados de una prueba de hipótesis real a una revista, trato de averiguar si tienen alguna regla. Si no lo hacen, tiendo a complacerme y luego espero a que los árbitros se quejen.

Glen_b
fuente
11
Me gusta especialmente el comentario sobre el significado estadístico que se perdió mucho antes.
usεr11852 dice Reinstate Monic
¡Gran respuesta! Aprecio todos los detalles sobre esto, aclara por qué R da este número. Pero en realidad no responde a la pregunta de qué informar.
Paul
1
Más bien sentí que había abordado el tema, en el sentido de que expliqué por qué no era responsable hacer una sugerencia específica. Tenga en cuenta que sí analizo por qué tiene sentido informar algo como "<0.0001" que es una práctica común en algunos paquetes. Hay un par de razones por las que no sugiero un número específico, el primero que di. Ampliaré esa razón y la segunda en una edición.
Glen_b
Paul, he agregado una discusión más sustancial.
Glen_b
2
Sí, necesitas hacer algo; El punto de mi comentario más extenso fue transmitir que no puedo decirte lo que debes elegir hacer, solo puedo discutir los problemas que vienen a tu elección. Espero haberlo hecho, pero me complace tratar de aclarar cualquier problema si puedo.
Glen_b
27

La práctica común podría depender de su campo de investigación. El manual de la American Psychological Association (APA), que es uno de los estilos de citas más utilizados, afirma (p. 139, sexta edición):

No use ningún valor menor que p <0.001

Jaap
fuente
8
Aunque esto es lo que también suelo citar (+1), no estoy seguro de si uno necesita revisar esta recomendación con un decimal, dada la reciente recomendación de Valen Johnson en PNAS : "Haga que 0.005 sea el nivel de significancia predeterminado [ ...]. Asociar resultados de prueba altamente significativos con valores de P inferiores a 0.001 ".
Henrik
3
Buena respuesta. No hay guías de estilo ni estándares reales en mis campos, al menos no para los valores p. Hago un trabajo interdisciplinario, pero supongo que la informática y la HCI serían el campo para esto. Creo que el estilo APA sería donde los autores recurrirían, ya que los métodos generalmente se toman prestados de la psicología cognitiva u otras áreas que la APA cubriría.
Paul
10
5σp<106 6
1
5 5σzpagspags0,0001zpags
@amoeba Sí, creo que tienes razón.
Glen_b
14

Tales valores p extremos ocurren con mayor frecuencia en campos con grandes cantidades de datos, como la genómica y el monitoreo de procesos. En esos casos, a veces se informa como -log 10 (valor p). Vea, por ejemplo, esta figura de Nature , donde los valores p bajan a 1e-26.

-log 10 (p-value) es llamado "LogWorth" por los estadísticos con los que trabajo en JMP.

xan
fuente
22
pagspagspags
8
@BenBolker De hecho, si bien es menos probable que "la NSA haya alterado sus datos", incluso eventos como "Un rayo cósmico volcó varios bits importantes en sus datos" son mucho, mucho más probables que esas probabilidades.
Glen_b
66
pags<10-100ρ0.9norte500
8
pags=2.2 2.2×10-226
99
@amoeba En la sección de comentarios de Slate Star Codex, Daniel Wells señala que science.sciencemag.org/content/363/6425/eaau1043 informa un valor p de 3.6e-2382 ("no es un error tipográfico, dos mil ", dice Daniel ), que supera al tuyo por un margen considerable.
Mark Amery
-3

en R, "<2e-16" no significa literalmente <2e-16, sino que significa que el valor es tan pequeño que R no puede grabarlo ni mostrarlo.

En la prueba de regresión, a menudo obtengo p tan pequeño como 4.940656e-324, cuando genera "<2e-16", este es un número aún menor que 4.940656e-324

usuario3590816
fuente
¿Qué número es " incluso más pequeño que 4.940656e-324 "?
Sven Hohenstein
8
Su declaración " en R," <2e-16 "no significa que literalmente <2e-16 " sea incorrecta. Cuando aparece R <2e-16, el valor es menor que 2e-16, literalmente.
Sven Hohenstein
Entendiste mal lo que dije. Cuando R dijo "<2e-16", el valor p es menor que 2e-16, pero no significa que el valor p menor que 2e-16 se muestre como "<2e-16". Como he mostrado, R no tiene ningún problema para mostrar en lm el valor p de resumen de cualquier número entre [4.940656e-324, 2e-16], mientras que el límite izquierdo es 2 ^ -1074. Entonces supongo que solo cuando el valor p es menor que 2 ^ -1074, R dirá que el valor p es menor que un valor delta pequeño. Simplemente sucede que R muestra este valor delta como 2e-16. Entonces mi suposición es "<2e-16" en realidad significa "<2 ^ -1074" en valores p
user3590816
66
Sin embargo, su suposición es incorrecta: eso es lo que @Sven está tratando de decirle. Vea la ayuda format.pvalo simplemente pruébelo, como en format.pval(1e-16).
whuber