Bagaimana seharusnya nilai- kecil dilaporkan? (dan mengapa R menempatkan minimum pada 2.22e-16?)

63

Untuk beberapa pengujian R, ada batas yang lebih rendah pada perhitungan . Saya tidak yakin mengapa ini nomor ini, apakah ada alasan yang bagus untuk itu atau apakah itu hanya sewenang-wenang. Banyak paket statistik lain hanya pergi , jadi ini adalah tingkat presisi yang jauh lebih tinggi. Tapi saya belum melihat banyak makalah yang melaporkan atau .2.2210160.0001p<2.221016p=2.221016

Apakah ini merupakan praktik umum / terbaik untuk melaporkan nilai yang dihitung ini atau apakah lebih umum melaporkan sesuatu yang lain (seperti p < 0.000000000000001)?

paul
sumber
Jika Anda mendapatkan nilai p kecil seperti itu dan ingin menghitung nilai p aktual, Anda dapat menggunakan fungsi ini dalam excel = TDIST (t, df, 2) Tambahkan nilai 't' dan df Anda dan Anda akan mendapatkan aktual p-value ta
7
@Tahzeeb ada setiap alasan mengapa Excel akan kembali perkiraan yang lebih tepat maka R ..? Sejauh yang saya tahu, itu jauh kurang tepat.
Tim
...But I haven't seen too many papers reporting p<2.22⋅10−16....Lihat beberapa makalah GWAS , ada banyak makalah yang menunjukkan hasil untuk nilai dalam ratusan, misalnya: Wilayah KLK kanker prostat, p = 9x10 ^ -186.
zx8754
1
Lihat juga jawaban whuber di sini: stats.stackexchange.com/questions/11812 .
Amoeba berkata Reinstate Monica

Jawaban:

87

Ada alasan bagus untuk itu.

Nilai dapat ditemukan melalui 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 

Jika Anda melihat bantuannya, ( ?".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.

Ini pada dasarnya adalah nilai di bawah ini yang bisa Anda yakini nilainya akan sangat tidak bermakna secara numerik - dalam hal ini nilai yang lebih kecil tidak mungkin merupakan perhitungan akurat dari nilai yang kami coba hitung. (Setelah mempelajari sedikit analisis numerik, tergantung pada perhitungan apa yang dilakukan oleh prosedur tertentu, ada kemungkinan besar ketidakberartikan numerik muncul secara wajar di atas itu.)

Tetapi makna statistik akan hilang jauh lebih awal. Perhatikan bahwa nilai-p tergantung pada asumsi, dan semakin jauh ke ekor ekstrem yang Anda gunakan semakin besar nilai p yang sebenarnya (daripada nilai nominal yang kami hitung) akan dipengaruhi oleh asumsi yang salah, dalam beberapa kasus bahkan ketika mereka Hanya sedikit yang salah. Karena asumsi tidak akan sepenuhnya puas, nilai-nilai menengah mungkin cukup akurat (dalam hal akurasi relatif, mungkin hanya dengan sebagian kecil), tetapi nilai-p sangat kecil mungkin keluar oleh banyak pesanan dari besarnya.

Artinya latihan biasa (seperti "<0,0001" yang Anda katakan adalah umum dalam paket, atau aturan APA yang disebutkan Jaap dalam jawabannya) mungkin tidak jauh dari praktik yang masuk akal, tetapi titik perkiraan di mana hal-hal kehilangan makna di luar mengatakan ' ini sangat sangat kecil ' tentu saja akan sangat bervariasi tergantung keadaan.

Ini adalah salah satu alasan mengapa saya tidak bisa menyarankan aturan umum - tidak mungkin ada aturan tunggal yang bahkan cocok untuk semua orang di semua keadaan - mengubah keadaan sedikit dan garis abu-abu yang luas menandai perubahan dari yang agak berarti ke relatif tidak berarti akan berubah, terkadang dengan cara yang jauh.

Jika Anda adalah untuk menentukan informasi yang cukup tentang keadaan yang sebenarnya (misalnya itu regresi, dengan ini banyak non-linear, bahwa jumlah variasi dalam variabel independen ini, ini jenis dan jumlah ketergantungan dalam jangka kesalahan, bahwa jenis dan jumlah heteroskedastisitas, ini bentuk distribusi error), saya bisa mensimulasikan 'benar' p-nilai bagi Anda untuk membandingkan dengan p-nilai nominal, sehingga Anda bisa melihat ketika mereka terlalu berbeda untuk nilai nominal untuk membawa makna.

Tapi itu membawa kita ke alasan kedua mengapa - bahkan jika Anda menentukan informasi yang cukup untuk mensimulasikan nilai-p yang sebenarnya - saya masih tidak dapat secara bertanggung jawab menyatakan cut-off bahkan untuk keadaan tersebut.

Apa yang Anda laporkan tergantung pada preferensi orang - milik Anda, dan audiens Anda. Bayangkan Anda mengatakan kepada saya cukup tentang keadaan bagi saya untuk memutuskan bahwa saya ingin menarik garis pada nominal dari .10 - 6p106

Semua baik dan bagus, kita mungkin berpikir - kecuali fungsi preferensi Anda sendiri (apa yang tampak benar bagi Anda, apakah Anda melihat perbedaan antara nilai-p nominal yang diberikan oleh paket statistik dan yang dihasilkan dari simulasi ketika Anda mengira suatu set tertentu kegagalan asumsi) mungkin menaruhnya di dan editor jurnal yang ingin Anda ajukan mungkin meletakkan aturan selimut mereka untuk memotong di , sedangkan jurnal berikutnya mungkin menaruhnya pada dan yang berikutnya mungkin tidak memiliki aturan umum dan editor khusus yang Anda dapatkan mungkin menerima nilai yang bahkan lebih rendah daripada yang saya berikan ... tetapi salah satu wasit kemudian dapat memotong secara spesifik! 10 - 4 10 - 3105104103

Dengan tidak adanya pengetahuan tentang fungsi dan aturan preferensi mereka, dan tidak adanya pengetahuan tentang utilitas Anda sendiri, bagaimana saya secara bertanggung jawab menyarankan setiap pilihan umum tentang tindakan apa yang harus diambil?

Setidaknya saya bisa memberi tahu Anda hal-hal yang saya lakukan (dan saya sama sekali tidak menyarankan ini adalah pilihan yang baik untuk Anda):

Ada beberapa keadaan (di luar simulasi nilai-p) di mana saya akan membuat banyak kurang dari (saya mungkin atau mungkin tidak menyebutkan nilai yang dilaporkan oleh paket, tapi saya tidak akan membuat apa pun dari itu selain sangat kecil, saya biasanya akan menekankan arti dari jumlah yang tepat). Terkadang saya mengambil nilai di suatu tempat di wilayah hingga dan mengatakan bahwa p jauh lebih sedikit dari itu. Kadang-kadang saya benar-benar melakukan seperti yang disarankan di atas - melakukan beberapa simulasi untuk melihat seberapa sensitif nilai-p di ujung ke berbagai pelanggaran asumsi, terutama jika ada jenis pelanggaran tertentu yang saya khawatirkan. 10 - 5 10 - 4106105104

Itu tentu membantu dalam menginformasikan pilihan - tetapi saya cenderung mendiskusikan hasil simulasi dengan menggunakannya untuk memilih nilai batas, memberi orang lain kesempatan untuk memilih sendiri.

Alternatif untuk simulasi adalah melihat beberapa prosedur yang lebih kuat * terhadap berbagai potensi kegagalan asumsi dan melihat seberapa besar perbedaan nilai p yang mungkin terjadi. Nilai-p mereka juga tidak akan terlalu berarti, tetapi mereka setidaknya memberikan sedikit pengertian tentang seberapa besar dampak yang mungkin terjadi. Jika beberapa sangat berbeda dari nominal, itu juga memberikan lebih banyak ide yang pelanggaran asumsi untuk menyelidiki dampak. Bahkan jika Anda tidak melaporkan salah satu dari alternatif itu, itu memberikan gambaran yang lebih baik tentang betapa berartinya nilai p kecil Anda.

* Perhatikan bahwa di sini kita tidak benar-benar membutuhkan prosedur yang kuat untuk pelanggaran berat terhadap beberapa asumsi; yang kurang terpengaruh oleh penyimpangan yang relatif ringan dari asumsi yang relevan harus baik untuk latihan ini.

Saya akan mengatakan bahwa ketika / jika Anda datang untuk melakukan simulasi seperti itu, bahkan dengan pelanggaran yang cukup ringan, dalam beberapa kasus itu bisa mengejutkan pada seberapa jauh bahkan nilai p yang tidak kecil itu bisa salah. Itu telah berbuat lebih banyak untuk mengubah cara saya menginterpretasikan nilai-p lebih dari yang telah menggeser cut-off spesifik yang mungkin saya gunakan.

Ketika mengirimkan hasil tes hipotesis aktual ke jurnal, saya mencoba mencari tahu apakah mereka memiliki aturan. Jika tidak, saya cenderung menyenangkan diri sendiri, dan kemudian menunggu wasit untuk mengeluh.

Glen_b
sumber
11
Saya terutama menyukai komentar tentang makna statistik yang hilang jauh sebelumnya.
usεr11852 mengatakan Reinstate Monic
Jawaban bagus! Saya menghargai semua detailnya, ini menjelaskan mengapa R memberikan nomor ini. Tapi itu tidak benar-benar menjawab pertanyaan apa yang harus dilaporkan.
paul
1
Saya agak merasa telah mengatasi masalah ini, dalam arti saya menjelaskan mengapa tidak bertanggung jawab untuk membuat saran tertentu. Perhatikan bahwa saya mendiskusikan mengapa masuk akal untuk melaporkan sesuatu seperti "<0,0001" yang merupakan praktik umum dalam beberapa paket. Ada beberapa alasan mengapa saya tidak menyarankan nomor tertentu - yang pertama saya berikan. Saya akan memperluas alasan itu dan yang kedua dalam suntingan.
Glen_b
paul, saya telah menambahkan beberapa diskusi yang lebih substansial.
Glen_b
2
Ya, Anda perlu melakukan sesuatu; inti dari komentar saya yang lebih luas adalah untuk menyampaikan bahwa saya tidak dapat memberi tahu Anda apa yang harus Anda pilih untuk dilakukan, saya hanya dapat mendiskusikan masalah yang masuk ke dalam pilihan Anda. Saya harap saya telah melakukannya, tetapi saya senang untuk mencoba mengklarifikasi masalah lebih lanjut jika saya bisa.
Glen_b
27

Praktik umum apa yang mungkin tergantung pada bidang penelitian Anda. Manual dari American Psychological Association (APA), yang merupakan salah satu gaya kutipan yang paling sering digunakan, menyatakan (hal. 139, edisi ke-6):

Jangan gunakan nilai yang lebih kecil dari p <0,001

Jaap
sumber
8
Meskipun ini adalah apa yang biasanya saya kutip (+1), saya tidak yakin apakah seseorang perlu merevisi rekomendasi ini dengan satu tempat desimal, mengingat rekomendasi terbaru dari Valen Johnson di PNAS : "Buat 0,005 tingkat signifikansi standar [ ...]. Kaitkan hasil tes yang sangat signifikan dengan nilai P yang kurang dari 0,001. "
Henrik
3
Jawaban yang bagus. Tidak ada panduan gaya dan tidak ada standar nyata di bidang saya, setidaknya tidak untuk nilai-p. Saya melakukan pekerjaan interdisipliner tetapi saya kira ilmu komputer dan HCI akan menjadi bidang untuk ini. Saya pikir gaya APA akan menjadi tempat penulis akan beralih, karena metode umumnya dipinjam dari psikologi kognitif atau bidang lain yang akan dibahas oleh APA.
paul
10
Fisika partikel menggunakan aturan (Anda mungkin telah melihatnya di berita dengan konfirmasi bos Higgs), yang berhembus melebihi batas ini (lebih kecil bahkan dari ). Standar berbeda menurut wilayah! 5σp<106
Glen_b
1
@ Glen_b: Poin bagus tentang dalam fisika partikel, tapi saya kira apa yang Anda tulis dalam jawaban Anda tentang sensitivitas terhadap asumsi, dll. Menjelaskan (atau setidaknya bagian dari alasan) mengapa mereka melaporkan sigma (yaitu pada dasarnya -statistik) bukannya -nilai. Setelah nilai- bawah atau sesuatu (saran saya yang biasa adalah melaporkan angka nol sebanyak orang merasa nyaman untuk mencetak tanpa beralih ke notasi eksponensial), mungkin lebih bermakna untuk melihat nilai- daripada nilai nilai. z p p 0,0001 z p5σzpp0.0001zp
Amoeba berkata Reinstate Monica
@amoeba Ya, saya pikir Anda benar.
Glen_b
14

Nilai p yang ekstrem seperti ini lebih sering terjadi di bidang dengan jumlah data yang sangat besar, seperti genomik dan pemantauan proses. Dalam kasus tersebut, kadang-kadang dilaporkan sebagai -log 10 (nilai-p). Lihat misalnya, gambar ini dari Nature , di mana nilai-p turun ke 1e-26.

-log 10 (p-value) disebut "LogWorth" oleh ahli statistik yang bekerja dengan saya di JMP.

xan
sumber
22
Ini benar, dan layak untuk ditunjukkan, tetapi mungkin juga layak disebutkan bahwa dalam kasus ini nilai- harus benar-benar dianggap hanya sebagai indeks kekuatan sinyal - nilai kecil (kadang-kadang bahkan jika dikoreksi untuk banyak perbandingan) sangat kecil sehingga kemungkinan NSA membobol dan merusak data Anda (dan kemudian mencuci otak Anda sehingga Anda tidak dapat mengingat) jauh, jauh, lebih tinggi dari nilai nominal . p pppp
Ben Bolker
8
@ BenBolker Memang, sementara kurang mungkin daripada "NSA dirusak dengan data Anda", bahkan peristiwa seperti "Sinar kosmik membalik beberapa bit penting dalam data Anda" jauh, jauh lebih mungkin daripada probabilitas itu.
Glen_b
6
Dalam makalah neuroscience 2015 yang diterbitkan di Nature, penulis melaporkan beberapa kali ketika menyajikan koefisien korelasi ( ρ 0,9p<10100ρ0.9n500
8
p=2.2×10226
9
@amoeba Di bagian komentar Slate Star Codex, Daniel Wells mencatat bahwa science.sciencemag.org/content/363/6425/eaau1043 melaporkan nilai-p 3,6e-2382 ("bukan kesalahan ketik, dua ribu ", kata Daniel ), yang mengalahkan Anda dengan margin yang cukup!
Mark Amery
-3

dalam R, "<2e-16" tidak berarti secara harfiah <2e-16, tetapi sebaliknya, ini berarti nilainya sangat kecil sehingga R tidak dapat merekam atau menampilkannya.

Dalam tes regresi, saya sering mendapatkan p sekecil 4,940656e-324, ketika output "<2e-16", ini adalah angka yang bahkan lebih kecil dari 4,940656e-324

pengguna3590816
sumber
Nomor mana yang " bahkan lebih kecil dari 4,940656e-324 "?
Sven Hohenstein
8
Pernyataan Anda " dalam R," <2e-16 "tidak berarti secara harfiah <2e-16 " tidak benar. Ketika R menampilkan <2e-16, nilai ini lebih kecil dari 2e-16, secara harfiah.
Sven Hohenstein
Anda salah mengerti apa yang saya katakan. Ketika R mengatakan "<2e-16", nilai-p lebih kecil dari 2e-16, tetapi itu tidak berarti nilai-p lebih kecil dari 2e-16 akan ditampilkan sebagai "<2e-16". Seperti yang telah saya tunjukkan, R tidak memiliki masalah untuk ditampilkan dalam rangkuman p-value lm dari angka apa pun antara [4,940656e-324, 2e-16], sedangkan batas kiri adalah 2 ^ -1074. Jadi saya berasumsi, hanya ketika p-value lebih kecil dari 2 ^ -1074, R kemudian akan mengatakan p-value lebih kecil dari nilai delta kecil. Kebetulan R menampilkan nilai delta ini sebagai 2e-16. Jadi tebakan saya adalah "<2e-16" sebenarnya berarti "<2 ^ -1074" dalam nilai-p
user3590816
6
Namun tebakan Anda salah: itulah yang coba dicoba oleh @ven kepada Anda. Lihat bantuan untuk format.pvalatau coba saja, seperti pada format.pval(1e-16).
whuber