Seberapa kecil jumlah yang harus ditambahkan ke x untuk menghindari mengambil log nol?

57

Saya telah menganalisis data saya apa adanya. Sekarang saya ingin melihat analisis saya setelah mengambil log semua variabel. Banyak variabel mengandung banyak nol. Karena itu saya menambahkan jumlah kecil untuk menghindari mengambil log nol.

Sejauh ini saya telah menambahkan 10 ^ -10, tanpa alasan apa pun, hanya karena saya merasa ingin menambahkan jumlah yang sangat kecil akan disarankan untuk meminimalkan efek kuantitas yang saya pilih secara sewenang-wenang. Tetapi beberapa variabel berisi sebagian besar nol, dan karena itu ketika login kebanyakan -23,02. Kisaran rentang variabel saya adalah 1,33-8819,21, dan frekuensi nol juga bervariasi secara dramatis. Oleh karena itu pilihan pribadi saya "jumlah kecil" mempengaruhi variabel sangat berbeda. Jelas sekarang bahwa 10 ^ -10 adalah pilihan yang sama sekali tidak dapat diterima, karena sebagian besar varian dalam semua variabel kemudian berasal dari "kuantitas kecil" yang sewenang-wenang ini.

Saya bertanya-tanya apa cara yang lebih tepat untuk melakukan ini.

Mungkin lebih baik untuk mendapatkan kuantitas dari masing-masing variabel distribusi individu? Adakah pedoman tentang seberapa besar "jumlah kecil" ini seharusnya?

Analisis saya sebagian besar model cox sederhana dengan setiap variabel dan usia / jenis kelamin sebagai infus. Variabelnya adalah konsentrasi berbagai lipid darah, dengan koefisien variasi yang sering cukup besar.

Sunting : Menambahkan nilai bukan nol terkecil dari variabel tampaknya praktis untuk data saya. Tapi mungkin ada solusi umum?

Sunting 2 : Karena nol hanya menunjukkan konsentrasi di bawah batas deteksi, mungkin mengaturnya ke (batas deteksi) / 2 akan sesuai?

miura
sumber
4
Mengapa Anda mencatat dari pengamatan / variabel? log
2
Jika Anda menambahkan ke variabel Anda, variabel yang nol pada skala asli akan menjadi nol pada skala log. 1
MånsT
5
Apakah Anda memiliki masalah ini dengan variabel respons atau hanya variabel penjelas? Jika hanya yang terakhir, maka tergantung pada pertimbangan ukuran sampel, salah satu opsi adalah menambahkan variabel dummy tambahan yang menunjukkan konsentrasi analit yang diberikan di bawah ambang deteksi. Ini menyerap derajat kebebasan, tetapi memiliki keuntungan tidak memaksakan pilihan ad hoc sewenang-wenang pada data. Ini juga dapat mengungkap nonlinier atau diskontinuitas dekat ambang deteksi yang mungkin diperhitungkan.
kardinal
2
@ Log Lograstinator adalah alami untuk konsentrasi karena hubungan eksponensial antara konstanta kesetimbangan dan energi Gibbs; sebenarnya dalam konsentrasi kimia "berkelanjutan" 0 agak tidak nyata.
2
Alternatifnya adalah dengan mengambil, katakanlah, akar pangkat tiga dari data - tidak membawa Anda sepenuhnya ke log, tetapi mempertahankan angka nol tanpa mengubah skala.
jbowman

Jawaban:

26

Karena nol hanya menunjukkan konsentrasi di bawah batas deteksi, mungkin mengaturnya ke (batas deteksi) / 2 akan sesuai

Saya baru saja mengetik bahwa hal yang muncul di pikiran saya di mana log (sering) masuk akal dan 0 dapat terjadi adalah konsentrasi ketika Anda melakukan edit ke-2. Seperti yang Anda katakan, untuk konsentrasi terukur 0 hanya berarti "Saya tidak dapat mengukur konsentrasi rendah itu".

Catatan: maksud Anda LOQ bukan LOD?

12

  • 12LOQ

    masukkan deskripsi gambar di sinimasukkan deskripsi gambar di sini
    12LOQ

  • Namun, jika nilai terukur asli tersedia, itu mungkin memberikan tebakan yang lebih baik. Bagaimanapun, LOQ biasanya hanya berarti bahwa kesalahan relatif adalah 10%. Di bawah itu pengukuran masih membawa informasi, tetapi kesalahan relatif menjadi besar.
    masukkan deskripsi gambar di sini
    (biru: LOD, merah: LOQ)

  • Alternatifnya adalah dengan mengecualikan pengukuran ini. Itu bisa masuk akal,
    misalnya memikirkan kurva kalibrasi. Dalam praktiknya Anda sering mengamati bentuk sigmoid: untuk c rendah, sinyal ≈ konstan, perilaku linier menengah, kemudian saturasi detektor. masukkan deskripsi gambar di sini
    Dalam situasi itu, Anda mungkin ingin membatasi diri pada pernyataan tentang konsentrasi yang jelas dalam rentang linier karena baik di bawah maupun di atas proses lain sangat memengaruhi hasilnya.
    Pastikan Anda menjelaskan bahwa data dipilih seperti itu dan mengapa.


sunting: Apa yang masuk akal atau dapat diterima, tentu saja tergantung pada masalahnya. Mudah-mudahan, kita berbicara di sini tentang sebagian kecil dari data yang tidak mempengaruhi analisis.

Mungkin pemeriksaan cepat dan kotor adalah: jalankan analisis data Anda dengan dan tanpa mengecualikan data (atau perawatan apa pun yang Anda usulkan) dan lihat apakah ada yang berubah secara substansial.

Jika Anda melihat perubahan, maka tentu saja Anda dalam masalah. Namun, dari sudut pandang kimia analitik, saya akan mengatakan masalah Anda tidak terutama terletak pada metode mana yang Anda gunakan untuk menangani data, tetapi masalah mendasarnya adalah bahwa metode analitik (atau rentang kerjanya) tidak sesuai untuk masalah yang dihadapi. Tentu saja ada zona di mana pendekatan statistik yang lebih baik dapat menghemat hari Anda, tetapi pada akhirnya perkiraan "sampah masuk, sampah keluar" biasanya berlaku juga untuk metode yang lebih mewah.

Kutipan untuk topik:

  • Seorang ahli statistik pernah mengatakan kepada saya:

    Masalah dengan Anda (ahli kimia / spektroskopi) adalah bahwa masalah Anda sangat sulit sehingga tidak dapat diselesaikan atau begitu mudah sehingga tidak ada kesenangan dalam menyelesaikannya.

  • Fisher tentang statistik post-mortem eksperimen

Cbeleites mendukung Monica
sumber
1
Saya suka kutipan di bagian bawah (+1).
mengembalikan Monica
32

Data konsentrasi kimia sering memiliki nol, tetapi ini tidak mewakili nilai nol : mereka adalah kode yang beragam (dan membingungkan) mewakili kedua tidak terdeteksi (pengukuran ditunjukkan, dengan tingkat kemungkinan tinggi, bahwa analit tidak ada) dan "tidak dikuantifikasi" nilai (pengukuran mendeteksi analit tetapi tidak dapat menghasilkan nilai numerik yang dapat diandalkan). Anggap saja "ND" ini samar-samar di sini.

Biasanya, ada batas yang terkait dengan ND yang dikenal sebagai "batas deteksi," "batas kuantitasi," atau (jauh lebih jujur) "batas pelaporan," karena laboratorium memilih untuk tidak memberikan nilai numerik (sering untuk legal alasan). Tentang semua yang kita benar-benar ketahui tentang ND adalah bahwa nilai sebenarnya cenderung kurang dari batas yang terkait: hampir (tetapi tidak cukup) merupakan bentuk sensor kiri1.3301.330.50.1

Penelitian ekstensif telah dilakukan selama 30 tahun terakhir tentang cara terbaik untuk meringkas dan mengevaluasi dataset tersebut. Dennis Helsel menerbitkan buku tentang ini, Nondetects and Data Analysis (Wiley, 2005), mengajarkan kursus, dan merilis Rpaket berdasarkan beberapa teknik yang ia sukai. Nya situs komprehensif.

Bidang ini penuh dengan kesalahan dan kesalahpahaman. Helsel jujur ​​tentang ini: di halaman pertama bab 1 dari bukunya ia menulis,

... metode yang paling umum digunakan dalam studi lingkungan saat ini, penggantian setengah dari batas deteksi, BUKAN metode yang masuk akal untuk menafsirkan data yang disensor.

Jadi, apa yang harus dilakukan? Pilihannya termasuk mengabaikan nasihat yang baik ini, menerapkan beberapa metode dalam buku Helsel, dan menggunakan beberapa metode alternatif. Itu benar, buku itu tidak komprehensif dan alternatif yang valid memang ada. Menambahkan konstanta ke semua nilai dalam dataset ("memulai" mereka) adalah satu. Tapi pertimbangkan:

  • 111

  • 0

    Alat yang sangat baik untuk menentukan nilai awal adalah plot probabilitas lognormal: selain dari ND, data harus sekitar linier.

  • Pengumpulan ND juga dapat digambarkan dengan apa yang disebut distribusi "delta lognormal". Ini adalah campuran massa titik dan lognormal.

Sebagaimana terbukti dalam histogram nilai simulasi berikut, distribusi yang disensor dan delta tidak sama. Pendekatan delta paling berguna untuk variabel penjelas dalam regresi: Anda dapat membuat variabel "dummy" untuk menunjukkan ND, mengambil logaritma dari nilai yang terdeteksi (atau mentransformasikannya sesuai kebutuhan), dan tidak khawatir tentang nilai penggantian untuk ND. .

Histogram

Dalam histogram ini, sekitar 20% dari nilai terendah telah digantikan oleh nol. Untuk perbandingan, semuanya didasarkan pada 1000 nilai lognormal yang disimulasikan yang disimulasikan (kiri atas). Distribusi delta dibuat dengan mengganti 200 nilai dengan nol secara acak . Distribusi yang disensor dibuat dengan mengganti 200 nilai terkecil dengan nol. Distribusi "realistis" sesuai dengan pengalaman saya, yaitu bahwa batas pelaporan sebenarnya bervariasi dalam praktiknya (bahkan ketika itu tidak ditunjukkan oleh laboratorium!): Saya membuatnya berbeda secara acak (hanya sedikit, jarang lebih dari 30 dalam salah satu arah) dan mengganti semua nilai simulasi kurang dari batas pelaporannya dengan nol.

Untuk menunjukkan kegunaan plot probabilitas dan untuk menjelaskan interpretasinya , gambar berikut menampilkan plot probabilitas normal yang terkait dengan logaritma dari data sebelumnya.

Plot probabilitas

log(1+0)=0) diplot terlalu rendah. Kiri bawah adalah plot probabilitas untuk dataset yang disensor dengan nilai awal 120, yang dekat dengan batas pelaporan tipikal. Kesesuaian di kiri bawah sekarang layak - kami hanya berharap bahwa semua nilai ini mendekati, tetapi di sebelah kanan, garis yang pas - tetapi kelengkungan di ekor atas menunjukkan bahwa menambahkan 120 mulai mengubah bentuk distribusi. Kanan bawah menunjukkan apa yang terjadi pada data delta-lognormal: ada kecocokan yang baik untuk ekor atas, tetapi beberapa kelengkungan diucapkan dekat batas pelaporan (di tengah plot).

Akhirnya, mari kita jelajahi beberapa skenario yang lebih realistis:

Plot probabilitas 2

Kiri atas menunjukkan dataset tersensor dengan nol diatur ke setengah batas pelaporan. Ini sangat cocok. Di kanan atas adalah dataset yang lebih realistis (dengan batas pelaporan yang berbeda-beda secara acak). Nilai awal 1 tidak membantu, tetapi - di kiri bawah - untuk nilai awal 120 (dekat kisaran atas batas pelaporan) kecocokannya cukup baik. Menariknya, kelengkungan di dekat tengah ketika titik-titik naik dari ND ke nilai-nilai yang dikuantifikasi mengingatkan pada distribusi delta lognormal (walaupun data ini tidak dihasilkan dari campuran seperti itu). Di kanan bawah adalah plot probabilitas yang Anda dapatkan ketika data realistis memiliki ND mereka diganti dengan setengah dari batas pelaporan (khas). Ini paling cocok, meskipun itu menunjukkan beberapa perilaku seperti delta-lognormal di tengah.

Jadi, yang harus Anda lakukan adalah menggunakan plot peluang untuk menjelajahi distribusi karena berbagai konstanta digunakan sebagai pengganti ND. Mulai pencarian dengan setengah dari batas nominal, rata-rata, pelaporan, lalu variasikan dari atas ke bawah. Pilih plot yang terlihat seperti kanan bawah: kira-kira garis lurus diagonal untuk nilai-nilai yang dikuantifikasi, drop-off cepat ke dataran tinggi rendah, dan dataran tinggi nilai-nilai yang (hampir pas-pasan) memenuhi perluasan diagonal. Namun, mengikuti saran Helsel (yang sangat didukung dalam literatur), untuk ringkasan statistik aktual, hindari metode apa pun yang menggantikan ND dengan konstanta apa pun. Untuk regresi, pertimbangkan untuk menambahkan variabel dummy untuk menunjukkan ND. Untuk beberapa tampilan grafis, penggantian ND konstan dengan nilai yang ditemukan dengan latihan plot probabilitas akan bekerja dengan baik. Untuk tampilan grafis lainnya, penting untuk menggambarkan batas pelaporan yang sebenarnya, jadi gantilah ND dengan batas pelaporannya. Anda harus fleksibel!

whuber
sumber
1
Jawaban yang sangat bagus! Saya sangat setuju. Dan saya akrab dengan perasaan ketika Anda melihat data dan menyadari bahwa sebelum itu telah diubah "seperti biasa" ada set data yang sangat berguna ...
cbeleites mendukung Monica
1
batas yang berbeda-beda : beberapa pendekatan berbeda untuk menghitung LOD (batas deteksi -> untuk jawaban kualitatif) dan LOQ (batas kuantisasi, yang untuk pengukuran kuantitatif) ada. Saya kira satu lab biasanya tidak akan mengubah metode bagaimana ini dihitung (untuk metode analisis yang sama). Namun, nilai-nilai ini dihitung ulang setiap kali perhitungan dilakukan. Jika metode ini membutuhkan kalibrasi setiap hari kerja, maka setiap hari Anda akan memiliki batas (sedikit) berbeda.
cbeleites mendukung Monica
1
batas dan alasan hukum untuk tidak memberikan angka rendah: alasan hukum tidak akan melarang pemberian (tambahan) informasi yang lebih jelas seperti sinyal mentah, konsentrasi yang sesuai dan interval kepercayaan / penilaian pengukuran (misalnya "di bawah LOQ"). Anda juga dapat meminta lab analisis untuk kurva kalibrasi. Saya berharap Anda harus membayar untuk itu karena ini adalah pekerjaan tambahan, tetapi saya berharap ini menjadi mungkin. Kompromi yang lebih murah mungkin karena mereka memberi Anda semua data mentah dan menyerahkan analisis data kepada Anda. Mungkin membantu jika mereka tahu Anda ahli statistik / ahli kimia / kimia analitik / ...
cbeleites mendukung Monica
1
Dalam pekerjaan saya, kita sering menemukan angka nol karena datanya bulat. Dalam kasus seperti ini, ini adalah data yang dikelompokkan, lihat stats.stackexchange.com/questions/26950/…
Stéphane Laurent
2
Ada seluruh bidang, "chemometrics," yang dikhususkan untuk ini dan mata pelajaran terkait, dan seluruh buku telah ditulis (dan terus ditulis) hanya berurusan dengan apa "batas deteksi" itu. Saya telah menemukan lebih dari 20 definisi berbeda! Masalah mengekspresikan kembali variabel (seperti mengambil logaritma) juga merupakan kunci dalam analisis data dan eksplorasi data; sebagian besar dari banyak buku (terutama buku tentang analisis data eksplorasi) fokus pada masalah itu.
whuber
5

@miura

EconStats
sumber
3

ithmean(xi)n×stddev(xi)n

Perhatikan bahwa pengaturan buatan semacam itu akan memengaruhi analisis Anda sehingga Anda harus berhati-hati dengan interpretasi Anda dan dalam beberapa kasus membuang kasus-kasus ini untuk menghindari artefak.

Menggunakan batas deteksi juga merupakan ide yang masuk akal.

Itamar
sumber
3

Untuk memperjelas cara menangani log nol dalam model regresi, kami telah menulis makalah pedagogis yang menjelaskan solusi terbaik dan kesalahan umum yang dilakukan orang dalam praktik. Kami juga mengeluarkan solusi baru untuk mengatasi masalah ini.

Anda dapat menemukan kertas dengan mengklik di sini: https://ssrn.com/abstract=3444996

log(y)=βlog(x)+εβyx

YY+c>0

Dalam artikel kami, kami benar-benar memberikan contoh di mana menambahkan konstanta yang sangat kecil sebenarnya memberikan bias tertinggi. Kami memberikan turunan ekspresi bias.

Sebenarnya, Poisson Pseudo Maximum Likelihood (PPML) dapat dianggap sebagai solusi yang baik untuk masalah ini. Kita harus mempertimbangkan proses berikut:

yi=aiexp(α+xiβ)E(ai|xi)=1

βaiyi=0E(ai|xi)=1E(yiexp(α+xiβ)|xi)=0

i=1N(yiexp(α+xiβ))xi=0

yi=0

β

log(yi+exp(α+xiβ))=xiβ+ηi

Kami menunjukkan bahwa penaksir ini tidak bias dan hanya dapat diperkirakan dengan GMM dengan perangkat lunak statistik standar apa pun. Misalnya, dapat diperkirakan dengan mengeksekusi hanya satu baris kode dengan Stata.

Kami harap artikel ini dapat membantu dan kami ingin mendapatkan umpan balik dari Anda.

Christophe Bellégo dan Louis-Daniel Pape, CREST - Ecole Polytechnique - ENSAE

Christophe Bellégo
sumber