Jak zgłaszać małe wartości

62

W przypadku niektórych testów Ristnieje dolna granica obliczeń . Nie jestem pewien, dlaczego jest to ta liczba, jeśli istnieje ku temu dobry powód lub jest to po prostu arbitralne. Wiele innych pakietów statystyk po prostu trafia , więc jest to o wiele wyższy poziom precyzji. Ale nie widziałem zbyt wielu artykułów zgłaszających lub .2.2210-160.0001p<2.2210-16p=2.2210-16

Czy zgłaszanie tej obliczonej wartości jest powszechną / najlepszą praktyką, czy bardziej typowe jest zgłaszanie czegoś innego (np. p < 0.000000000000001)?

Paweł
źródło
Jeśli otrzymujesz tak małą wartość p i chcesz obliczyć faktyczną wartość p, możesz użyć tej funkcji w programie excel = TDIST (t, df, 2) Dodaj wartości swoich „t” i df, a otrzymasz rzeczywistą Wartość p ta
7
@Tahzeeb jest jakiś powód, dla którego Excel zwróciłby bardziej precyzyjne oszacowanie niż R ..? O ile mi wiadomo, jest to o wiele mniej precyzyjne.
Tim
...But I haven't seen too many papers reporting p<2.22⋅10−16....Zobacz niektóre artykuły GWAS , istnieje wiele artykułów pokazujących wyniki dla wartości w setkach, np .: region KLK raka prostaty, p = 9x10 ^ -186.
zx8754
1
Zobacz także odpowiedź Whubera tutaj: stats.stackexchange.com/questions/11812 .
ameba mówi Przywróć Monikę

Odpowiedzi:

87

Jest ku temu dobry powód.

Wartość można znaleźć poprzez 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 

Jeśli spojrzysz na pomoc, ( ?".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.

Zasadniczo jest to wartość, poniżej której możesz być pewny, że wartość będzie dość liczbowo bez znaczenia - w tym sensie, że każda mniejsza wartość prawdopodobnie nie będzie dokładnym obliczeniem wartości, którą próbowaliśmy obliczyć. (Po przestudiowaniu małej analizy numerycznej, w zależności od tego, jakie obliczenia zostały wykonane przez określoną procedurę, istnieje duża szansa, że ​​liczbowa bezsensowność znacznie przewyższa to.)

Ale znaczenie statystyczne zostanie utracone znacznie wcześniej. Zauważ, że wartości p zależą od założeń, a im dalej w skrajny ogon, tym bardziej na prawdziwą wartość p (zamiast obliczanej przez nas wartości nominalnej) będą miały wpływ błędne założenia, w niektórych przypadkach, nawet jeśli tylko trochę się mylą. Ponieważ założenia nie będą po prostu dokładnie spełnione, średnie wartości p mogą być względnie dokładne (pod względem względnej dokładności, być może tylko przez niewielką część), ale bardzo małe wartości p mogą być pomijane przez wiele rzędów wielkość.

To znaczy, że zwykła praktyka (coś, co jak mówi się <0,0001) jest powszechne w pakietach lub reguła APA, o której wspomina Jaap w swojej odpowiedzi) prawdopodobnie nie jest tak daleko od rozsądnej praktyki, ale przybliżony punkt, w którym rzeczy zatracenie znaczenia poza powiedzeniem „ to bardzo małe ” będzie oczywiście bardzo różne w zależności od okoliczności.

Jest to jeden z powodów, dla których nie mogę zasugerować ogólnej zasady - nie może istnieć jedna zasada, która byłaby nawet zdalnie odpowiednia dla wszystkich w każdych okolicznościach - zmieniają nieco okoliczności, a szeroka szara linia zaznacza zmianę z nieco znaczącej na względnie względną bez znaczenia zmieni się, czasem na dłuższą metę.

Jeśli było określić wystarczających informacji na temat dokładnych okoliczności (na przykład jest to regresja, z tym wiele nieliniowości, że ilość wariacji w tej zmiennej niezależnej, w tym rodzaj i ilość uzależnienia w perspektywie błędzie, że rodzaj i ilość heteroskedastyczności, ten kształt rozkładu błędów), mógłbym symulować „prawdziwe” wartości p, aby porównać je z nominalnymi wartościami p, aby można było zobaczyć, kiedy były zbyt różne, aby wartość nominalna miała jakiekolwiek znaczenie.

Ale to prowadzi nas do drugiego powodu, dla którego - nawet jeśli podałeś wystarczającą ilość informacji, aby zasymulować prawdziwe wartości p - nadal nie mogłem odpowiedzialnie określić granicy nawet dla takich okoliczności.

To, co zgłaszasz, zależy od preferencji ludzi - twoich i odbiorców. Wyobraź sobie, że mi tyle o okolicznościach mi zdecydować, że chcę, aby narysować linię przy nominalnej od 10 - 6 .p10-6

Wszystko dobrze i dobrze, moglibyśmy pomyśleć - z wyjątkiem własnej funkcji preferencji (to, co wygląda dobrze dla ciebie, gdybyś spojrzał na różnicę między nominalnymi wartościami p podanymi przez pakiety statystyk a tymi wynikającymi z symulacji, gdy przypuszczasz, że określony zestaw błędów założeń) może ustawić na a redaktorzy czasopisma, do którego chcesz się zgłosić, mogą ustawić regułę kocową na 10 - 4 , podczas gdy następny dziennik może ustawić na 10 - 3, a dalej może nie mieć żadnej ogólnej reguły, a konkretny edytor, który masz, może zaakceptować nawet niższe wartości niż ja dałem ... ale jeden z sędziów może wtedy mieć określone odcięcie!10-510-410-3)

W przypadku braku wiedzy na temat ich funkcji i zasad preferencji oraz braku wiedzy na temat własnych narzędzi, w jaki sposób mogę odpowiedzialnie zasugerować ogólny wybór, jakie działania należy podjąć?

Mogę przynajmniej powiedzieć ci, co robię (i nie sugeruję, że jest to dla ciebie dobry wybór):

10-610-510-4

Jest to z pewnością pomocne w podjęciu decyzji o wyborze - ale równie chętnie omawiam wyniki symulacji, jak wykorzystując je do wyboru wartości granicznej, dając innym szansę wyboru własnej.

Alternatywą dla symulacji jest przyjrzenie się niektórym procedurom, które są bardziej odporne * na różne potencjalne niepowodzenia założenia i sprawdzenie, jak duża różnica może mieć wartość p. Ich wartości p również nie będą miały szczególnego znaczenia, ale przynajmniej dają pewne wyobrażenie o tym, jak duży może być wpływ. Jeśli niektóre bardzo różnią się od nominalnego, daje to również więcej wyobrażenia, które naruszenia założeń należy zbadać pod kątem wpływu. Nawet jeśli nie zgłosisz żadnej z tych alternatyw, daje to lepszy obraz tego, jak znacząca jest twoja mała wartość p.

* Pamiętaj, że tutaj tak naprawdę nie potrzebujemy procedur odpornych na rażące naruszenia niektórych założeń; te, które są mniej dotknięte względnie łagodnymi odchyleniami odpowiedniego założenia, powinny być odpowiednie do tego ćwiczenia.

Powiem, że kiedy / jeśli przyjdziesz do zrobienia takich symulacji, nawet przy dość łagodnych naruszeniach, w niektórych przypadkach może być zaskakujące, jak daleko nawet tak małe wartości p mogą być błędne. To zrobiło więcej, aby zmienić sposób, w jaki osobiście interpretuję wartość p bardziej, niż zmieniłem określone wartości graniczne, których mógłbym użyć.

Przesyłając wyniki rzeczywistego testu hipotez do dziennika, próbuję dowiedzieć się, czy mają jakieś reguły. Jeśli nie, staram się zadowolić, a potem czekam, aż sędziowie narzekają.

Glen_b
źródło
11
Szczególnie podoba mi się komentarz dotyczący utraty znaczenia statystycznego znacznie wcześniej.
usεr11852,
Świetna odpowiedź! Doceniam wszystkie szczegóły na ten temat, wyjaśnia, dlaczego R podaje ten numer. Ale tak naprawdę nie odpowiada na pytanie, co zgłosić.
Paweł
1
Wydawało mi się, że poradziłem sobie z tym problemem, w tym sensie, że wyjaśniłem, dlaczego nie było odpowiedzialne za przedstawianie konkretnych sugestii. Zauważ, że dyskutuję, dlaczego warto zgłaszać coś takiego jak „<0.0001”, co jest powszechną praktyką w niektórych pakietach. Jest kilka powodów, dla których nie sugeruję określonej liczby - z których pierwszy podałem. Omówię ten powód i drugi w edycji.
Glen_b
Paul, dodałem trochę bardziej szczegółową dyskusję.
Glen_b
2
Tak, musisz coś zrobić; celem mojego obszerniejszego komentarza było przekazanie, że nie mogę powiedzieć, co powinieneś zrobić, mogę jedynie omówić kwestie, które wchodzą w zakres twojego wyboru. Mam nadzieję, że tak zrobiłem, ale z przyjemnością staram się wyjaśnić wszelkie problemy, jeśli mogę.
Glen_b
27

To, co jest powszechną praktyką, może zależeć od dziedziny badań. Podręcznik American Psychological Association (APA), który jest jednym z najczęściej używanych stylów cytowania, stwierdza (s. 139, wydanie 6):

Nie używaj wartości mniejszych niż p <0,001

Jaap
źródło
8
Chociaż to właśnie zwykle cytuję (+1), nie jestem pewien, czy należy zmienić to zalecenie o jedno miejsce po przecinku, biorąc pod uwagę ostatnią rekomendację Valena Johnsona w PNAS : „Ustaw wartość domyślną 0,005 [ ...]. Powiąż bardzo znaczące wyniki testu z wartościami P mniejszymi niż 0,001. ”
Henrik,
3
Dobra odpowiedź. W moich polach nie ma żadnych przewodników po stylu ani prawdziwych standardów, przynajmniej nie dla wartości p. Zajmuję się pracą interdyscyplinarną, ale myślę, że informatyka i HCI byłyby do tego przeznaczone. Myślę, że styl APA byłby tym, do którego autorzy się zwróciliby, ponieważ metody są na ogół zapożyczone z psychologii poznawczej lub innych obszarów, które obejmie APA.
Paul
10
5σp<10-6
1
5σzpp0.0001zp
@amoeba Tak, myślę, że masz rację.
Glen_b
14

Takie ekstremalne wartości p występują częściej w polach z bardzo dużą ilością danych, takich jak genomika i monitorowanie procesu. W takich przypadkach jest czasami zgłaszany jako -log 10 (wartość p). Zobacz na przykład ten rysunek z Natury , gdzie wartości p spadają do 1e-26.

-log 10 (wartość p) nazywa się „LogWorth” przez statystyków, z którymi pracuję w JMP.

Xan
źródło
21
ppp
8
@BenBolker Rzeczywiście, chociaż mniej prawdopodobne niż „NSA manipulowała twoimi danymi”, nawet zdarzenia takie jak „Promień kosmiczny przerzucił kilka ważnych bitów w twoich danych” są znacznie bardziej prawdopodobne niż te prawdopodobieństwa.
Glen_b
6
p<10-100ρ0,9n500
8
p=2.2×10-226
9
@amoeba W sekcji komentarzy Kodeksu Slate Star Daniel Wells zauważa, że science.sciencemag.org/content/363/6425/eaau1043 podaje wartość p wynoszącą 3,6e-2382 („nie literówka, dwa tysiące ”, mówi Daniel ), co znacznie przewyższa Twoją!
Mark Amery
-3

w R „<2e-16” nie oznacza dosłownie <2e-16, ale zamiast tego oznacza, że ​​wartość jest tak mała, że ​​R nie może jej nagrać ani wyświetlić.

W teście regresji często otrzymuję p tak małe, jak 4,940656e-324, kiedy wyświetla „<2e-16”, jest to liczba nawet mniejsza niż 4,940656e-324

użytkownik3590816
źródło
Która liczba jest „ nawet mniejsza niż 4,940656e-324 ”?
Sven Hohenstein,
8
Twoje stwierdzenie „ w R” <2e-16 ”nie oznacza dosłownie <2e-16 ” jest niepoprawne. Gdy wyświetla się R <2e-16, wartość jest mniejsza niż 2e-16, dosłownie.
Sven Hohenstein,
Źle zrozumiałeś, co powiedziałem. Kiedy R powiedział „<2e-16”, wartość p jest mniejsza niż 2e-16, ale nie oznacza to, że wartość p mniejsza niż 2e-16 będzie wyświetlana jako „<2e-16”. Jak wykazałem, R nie ma problemu z wyświetleniem w lm sumarycznej wartości p dowolnej liczby między [4.940656e-324, 2e-16], podczas gdy lewa granica wynosi 2 ^ -1074. Zakładam więc, że tylko gdy wartość p jest mniejsza niż 2 ^ -1074, R powie wtedy, że wartość p jest mniejsza niż mała wartość delta. Zdarza się, że R wyświetla tę wartość delty jako 2e-16. Więc przypuszczam, że „<2e-16” w rzeczywistości oznacza „<2 ^ -1074” w wartościach p
3590816
6
Twoje przypuszczenia są jednak niepoprawne: właśnie to @Sven próbuje ci powiedzieć. Zobacz pomoc format.pvallub po prostu wypróbuj, jak w format.pval(1e-16).
whuber