“ รุ่นรั้วกระโดดข้าม” เป็นแบบจำลองเดียวจริง ๆ หรือไม่ หรือเพียงแค่สองรุ่นแยกตามลำดับ?


25

พิจารณาตัวแบบอุปสรรค์ที่ทำนายข้อมูลนับyจากตัวทำนายปกติx:

set.seed(1839)
# simulate poisson with many zeros
x <- rnorm(100)
e <- rnorm(100)
y <- rpois(100, exp(-1.5 + x + e))

# how many zeroes?
table(y == 0)

FALSE  TRUE 
   31    69 

ในกรณีนี้ฉันมีข้อมูลนับด้วย 69 ศูนย์และจำนวนบวก 31 รายการ ไม่เป็นไรตอนนี้โดยนิยามของกระบวนการสร้างข้อมูลเป็นกระบวนการปัวซองเพราะคำถามของฉันเกี่ยวกับแบบจำลองอุปสรรค์

สมมติว่าฉันต้องการจัดการค่าศูนย์ส่วนเกินเหล่านี้ด้วยแบบจำลองอุปสรรค์ จากการอ่านของฉันเกี่ยวกับพวกเขาดูเหมือนว่าแบบจำลองอุปสรรค์ไม่ใช่แบบจำลองที่แท้จริงต่อพวกเขากำลังทำการวิเคราะห์สองแบบที่ต่างกันตามลำดับ ก่อนอื่นการถดถอยแบบลอจิสติกจะทำนายว่าค่านั้นเป็นค่าบวกกับศูนย์หรือไม่ ประการที่สองการถดถอยปัวซองที่ไม่มีการตัดทอนด้วยการรวมกรณีที่ไม่เป็นศูนย์เท่านั้น ขั้นตอนที่สองนี้รู้สึกผิดกับฉันเพราะเป็น (ก) ทิ้งข้อมูลที่ดีอย่างสมบูรณ์แบบซึ่ง (b) อาจนำไปสู่ปัญหาด้านพลังงานเนื่องจากข้อมูลส่วนใหญ่เป็นศูนย์และ (c) ไม่ใช่ "แบบจำลอง" ในตัวของมันเอง แต่เพียงแค่เรียกใช้สองรุ่นที่แตกต่างกันตามลำดับ

ดังนั้นฉันจึงลอง "แบบจำลองอุปสรรค์" กับเพิ่งใช้การถดถอยแบบโลจิสติกและศูนย์ที่ถูกตัดทอนแยกต่างหาก พวกเขาให้คำตอบที่เหมือนกัน (ฉันจะย่อเอาท์พุทเพื่อประโยชน์ของความกะทัดรัด):

> # hurdle output
> summary(pscl::hurdle(y ~ x))

Count model coefficients (truncated poisson with log link):
            Estimate Std. Error z value Pr(>|z|)  
(Intercept)  -0.5182     0.3597  -1.441   0.1497  
x             0.7180     0.2834   2.533   0.0113 *

Zero hurdle model coefficients (binomial with logit link):
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  -0.7772     0.2400  -3.238 0.001204 ** 
x             1.1173     0.2945   3.794 0.000148 ***

> # separate models output
> summary(VGAM::vglm(y[y > 0] ~ x[y > 0], family = pospoisson()))

Coefficients: 
            Estimate Std. Error z value Pr(>|z|)  
(Intercept)  -0.5182     0.3597  -1.441   0.1497  
x[y > 0]      0.7180     0.2834   2.533   0.0113 *

> summary(glm(I(y == 0) ~ x, family = binomial))

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)   0.7772     0.2400   3.238 0.001204 ** 
x            -1.1173     0.2945  -3.794 0.000148 ***
---

สิ่งนี้ดูเหมือนกับฉันเนื่องจากการแสดงทางคณิตศาสตร์หลายแบบรวมถึงความน่าจะเป็นที่การสังเกตนั้นไม่เป็นศูนย์ในการประมาณจำนวนคดีที่เป็นบวก แต่โมเดลที่ฉันวิ่งไปด้านบนนั้นไม่สนใจสิ่งใดเลย ตัวอย่างเช่นนี่คือจากบทที่ 5 หน้า 128 ของโมเดลเชิงเส้นทั่วไปของ Smithson & Merkle สำหรับตัวแปรที่ขึ้นอยู่กับหมวดหมู่และ จำกัด อย่างต่อเนื่อง :

... ประการที่สองความน่าจะเป็นที่ถือว่าค่าใด ๆ (ศูนย์และจำนวนเต็มบวก) ต้องเท่ากับหนึ่ง ไม่รับประกันในสมการ (5.33) เพื่อจัดการกับปัญหานี้เราคูณน่าจะเป็น Poisson โดย Bernoulli น่าจะประสบความสำเร็จ\      ปัญหาเหล่านี้ต้องการให้เราแสดงโมเดลตัวกีดขวางด้านบนในรูปแบบ โดยที่ , ,πyπ

(5.34)P(Y=y|x,z,β,γ)={1π^for y=0π^×exp(λ^)λ^y/y!1exp(λ^)for y=1,2,
π =Loกรัมฉันที-1(Zγ)xZ β γλ^=exp(xβ)π^=logit1(zγ)xเป็นโควาเรียตสำหรับโมเดลปัวซองคือโควาเรียตสำหรับโมเดลการถดถอยโลจิสติกและและเป็นค่าสัมประสิทธิ์การถดถอยตามลำดับ ... . zβ^γ^

โดยการทำทั้งสองแบบแยกจากกันโดยสิ้นเชิง - ซึ่งดูเหมือนจะเป็นสิ่งที่แบบจำลองอุปสรรค์ทำ - ฉันไม่เห็นว่ารวมอยู่ในการทำนายของจำนวนคดีที่เป็นบวก แต่จากวิธีที่ฉันสามารถจำลองฟังก์ชันได้โดยใช้รุ่นที่แตกต่างกันสองรุ่นฉันไม่เห็นว่ามีบทบาทใน Poisson ที่ถูกตัดทอน การถดถอยทั้งหมดπ^hurdlelogit1(zγ^)

ฉันเข้าใจโมเดลอุปสรรค์อย่างถูกต้องหรือไม่? ดูเหมือนว่าพวกเขาสองคนกำลังรันโมเดลเรียงตามลำดับสองแบบ: อันดับแรกโลจิสติกส์ ประการที่สอง Poisson สมบูรณ์ละเว้นกรณีที่0 ฉันอยากจะขอบคุณถ้ามีคนสามารถล้างขึ้นความสับสนของฉันกับธุรกิจy=0π^


หากฉันถูกต้องว่านั่นคือสิ่งที่แบบจำลองอุปสรรค์อะไรคือความหมายของรูปแบบ "อุปสรรค์" โดยทั่วไปมากขึ้น? ลองนึกภาพสองสถานการณ์ที่แตกต่าง:

  • ลองนึกภาพการสร้างแบบจำลองความสามารถในการแข่งขันของเผ่าพันธุ์เลือกโดยดูจากคะแนนการแข่งขัน (1 - (สัดส่วนของผู้ชนะในการโหวต - สัดส่วนการโหวตของนักวิ่งขึ้น) นี่คือ [0, 1) เนื่องจากไม่มีความสัมพันธ์ (เช่น 1) แบบจำลองอุปสรรค์ทำให้รู้สึกที่นี่เพราะมีกระบวนการหนึ่ง (a) การเลือกตั้งไม่มีใครโต้แย้ง? และ (b) ถ้าไม่ใช่ก็เป็นสิ่งที่สามารถแข่งขันได้ ดังนั้นก่อนอื่นเราทำการถดถอยโลจิสติกเพื่อวิเคราะห์ 0 เทียบกับ (0, 1) จากนั้นเราทำการถดถอยเบต้าเพื่อวิเคราะห์กรณี (0, 1)

  • ลองนึกภาพการศึกษาทางจิตวิทยาทั่วไป การตอบสนองคือ [1, 7] เหมือนมาตราส่วน Likert แบบดั้งเดิมโดยมีเอฟเฟกต์เพดานขนาดใหญ่ที่ 7 เราสามารถทำแบบจำลองอุปสรรค์นั่นคือการถดถอยแบบลอจิสติกของ [1, 7) กับ 7 และจากนั้นก็ถดถอย Tobit สำหรับทุกกรณี คำตอบที่สังเกตได้คือ <7

มันจะปลอดภัยไหมที่จะเรียกทั้งสองแบบว่า "อุปสรรค์" ในสถานการณ์เหล่านี้แม้ว่าฉันจะประเมินพวกมันด้วยสองซีเควนเชียลต่อเนื่อง (โลจิสติกแล้วเบต้าในกรณีแรกโลจิสติกแล้ว Tobit ในวินาที)


5
ฉันเชื่อว่ารุ่นอุปสรรค์จะเทียบเท่ากับการใช้งานทั้งสองแบบจำลอง(ไบนารี + ศูนย์ที่ถูกตัดทอน) เหตุผลทางเทคนิคที่ใช้งานได้ก็คือโมเดลแรกใช้เพียงศูนย์ / ไม่เป็นศูนย์เพื่อประเมิน ; รูปแบบที่สองเงื่อนไขในการที่ไม่ใช่ศูนย์การตอบสนองในการประมาณการ\πλ
Ben Bolker

ดังนั้นจะเป็นสำหรับทุกคนที่ ? π^1iy>0
ทำเครื่องหมายสีขาว

3
ไม่แบบจำลองแบบมีเงื่อนไขจะใช้คำว่าเช่น ...π^P(Y=y|Y>0)=exp(λ^)etc.
Ben Bolker

อ้าขอบคุณ ดังนั้นฉันคิดว่าสมการจาก Smithson และ Merkle อธิบายถึงรูปแบบที่แตกต่างจากที่นำมาใช้pscl::hurdleแต่ดูเหมือนกันในสมการ 5 ที่นี่: cran.r-project.org/web/packages/pscl/vignettes/countreg.pdfหรือบางทีฉันอาจ ยังขาดสิ่งพื้นฐานที่จะทำให้คลิกสำหรับฉัน
ทำเครื่องหมายสีขาว

4
มันเป็นรูปแบบเดียวกัน ไมค์และเอ็ดโฟกัสในกรณีที่ง่าย (logit + Poisson) hurdle()ซึ่งเป็นค่าเริ่มต้นใน ในคู่ของเรา / บทความสั้น ๆ เราพยายามเน้นการสร้างแบบทั่วไปมากขึ้น
Achim Zeileis

คำตอบ:


35

การแยกโอกาสในการบันทึก

มันถูกต้องที่โมเดลกีดขวางส่วนใหญ่สามารถประมาณแยกกันได้ (ฉันจะบอกว่าแทนที่จะเรียงตามลำดับ ) เหตุผลคือความเป็นไปได้ในการบันทึกสามารถแบ่งย่อยออกเป็นสองส่วนที่สามารถขยายให้ใหญ่สุดแยกจากกัน นี่เป็นเพราะเป็นเพียงตัวประกอบสเกลใน (5.34) ที่กลายเป็นคำเติมในความน่าจะเป็นบันทึกπ^

ในสัญกรณ์ของ Smithson & Merkle: โดยที่คือความหนาแน่นของการแจกแจงปัวซองและเป็นปัจจัยจากการตัดศูนย์

(β,γ;y,x,z)=1(γ;y,z)+2(β;y,x)=i:yi=0log{1logit1(ziγ)}+i:yi>0log{logit1(ziγ)}+i:yi>0[log{f(yi;exp(xiβ)}log{1f(0;exp(xiβ)}]
f(y;λ)=exp(λ)λy/y!1f(0;λ)=1exp(λ)

จากนั้นจะเห็นได้ชัดว่า (รุ่น logit แบบไบนารี) และ (รุ่น Poisson ศูนย์ที่ถูกตัดทอน) สามารถขยายได้สูงสุดแยกกันนำไปสู่การประมาณค่าพารามิเตอร์เดียวกันความแปรปรวนร่วม ฯลฯ ในกรณี พวกเขาอยู่ที่ไหนกันให้มากที่สุด2 ( β )1(γ)2(β)

ตรรกะเดียวกันยังทำงานถ้าศูนย์กีดขวางน่าจะเป็นไม่ได้ parametrized ผ่านรูปแบบการ logit แต่รูปแบบการถดถอยไบนารีอื่น ๆ เช่นการกระจายการนับขวาเซ็นเซอร์ที่ 1 และแน่นอน,อาจจะมีการ การแจกแจงการนับอีกครั้ง, เช่นทวินามลบ การแยกทั้งหมดจะหยุดลงหากมีพารามิเตอร์ที่ใช้ร่วมกันระหว่างศูนย์กีดขวางและส่วนที่ถูกตัดทอนf ( )πf()

ตัวอย่างที่เด่นชัดคือหากมีการแจกแจงแบบทวินามลบด้วยแยกต่างหากแต่พารามิเตอร์ทั่วไปถูกใช้ในสององค์ประกอบของแบบจำลอง (สิ่งนี้มีอยู่ในแพ็คเกจจาก R-Forge ผู้สืบทอดไปสู่การใช้งาน)θμθhurdle(..., separate = FALSE, dist = "negbin", zero.dist = "negbin")countregpscl

คำถามที่เป็นรูปธรรม

(a) ทิ้งข้อมูลที่ดีอย่างสมบูรณ์:ในกรณีของคุณใช่โดยทั่วไปไม่ใช่ คุณมีข้อมูลจากรุ่น Poisson เดียวโดยไม่มีศูนย์ส่วนเกิน (แม้ว่าจะมีศูนย์อยู่หลายศูนย์ก็ตาม) ดังนั้นจึงไม่จำเป็นต้องประเมินรุ่นแยกต่างหากสำหรับศูนย์และศูนย์ที่ไม่ใช่ อย่างไรก็ตามหากทั้งสองส่วนได้รับแรงผลักดันจากพารามิเตอร์ที่แตกต่างกันจริงๆ

(b) อาจนำไปสู่ปัญหาพลังงานเนื่องจากข้อมูลส่วนใหญ่เป็นศูนย์:ไม่จำเป็น ที่นี่คุณมีหนึ่งในสามของการสังเกตที่เป็น "ความสำเร็จ" (การข้ามข้ามรั้ว) สิ่งนี้จะไม่ถือว่ารุนแรงมากในรูปแบบการถดถอยแบบไบนารี (แน่นอนถ้าไม่จำเป็นต้องประเมินรุ่นแยกต่างหากคุณจะได้รับพลังงาน)

(c) โดยทั่วไปไม่ใช่ 'model' ในและของตัวเอง แต่เพียงแค่เรียกใช้สองรุ่นที่แตกต่างกัน:นี่คือปรัชญามากขึ้นและฉันจะไม่พยายามให้คำตอบ "หนึ่ง" แต่ฉันจะชี้ให้เห็นมุมมองทางปฏิบัติ สำหรับการประมาณค่าแบบจำลองคุณสามารถเน้นย้ำว่าตัวแบบแยกจากกันได้ง่ายเนื่องจากคุณอาจไม่ต้องการฟังก์ชั่นเฉพาะสำหรับการประมาณ สำหรับแอปพลิเคชันโมเดลเช่นสำหรับการคาดการณ์หรือสิ่งที่เหลือเป็นต้นมันจะสะดวกกว่าที่จะเห็นสิ่งนี้เป็นแบบจำลองเดียว

(d) จะปลอดภัยไหมถ้าจะเรียกโมเดล 'อุปสรรค์' ทั้งสองสถานการณ์นี้:ในหลักการใช่ อย่างไรก็ตามศัพท์แสงอาจแตกต่างกันไปตามชุมชน ตัวอย่างเช่นการถดถอยเบต้าแบบ zero-hurdle นั้นโดยทั่วไป (และสับสนมาก) เรียกว่าการถดถอยเบต้าแบบ zero-inflated โดยส่วนตัวแล้วฉันพบว่าคนหลังเข้าใจผิดมากเพราะการแจกแจงแบบเบต้าไม่มีเลขศูนย์ที่สามารถพองตัวได้ แต่เป็นศัพท์มาตรฐานในวรรณคดี ยิ่งไปกว่านั้นรูปแบบของ tobit นั้นเป็นรูปแบบที่ถูกเซ็นเซอร์ดังนั้นจึงไม่ใช่รูปแบบของสิ่งกีดขวาง มันสามารถขยายได้แม้ว่าโดยโมเดล probit (หรือ logit) บวกกับโมเดลปกติที่ถูกตัดทอน ในวรรณคดีเศรษฐมิติเรื่องนี้เป็นที่รู้จักกันในนามของแบบจำลองสองส่วน Cragg

ความคิดเห็นซอฟต์แวร์

countregแพคเกจใน R-Forge ที่https://R-Forge.R-project.org/R/?group_id=522คือการปฏิบัติสืบต่อไปhurdle()/ จากzeroinfl() psclเหตุผลหลักที่เป็น (ยัง) ไม่ได้อยู่ใน CRAN คือเราต้องการแก้ไขpredict()อินเทอร์เฟซอาจเป็นไปได้ในทางที่ไม่เข้ากันได้แบบย้อนหลังอย่างสมบูรณ์ ไม่เช่นนั้นการใช้งานจะค่อนข้างเสถียร เปรียบเทียบpsclกับคุณสมบัติที่ดีเช่น:

  • zerotrunc()ฟังก์ชั่นที่ใช้ว่ารหัสเดียวกันเป็นhurdle()ส่วนศูนย์ตัดทอนของรูปแบบ VGAMดังนั้นจึงเสนอทางเลือกไปยัง

  • ยิ่งไปกว่านั้นมันเป็นฟังก์ชัน d / p / q / r สำหรับการแจกแจงแบบ zero-truncated, hurdle และ zero-inflated สิ่งนี้จะช่วยอำนวยความสะดวกในการดูสิ่งเหล่านี้เป็นแบบ "หนึ่ง" มากกว่าแบบแยกต่างหาก

  • สำหรับการประเมินความดีของความพอดีจะมีการแสดงกราฟิกเช่นรูตกราฟและการแปลงแบบควอไทล์ควอไทล์แบบสุ่ม (ดู Kleiber & Zeileis, 2016, สถิติอเมริกัน , 70 (3), 296–303. ดอย: 10.1080 / 00031305.2016.1173590 )

ข้อมูลจำลอง

ข้อมูลจำลองของคุณมาจากกระบวนการปัวซองเดียว ถ้าeถือว่าเป็น regressor ที่รู้จักแล้วมันจะเป็น Poisson GLM มาตรฐาน ถ้าeเป็นเสียงรบกวนที่ไม่ทราบสาเหตุมีความแตกต่างที่ไม่ได้รับการสังเกตซึ่งทำให้เกิดการกระจายตัวเล็กน้อยซึ่งอาจถูกจับโดยแบบจำลองทวินามลบหรือการผสมแบบต่อเนื่องอื่น ๆ หรือผลกระทบแบบสุ่มอื่น ๆ อย่างไรก็ตามเนื่องจากผลของeค่อนข้างเล็ก ไม่มีสิ่งใดที่สร้างความแตกต่างอย่างใหญ่หลวง ด้านล่างนี้ฉันกำลังถือว่าeเป็น regressor (เช่นมีสัมประสิทธิ์ที่แท้จริงเท่ากับ 1) แต่คุณสามารถละเว้นสิ่งนี้และใช้โมเดลทวินามลบหรือปัวซองได้ ในเชิงคุณภาพสิ่งเหล่านี้นำไปสู่ข้อมูลเชิงลึกที่คล้ายกัน

## Poisson GLM
p <- glm(y ~ x + e, family = poisson)
## Hurdle Poisson (zero-truncated Poisson + right-censored Poisson)
library("countreg")
hp <- hurdle(y ~ x + e, dist = "poisson", zero.dist = "poisson")
## all coefficients very similar and close to true -1.5, 1, 1
cbind(coef(p), coef(hp, model = "zero"), coef(hp, model = "count"))
##                   [,1]       [,2]      [,3]
## (Intercept) -1.3371364 -1.2691271 -1.741320
## x            0.9118365  0.9791725  1.020992
## e            0.9598940  1.0192031  1.100175

สิ่งนี้สะท้อนให้เห็นว่าทั้งสามรุ่นสามารถประมาณค่าพารามิเตอร์จริงได้อย่างต่อเนื่อง การดูข้อผิดพลาดมาตรฐานที่สอดคล้องกันแสดงให้เห็นว่าในสถานการณ์นี้ (โดยไม่จำเป็นต้องมีส่วนที่เป็นอุปสรรค์) Poisson GLM นั้นมีประสิทธิภาพมากกว่า:

serr <- function(object, ...) sqrt(diag(vcov(object, ...)))
cbind(serr(p), serr(hp, model = "zero"), serr(hp, model = "count"))
##                  [,1]      [,2]      [,3]
## (Intercept) 0.2226027 0.2487211 0.5702826
## x           0.1594961 0.2340700 0.2853921
## e           0.1640422 0.2698122 0.2852902

เกณฑ์ข้อมูลมาตรฐานจะเลือก Poisson GLM ที่แท้จริงเป็นโมเดลที่ดีที่สุด:

AIC(p, hp)
##    df      AIC
## p   3 141.0473
## hp  6 145.9287

และการทดสอบของวอลด์จะตรวจพบอย่างถูกต้องว่าส่วนประกอบทั้งสองของโมเดลอุปสรรค์นั้นไม่แตกต่างกันอย่างมีนัยสำคัญ:

hurdletest(hp)
## Wald test for hurdle models
## 
## Restrictions:
## count_((Intercept) - zero_(Intercept) = 0
## count_x - zero_x = 0
## count_e - zero_e = 0
## 
## Model 1: restricted model
## Model 2: y ~ x + e
## 
##   Res.Df Df  Chisq Pr(>Chisq)
## 1     97                     
## 2     94  3 1.0562     0.7877

ในที่สุดทั้งสองrootogram(p)และqqrplot(p)แสดงให้เห็นว่า Poisson GLM เหมาะกับข้อมูลได้เป็นอย่างดีและไม่มีศูนย์หรือคำแนะนำเพิ่มเติมเกี่ยวกับการสะกดผิดต่อไป

rootogram + qqrplot


ความแตกต่างระหว่างศูนย์ส่วนเกินกับศูนย์จำนวนมากคืออะไร?
เสื่อทาทามิ

1
ตัวอย่าง: การกระจาย Poisson กับความคาดหวังมีความน่าจะเป็นของที่เกี่ยวกับ\% นั่นคือจำนวนศูนย์แน่นอน แต่ถ้าคุณมีการจัดจำหน่ายที่มีรูปร่างของปัวซอง (0.5) แต่ศูนย์มากขึ้นแล้วมีศูนย์ส่วนเกิน f ( 0 ; λ = 0.5 ) 60 %λ=0.5f(0;λ=0.5)60%
Achim Zeileis

4

ฉันเห็นด้วยกับความแตกต่างระหว่างรุ่นที่สูงเกินจริงและอุปสรรค์ที่เข้าใจยาก ทั้งสองชนิดเป็นแบบผสม จากสิ่งที่ฉันสามารถบอกได้ความแตกต่างที่สำคัญคือในรูปแบบที่ไม่พองศูนย์คุณผสมมวลที่ศูนย์ด้วยการแจกแจง \ textit {ที่สามารถรับค่าเป็นศูนย์ได้) สำหรับแบบจำลองอุปสรรค์คุณผสมมวลที่ศูนย์ด้วยการแจกแจงที่ใช้ค่าที่มากกว่า 0 เท่านั้นดังนั้นในแบบจำลองการพองศูนย์คุณสามารถแยกความแตกต่างระหว่าง 'ศูนย์โครงสร้าง' (ตรงกับมวลที่ศูนย์) และ 'ศูนย์สุ่มตัวอย่าง 'สอดคล้องกับโอกาสที่จะเกิดขึ้นจาก 0 จากรูปแบบที่คุณกำลังผสมอยู่แน่นอนว่าการระบุนี้ขึ้นอยู่กับการตัดสินใจที่ถูกต้องของการกระจาย! แต่ถ้าคุณมีปัวซองที่มีค่าเป็นศูนย์เช่น คุณสามารถแยกความแตกต่างระหว่างศูนย์ที่มาจากองค์ประกอบปัวซอง (ศูนย์สุ่มตัวอย่าง) และศูนย์ที่มาจากมวลที่ศูนย์ (ศูนย์โครงสร้าง) หากคุณมีรูปแบบที่ไม่พองศูนย์และการกระจายที่คุณกำลังผสมอยู่นั้นไม่มีมวลเท่ากับศูนย์ก็อาจตีความได้ว่าเป็นแบบจำลองที่มีอุปสรรค์


ในขณะที่ความแตกต่างระหว่างศูนย์สองชนิดนั้นเป็นสิ่งจำเป็นที่มาจากข้อกำหนดของแบบจำลองโดยตรง แต่ก็เป็นไปได้ที่จะคำนวณปริมาณชนิดเดียวกันสำหรับแบบจำลองอุปสรรค์ ศูนย์โครงสร้างที่เรียกว่ายังสามารถคำนวณได้จากการแจกแจงการนับที่ไม่ถูกตัดทอน (กล่าวว่าปัวซอง) แม้ว่าพารามิเตอร์ของมันจะขึ้นอยู่กับตัวอย่างที่ถูกตัดทอน ความน่าจะเป็นสำหรับศูนย์โครงสร้างคือความแตกต่างระหว่างความน่าจะเป็นสำหรับศูนย์ (โดยรวมจากส่วนศูนย์กีดขวาง) และสำหรับศูนย์สุ่มตัวอย่าง
Achim Zeileis

1

เกี่ยวกับมุมมองทางปรัชญา"เมื่อใดที่เราควรพิจารณาแบบจำลองเดียวและเมื่อแยกสองแบบ"มันอาจเป็นเรื่องที่น่าสนใจที่จะทราบว่าตัวอย่างการประมาณค่าพารามิเตอร์ - แบบจำลองนั้นมีความสัมพันธ์กัน

ในพล็อตด้านล่างด้วยการจำลองคุณส่วนใหญ่เห็นความสัมพันธ์ระหว่างความชันและการสกัดกั้นของส่วนที่นับ แต่ก็ยังมีความสัมพันธ์เล็กน้อยระหว่างส่วนการนับและส่วนกีดขวาง หากคุณเปลี่ยนพารามิเตอร์เช่นทำให้แลมบ์ดาในการแจกแจงปัวซองน้อยลงหรือขนาดตัวอย่างเล็กลงความสัมพันธ์ก็จะแข็งแกร่งขึ้น

ดังนั้นฉันจะบอกว่าคุณไม่ควรพิจารณาว่ามันเป็นสองรุ่นแยกกัน หรืออย่างน้อยก็มีความสัมพันธ์บางอย่างแม้ว่าในทางปฏิบัติคุณสามารถคำนวณการประมาณการทั้งสองอย่างเป็นอิสระจากกัน

ความสัมพันธ์

set.seed(1839)

Nrep <- 3000
Ns <- 100
pars <- matrix(rep(0,3*Nrep),Nrep)
colnames(pars) <- c("count_intercept","count_slope","hurdle_intercept")

# simulation-loop
# Note that a truncated poisson is used to generate data
# this will make the parameters from the hurdle function easier to interpret and compare
for (i in 1:Nrep) {
  x <- rnorm(Ns,0,1)
  e <- rbinom(Ns,1,exp(-0.7))
  y <- e*truncdist::rtrunc(n=Ns,spec='pois',a=0,b=Inf,lambda=exp(-1.5 + x))
  mod <- pscl::hurdle(y ~ 1+x|1, link="log")
  pars[i,1]<-mod$coefficients$count[1]
  pars[i,2]<-mod$coefficients$count[2]
  pars[i,3]<-mod$coefficients$zero[1]
}  

# viewing data
plotpars <- pars[pars[,1]>-7,] #clipping
pairs(plotpars,cex=0.7,pch=21,
      col= rgb(0,0,0,0.03),
      bg = rgb(0,0,0,0.03))

# demonstrating linear relation / significant correlation
summary(lm(pars[,1] ~ pars[,3]))

มันไม่สมเหตุสมผลเลยที่มีความสัมพันธ์กันระหว่างสองส่วน แต่อาจเป็นเพราะระดับการแยกของการประมาณค่าพารามิเตอร์ในโมเดลปัวซองและระดับความสัมพันธ์เหล่านี้กับจำนวนศูนย์


ฉันไม่สามารถทำซ้ำสิ่งนี้ สำหรับฉัน: truncdist::rtrunc(n = 100, spec = 'pois', a = 0, b = Inf, lambda = exp(-1.5 + rnorm(100)))อัตราผลตอบแทนข้อผิดพลาด (โดยใช้เวอร์ชั่น Error in if (G.a == G.b) { : the condition has length > 11.0.2): ไม่ว่าในกรณีใดการใช้rhpois()จากแพคเกจcountregบน R-Forge นั้นง่ายกว่าสำหรับการจำลองจากโมเดล Poisson ที่มีความน่าจะเป็นข้ามรั้วกระโดดข้ามpiและความคาดหวังปัวซองแบบlambdaพื้นฐาน ถ้าฉันใช้สิ่งเหล่านี้ฉันจะได้ความสัมพันธ์เชิงประจักษ์ที่น้อยมากระหว่างส่วนที่เป็นศูนย์และกระโดดข้ามที่ถูกตัดทอน
Achim Zeileis

กระบวนการสร้างข้อมูล: dgp <- function(n = 100, b = c(-0.5, 2), g = c(0.5, -2)) { x <- runif(n, -1, 1) ; y <- rhpois(n, lambda = exp(b[1] + b[2] * x), pi = plogis(g[1] + g[2] * x)); data.frame(x = x, y = y) }การจำลอง: set.seed(1); cf <- t(replicate(3000, coef(hurdle(y ~ x, data = dgp())))). การประเมินผล: และpairs(cf) cor(cf)การตรวจสอบcolMeans(cf)ยังแสดงให้เห็นว่าการประมาณการทำงานได้ดีพอสมควร
Achim Zeileis

@AchimZeileis ในขณะนี้ฉันไม่มีความเป็นไปได้ที่จะตรวจสอบข้อผิดพลาดและแสดงความคิดเห็น แต่อย่างไรก็ตามความสัมพันธ์นั้นไม่ได้เล็กไปกว่าภาพที่ฉันแสดง ประเด็นคือปรัชญา / ทฤษฎีมากกว่า ในทางปฏิบัติคุณมักจะมีปัญหาเล็กน้อยเมื่อคุณปฏิบัติต่อโมเดลเป็นสองขั้นตอนแยกจากกันไม่รวมกัน
Sextus Empiricus
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.