Bagaimana saya harus memodelkan variabel dependen kontinu dalam

9

Saya memiliki variabel dependen yang dapat berkisar dari 0 hingga tak terbatas, dengan 0s sebenarnya pengamatan yang benar. Saya mengerti menyensor dan model Tobit hanya berlaku ketika nilai sebenarnya dari adalah sebagian tidak diketahui atau hilang, di mana data kasus dikatakan terpotong. Beberapa informasi lebih lanjut tentang data yang disensor di utas ini .Y

Tapi di sini 0 adalah nilai sebenarnya yang dimiliki populasi. Menjalankan OLS pada data ini memiliki masalah menjengkelkan tertentu untuk membawa perkiraan negatif. Bagaimana saya harus memodelkan ?Y

> summary(data$Y)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   0.00    0.00    0.00    7.66    5.20  193.00 
> summary(predict(m))
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  -4.46    2.01    4.10    7.66    7.82  240.00 
> sum(predict(m) < 0) / length(data$Y)
[1] 0.0972098

Perkembangan

Setelah membaca jawabannya, saya melaporkan kecocokan model rintangan Gamma menggunakan fungsi estimasi yang sedikit berbeda. Hasilnya cukup mengejutkan bagi saya. Pertama mari kita lihat DV. Yang jelas adalah data ekor yang sangat gemuk. Ini memiliki beberapa konsekuensi menarik pada evaluasi kecocokan yang akan saya komentari di bawah ini:

masukkan deskripsi gambar di sini

quantile(d$Y, probs=seq(0, 1, 0.1))
        0%        10%        20%        30%        40%        50%        60%        70%        80%        90%       100% 
  0.000000   0.000000   0.000000   0.000000   0.000000   0.000000   0.286533   3.566165  11.764706  27.286630 198.184818 

Saya membuat model rintangan Gamma sebagai berikut:

d$zero_one = (d$Y > 0)
logit = glm(zero_one ~ X1*log(X2) + X1*X3, data=d, family=binomial(link = logit))
gamma = glm(Y ~ X1*log(X2) + X1*X3, data=subset(d, Y>0), family=Gamma(link = log))

Akhirnya saya mengevaluasi kecocokan sampel dengan menggunakan tiga teknik berbeda:

# logit probability * gamma estimate
predict1 = function(m_logit, m_gamma, data)
{
  prob = predict(m_logit, newdata=data, type="response")
  Yhat = predict(m_gamma, newdata=data, type="response")
  return(prob*Yhat)
}

# if logit probability < 0.5 then 0, else logit prob * gamma estimate 
predict2 = function(m_logit, m_gamma, data)
{
  prob = predict(m_logit, newdata=data, type="response")
  Yhat = predict(m_gamma, newdata=data, type="response")
  return(ifelse(prob<0.5, 0, prob)*Yhat)
}

# if logit probability < 0.5 then 0, else gamma estimate
predict3 = function(m_logit, m_gamma, data)
{
  prob = predict(m_logit, newdata=data, type="response")
  Yhat = predict(m_gamma, newdata=data, type="response")
  return(ifelse(prob<0.5, 0, Yhat))
}

Pada awalnya saya mengevaluasi kecocokan dengan langkah-langkah biasa: AIC, null deviance, mean absolute error, dll. Tetapi melihat kesalahan absolut kuantil dari fungsi-fungsi di atas menyoroti beberapa masalah terkait dengan probabilitas tinggi hasil 0 danYekor gemuk ekstrim. Tentu saja, kesalahan tumbuh secara eksponensial dengan nilai Y yang lebih tinggi (ada juga nilai Y yang sangat besar di Max), tetapi yang lebih menarik adalah bahwa sangat bergantung pada model logit untuk memperkirakan 0s menghasilkan distribusi distribusi yang lebih baik (saya tidak akan ' tidak tahu cara menggambarkan fenomena ini dengan lebih baik):

quantile(abs(d$Y - predict1(logit, gamma, d)), probs=seq(0, 1, 0.1))
           0%           10%           20%           30%           40%           50%           60%           70%           80%           90%          100% 
   0.00320459    1.45525439    2.15327192    2.72230527    3.28279766    4.07428682    5.36259988    7.82389110   12.46936416   22.90710769 1015.46203281 
quantile(abs(d$Y - predict2(logit, gamma, d)), probs=seq(0, 1, 0.1))
         0%         10%         20%         30%         40%         50%         60%         70%         80%         90%        100% 
   0.000000    0.000000    0.000000    0.000000    0.000000    0.309598    3.903533    8.195128   13.260107   24.691358 1015.462033 
quantile(abs(d$Y - predict3(logit, gamma, d)), probs=seq(0, 1, 0.1))
         0%         10%         20%         30%         40%         50%         60%         70%         80%         90%        100% 
   0.000000    0.000000    0.000000    0.000000    0.000000    0.307692    3.557285    9.039548   16.036379   28.863912 1169.321773 
Robert Kubrick
sumber
3
Apakah variabel kontinu selain dari 0? Jika demikian, model nol-inflasi (mis. Gamma nol-meningkat / nol dll dapat digunakan)
Glen_b -Reinstate Monica
Iya. Itu bukan model probit pasti. Saya agak ragu-ragu tentang model zero-inflated, karena sepertinya menyarankan 0s yang dilaporkan berlebihan dan distribusi IV "memiliki masalah", bisa dikatakan, di mana dalam kasus saya semua nilai IV sudah benar.
Robert Kubrick
Dan bagaimana dengan menghapus intersep (saya tahu, saya tahu ... tapi di sini asalnya benar-benar 0)?
Robert Kubrick
Bisakah Anda memberi kami wawasan tentang mekanisme menghasilkan data? Misalnya, distribusi poisson majemuk dapat menangani jenis data ini, tetapi sebenarnya ini dirancang untuk memodelkan jumlah dari beberapa statistik yang diterapkan pada kumpulan peristiwa acak (yaitu jumlah biaya klaim asuransi pada suatu kebijakan).
jlimahaverford
2
Robert, beberapa contoh konkret dari model nol-inflasi untuk mengeluarkannya dari tanah abstraksi (dan untuk membantu menjelaskan mengapa mereka tidak benar-benar tentang data "mengalami masalah"): (1) berapa banyak rokok yang dihisap per hari di masa lalu 30 hari mungkin memerlukan model inflasi nol, karena seseorang harus terbiasa merokok agar jumlahnya> 0. (2) Berapa banyak ikan yang ditangkap dalam perjalanan berperahu ini mengharuskan seseorang untuk menangkap ikan dengan angka> 0.
Alexis

Jawaban:

14

Disensor vs meningkat vs rintangan

Model yang disensor, rintangan, dan inflasi bekerja dengan menambahkan titik massa di atas kepadatan probabilitas yang ada. Perbedaannya terletak pada di mana massa ditambahkan, dan bagaimana. Untuk saat ini, cukup pertimbangkan untuk menambahkan titik massa pada 0, tetapi konsepnya digeneralisasikan dengan mudah ke kasus lain.

Semuanya menyiratkan proses menghasilkan data dua langkah untuk beberapa variabel Y:

  1. Gambarlah untuk menentukan apakah Y=0 atau Y>0.
  2. Jika Y>0, gambar untuk menentukan nilai Y.

Model inflasi dan rintangan

Baik model inflated (biasanya zero-inflated) maupun hurdle bekerja dengan menentukan secara eksplisit dan terpisah Pr(Y=0)=π, sehingga DGP menjadi:

  1. Draw sekali dari ZBernHaikamullsaya(π) untuk mendapatkan realisasi z.
  2. Jika z=0, atur y=z=0.
  3. Jika z=1, menggambar sekali dari YD(θ) dan mengatur y=y.

Dalam model inflasi, Pr(Y=0)>0. Dalam model rintangan,Pr(Y=0)=0. Itulah satu-satunya perbedaan .

Kedua model ini mengarah pada kepadatan dengan bentuk berikut:

fD(y)=saya(y=0)Pr(Y=0)+saya(y0)Pr(Y0)fD(y)

dimana sayaadalah fungsi indikator. Yaitu, titik massa hanya ditambahkan pada nol dan dalam hal ini massa itu sederhanaPr(Z=0)=1-π. Anda bebas memperkirakanhal langsung, atau untuk mengatur g(π)=Xβ untuk beberapa yang bisa dibalik g seperti fungsi logit. D juga bisa bergantung Xβ. Dalam hal itu, model bekerja dengan "melapiskan" regresi logistik untukZ di bawah model regresi lain untuk Y.

Model yang disensor

Model yang disensor juga menambah massa pada batas. Mereka mencapai ini dengan "memotong" distribusi probabilitas, dan kemudian "mengumpulkan" kelebihan pada batas itu. Cara termudah untuk membuat konsep model ini adalah dalam hal variabel latenYD dengan CDF FD. KemudianPr(Yy)=FD(y). Ini adalah model yang sangat umum; Regresi adalah kasus khusus di manaFD tergantung pada Xβ.

Yang diamati Y diasumsikan terkait dengan Y oleh:

Y={0Y0YY>0

Ini menyiratkan kepadatan bentuk

fD(y)=saya(y=0)FD(0)+saya(y0)(1-FD(0))fD(y)

dan dapat dengan mudah diperpanjang.

Menyatukannya

Lihatlah kepadatannya:

fD(y)=saya(y=0)π+saya(y0)(1-π)fD(y)fD(y)=saya(y=0)FD(0)+saya(y0)(1-FD(0))fD(y)

dan perhatikan bahwa keduanya memiliki bentuk yang sama:

saya(y=0)δ+saya(y0)(1-δ)fD(y)

karena mereka mencapai tujuan yang sama: membangun kepadatan untuk Y dengan menambahkan titik massa δ dengan kepadatan untuk beberapa Y. Set inflated / rintangan modelδmelalui proses Bernoulli eksternal. Model yang disensor menentukanδ dengan "memotong" Y pada batas, dan kemudian "menggumpal" massa sisa di batas itu.

Bahkan, Anda selalu dapat mendalilkan model rintangan yang "terlihat seperti" model yang disensor. Pertimbangkan model rintangan di manaD parameter oleh μ=Xβ dan Z parameter oleh g(π)=Xβ. Maka Anda bisa mengaturg=FD-1. CDF terbalik selalu merupakan fungsi tautan yang valid dalam regresi logistik, dan memang satu alasan mengapa regresi logistik disebut "logistik" adalah karena tautan logit standar sebenarnya adalah CDF terbalik dari distribusi logistik standar.

Anda juga dapat memahami gagasan ini: model regresi Bernoulli dengan tautan CDF terbalik (seperti logit atau probit) dapat dikonseptualisasikan sebagai model variabel laten dengan ambang batas untuk mengamati 1 atau 0. Regresi disensor adalah kasus khusus dari rintangan regresi di mana variabel laten tersirat Z sama dengan Y.

Yang mana yang harus Anda gunakan?

Jika Anda memiliki "cerita sensor" yang meyakinkan, gunakan model yang disensor. Salah satu penggunaan klasik dari model Tobit - nama ekonometrik untuk regresi linier Gaussian yang disensor - adalah untuk memodelkan respons survei yang "berkode atas". Upah sering dilaporkan dengan cara ini, di mana semua upah di atas beberapa cutoff, katakanlah 100.000, hanya diberi kode 100.000. Ini bukan hal yang sama dengan pemotongan , di mana individu dengan upah di atas 100.000 tidak diamati sama sekali . Ini mungkin terjadi dalam survei yang hanya diberikan kepada individu dengan upah di bawah 100.000.

Penggunaan lain untuk menyensor, seperti dijelaskan oleh whuber dalam komentar, adalah ketika Anda melakukan pengukuran dengan instrumen yang memiliki presisi terbatas. Misalkan perangkat pengukur jarak Anda tidak dapat membedakan antara 0 danϵ. Maka Anda bisa menyensor distribusi Anda diϵ.

Kalau tidak, model rintangan atau inflasi adalah pilihan yang aman. Biasanya tidak salah untuk menghipotesiskan proses pembuatan data dua langkah umum, dan ini dapat menawarkan beberapa wawasan tentang data Anda yang mungkin tidak Anda miliki sebelumnya.

Di sisi lain, Anda dapat menggunakan model yang disensor tanpa cerita sensor untuk menciptakan efek yang sama dengan model rintangan tanpa harus menentukan proses "on / off" yang terpisah. Ini adalah pendekatan Sigrist dan Stahel (2010) , yang menyensor distribusi gamma bergeser hanya sebagai cara untuk memodelkan data dalam[0,1]. Makalah itu sangat menarik karena menunjukkan bagaimana modular model-model ini: Anda sebenarnya dapat mengembang nol dari model yang disensor (bagian 3.3), atau Anda dapat memperluas "cerita variabel laten" ke beberapa variabel laten yang tumpang tindih (bagian 3.1).

Pemotongan

Sunting: dihapus, karena solusi ini salah

shadowtalker
sumber
2
Pemotongan tidak benar; Anda memang ingin menyensor. Pemotongan distribusi kontinu mengarah ke probabilitas nol bahwa titik akhir direalisasikan. Penyensoran distribusi pada nol menyebabkan probabilitas semua nilai negatif diakumulasikan menjadi nol, menciptakan atom diskret di sana: "nol inflasi." Faktanya, komentar menunjukkan bahwa sensor sebenarnya terjadi pada nilai positif yang sangat kecilϵ dan bahwa semua nilai kurang dari ϵdicatat sebagai nol: yaitu menyensor, murni dan sederhana.
whuber
@whuber aku tidak pernah memikirkan itu sebelumnya. Untuk rvX yang terpotong di bawah c, Pr(Xc)=0, Baik? Itu, dan distribusi setengah-Cauchy atau setengah-t digunakan untuk parameter skala positif . Sekarang saya ingin tahu tentang perbedaan antara distribusi yang disensor dan distribusi terpotong batas meningkat ...
shadowtalker
Secara matematis saya tidak melihat perbedaan. Secara konseptual saya akan bersedia untuk mengakui bahwa mungkin ada perbedaan yang halus, dalam hal distribusi yang disensor menunjukkan kepada kita seperti apa distribusi hasil tanpa sensor hipotetis, sedangkan menempelkan atom pada batas distribusi yang terpotong tidak membuat dugaan tentang hal itu. distribusi hipotetis. Mungkin ada perbedaan matematis ( yaitu nyata) dalam situasi sensor yang lebih kompleks, seperti ketika batas sensor bervariasi.
whuber
@whuber itu hanya turun ke bagaimana atom parameternya, kan? Seperti pada, Gaussian nol-sensor akan setara dengan Gaussian nol-inflasi, terpotong dengan "fungsi tautan" Probit
shadowtalker
1
Itu terdengar seperti model yang lebih rumit (secara umum) daripada regresi sederhana yang saya jelaskan. Saya tidak menyarankan batas untukyakan bervariasi: namun, relatif terhadap distribusi residu , batasnya bervariasi. Jika Anda suka, biarkanθ=Xβ dan mengatur Fθ(y)=F(y-θ)=F(y-Xβ), maka Fθ(0)=F(-Xβ): yang menunjukkan model saya sebagai kasus khusus yang lebih umum yang baru saja Anda jelaskan.
whuber
0

Mari saya mulai dengan mengatakan bahwa menerapkan OLS sepenuhnya mungkin, banyak aplikasi kehidupan nyata melakukan ini. Ini menyebabkan (kadang-kadang) masalah yang Anda dapat berakhir dengan nilai-nilai pas kurang dari 0 - saya menganggap ini yang Anda khawatirkan? Tetapi jika hanya sedikit nilai yang dipasang di bawah 0, maka saya tidak akan khawatir tentang hal itu.

Model tobit dapat (seperti yang Anda katakan) digunakan dalam kasus model yang disensor atau terpotong. Tapi itu juga berlaku langsung ke kasing Anda, bahkan model tobit ditemukan kasing Anda. Y "menumpuk" pada 0, dan sebaliknya terus menerus kasar. Yang perlu diingat adalah bahwa model tobit sulit ditafsirkan, Anda harus bergantung pada APE dan PEA. Lihat komentar di bawah.

Anda juga bisa menerapkan model regresi posisi, yang memiliki interpretasi hampir OLS - tetapi biasanya digunakan dengan data jumlah. Wooldridge 2012 CHAP 17, berisi diskusi yang sangat rapi tentang subjek.

Repmat
sumber
"model tobit tidak memiliki interpretasi nyata" bisakah Anda menjelaskan ini lebih banyak? Saya tidak bisa mengatakan saya setuju dengan pernyataan itu apa adanya.
shadowtalker
Saya menambahkan persentase perkiraan negatif ke pertanyaan saya. Ini 10% dari sampel, cukup tinggi. Apa yang akan terjadi?c, konstanta sensor, dalam kasus saya? Tidak ada nilai sensor tetap setelahnyaYmenjadi 0. Dan apa itu APE dan PEA?
Robert Kubrick
@ssdecontrol Dalam model tobit, \ beta_j mengukur efek parsial x_j pada E (y * | x), di mana y * adalah variabel laten (disebut). Variabel yang diinginkan OP adalah y, yang merupakan hasil yang diamati (jam kerja, kontribusi amal, dll.). Inilah sebabnya mengapa seseorang harus mengandalkan efek parsial rata-rata (APE) dan efek parsial pada rata-rata (PEA). Anda sebaiknya tidak menggunakan model yang disensor. Jika data Anda disensor, Anda akan tahu, yaitu: Anda memiliki pertanyaan tentang penghasilan, di mana jawaban terakhir adalah "Saya mendapat lebih dari $ x", informasi itu dapat "dimasukkan ke dalam" perkiraan -> penyensoran.
Repmat
@ user3551644 yakin, tapi saya tidak melihat bagaimana Anda dapat mengatakan bahwa model karena itu memiliki "tidak ada interpretasi nyata"
shadowtalker
Hmm, oke, saya akan memperbarui jawaban saya.
Repmat