อนุกรมเวลาสำหรับข้อมูลการนับด้วยการนับ <20


23

ฉันเพิ่งเริ่มทำงานกับคลินิกวัณโรค เราพบกันเป็นระยะเพื่อพูดคุยเกี่ยวกับจำนวนของผู้ป่วยวัณโรคที่เรากำลังรักษาจำนวนการทดสอบที่ดำเนินการ ฯลฯ ฉันต้องการเริ่มการสร้างแบบจำลองการนับเหล่านี้เพื่อที่เราจะไม่เพียงแค่เดาว่ามีบางอย่างผิดปกติหรือไม่ น่าเสียดายที่ฉันมีการฝึกอบรมน้อยมากในอนุกรมเวลาและการเปิดเผยส่วนใหญ่ของฉันคือการสร้างแบบจำลองสำหรับข้อมูลที่ต่อเนื่องมาก (ราคาหุ้น) หรือการนับจำนวนมาก (ไข้หวัดใหญ่) แต่เราจัดการกับ 0-18 กรณีต่อเดือน (เฉลี่ย 6.68, ค่ามัธยฐาน 7, ค่า 12.3) ซึ่งกระจายอยู่เช่นนี้:

[ภาพหายไปจากหมอกแห่งกาลเวลา]

[ภาพที่กินโดย Grue]

ฉันได้พบบทความเล็ก ๆ น้อย ๆ ที่กล่าวถึงแบบจำลองนี้ แต่ฉันก็ยินดีอย่างยิ่งที่จะได้ยินคำแนะนำจากคุณ - ทั้งแนวทางและแพคเกจ R ที่ฉันสามารถใช้เพื่อใช้แนวทางเหล่านั้น

แก้ไข: คำตอบของ mbq ​​ทำให้ฉันต้องคิดอย่างรอบคอบมากขึ้นเกี่ยวกับสิ่งที่ฉันถามที่นี่ ฉันแขวนสายเกินไปเมื่อนับรายเดือนและไม่ได้โฟกัสที่แท้จริงของคำถาม สิ่งที่ฉันอยากรู้คือ: ลดลง (มองเห็นได้ค่อนข้าง) จาก, 2008 เป็นต้นไปสะท้อนให้เห็นถึงแนวโน้มลดลงในจำนวนรวมของคดี? ฉันดูเหมือนว่าจำนวนผู้ป่วยรายเดือนระหว่างปี 2544-2550 สะท้อนให้เห็นถึงกระบวนการที่มีเสถียรภาพ อาจมีบางฤดูกาล แต่โดยรวมมีเสถียรภาพ จากปี 2008 จนถึงปัจจุบันดูเหมือนว่ากระบวนการนั้นกำลังเปลี่ยนแปลงไป: จำนวนผู้ป่วยโดยรวมลดลงแม้ว่าจำนวนรายเดือนอาจเดินโซเซขึ้น ๆ ลง ๆ เนื่องจากการสุ่มและฤดูกาล ฉันจะทดสอบว่ามีการเปลี่ยนแปลงจริงหรือไม่? และถ้าฉันสามารถระบุการปฏิเสธ


2
ลิงก์เสียชีวิต หากคุณสามารถเก็บรูปภาพไว้ (หรือสร้างใหม่) โปรดใช้ระบบใหม่ที่จัดเก็บไว้ที่ imgur
Glen_b -Reinstate Monica

น่าเสียดายที่แผนการเหล่านี้มาจากงานที่ผ่านมาสองงาน ขอโทษ!
Matt Parker

1
เมื่อโพสต์นี้ (# 173) กลับมาอีกครั้งเมื่อไซต์อยู่ในช่วงเบต้านั่นไม่ใช่เรื่องน่าแปลกใจ - มีคนไม่กี่คนที่สามารถทำซ้ำพล็อตจากการโพสต์ย้อนหลังจนถึงตอนนี้ ขอบคุณอยู่ดี
Glen_b -Reinstate Monica

คำตอบ:


15

เพื่อประเมินแนวโน้มทางประวัติศาสตร์ฉันใช้เกมที่มีแนวโน้มและองค์ประกอบตามฤดูกาล ตัวอย่างเช่น

require(mgcv)
require(forecast)
x <- ts(rpois(100,1+sin(seq(0,3*pi,l=100))),f=12)
tt <- 1:100
season <- seasonaldummy(x)
fit <- gam(x ~ s(tt,k=5) + season, family="poisson")
plot(fit)

จากนั้นsummary(fit)จะให้คุณทดสอบความสำคัญของการเปลี่ยนแปลงแนวโน้มและพล็อตจะให้ช่วงความมั่นใจกับคุณ สมมติฐานที่นี่คือการสังเกตมีความเป็นอิสระและการแจกแจงแบบมีเงื่อนไขคือปัวซอง เนื่องจากค่าเฉลี่ยได้รับอนุญาตให้เปลี่ยนแปลงได้อย่างราบรื่นเมื่อเวลาผ่านไปสิ่งเหล่านี้จึงไม่ใช่ข้อสันนิษฐานที่ชัดเจน

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

fcast <- predict(fit,se.fit=TRUE,
               newdata=list(tt=101:112,season=seasonaldummyf(x,h=12)))

หากต้องการดูการคาดการณ์ในกราฟเดียวกัน:

plot(x,xlim=c(0,10.5))
lines(ts(exp(fcast$fit),f=12,s=112/12),col=2)
lines(ts(exp(fcast$fit-2*fcast$se),f=12,s=112/12),col=2,lty=2)
lines(ts(exp(fcast$fit+2*fcast$se),f=12,s=112/12),col=2,lty=2)

คุณสามารถมองเห็นเดือนที่ผิดปกติได้โดยการมองหาคนนอกในส่วนที่เหลือ (เบี่ยงเบน) ของความพอดี


8

คุณอาจต้องการดูโครงสร้าง :

การทดสอบการตรวจสอบและการออกเดทการเปลี่ยนแปลงโครงสร้างในแบบจำลองการถดถอย (เชิงเส้น) โครงสร้างการทดสอบคุณสมบัติ / วิธีการจากกรอบการทดสอบความผันผวนทั่วไปและจากกรอบการทดสอบ F (ทดสอบ Chow) ซึ่งรวมถึงวิธีการจัดทำวางแผนและทดสอบกระบวนการผันผวน (เช่น CUSUM, MOSUM, การประเมินซ้ำ / การย้ายซ้ำ) และสถิติ F ตามลำดับ เป็นไปได้ที่จะตรวจสอบข้อมูลขาเข้าออนไลน์โดยใช้กระบวนการความผันผวน ในที่สุดเบรกพอยต์ในตัวแบบการถดถอยที่มีการเปลี่ยนแปลงโครงสร้างสามารถประมาณพร้อมกับช่วงความมั่นใจ เน้นวิธีการสำหรับการแสดงข้อมูล "

PS กราฟิกที่ดี;)


ฉันจะต้องอ่านมันให้ละเอียดมากขึ้นในภายหลัง แต่ใช่แพคเกจนี้พูดถึงปัญหาที่ฉันกำลังเผชิญอยู่ที่นี่ ขอบคุณ! และขอขอบคุณสำหรับคำพูดที่ดีเกี่ยวกับแผนการนั้น
แมตต์พาร์กเกอร์

6

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


1
จุดของคุณเกี่ยวกับการนับเดือนของ N ไม่จำเป็นต้องสัมพันธ์กับ N-1 นั้นเป็นสิ่งที่ดี ด้วยโรคที่เติบโตช้าเช่นวัณโรคนั่นเป็นสิ่งที่ฉันต้องพิจารณาอย่างรอบคอบ แต่ฉันค่อนข้างแน่ใจว่าฉันสามารถระบุได้ว่ามีความล่าช้ามากเพียงใดในช่วงเวลาที่เรารายงานกรณีที่มาและเวลาที่เรารายงานเรื่องรอง กรณี
Matt Parker

1
อย่างไรก็ตามเป็นประเด็นของคุณเกี่ยวกับการวิเคราะห์การกระจายของการนับรายเดือนที่เป็นหัวใจของคำถามของฉัน วัณโรคลดลงอย่างชัดเจนทั้งในระดับประเทศในสหรัฐอเมริกาและในเขตของฉัน ตัวอย่างเช่นเมื่อฉันเปรียบเทียบปี 2009 กับปีก่อนหน้ามีกรณีน้อยลงอย่างแน่นอน 2010 อยู่ในการติดตามเพื่อให้มีน้อยลง สิ่งที่ฉันพยายามระบุ (ซึ่งฉันทำงานได้ไม่ดีในการอธิบายในคำถาม) คือหรือไม่ว่าการลดลงเหล่านี้เป็นส่วนหนึ่งของแนวโน้มขาลงอย่างต่อเนื่องหรือแค่โยกเยกลง ขอบคุณ - คุณทำให้ฉันต้องคิดอย่างรอบคอบมากขึ้นเกี่ยวกับปัญหา
Matt Parker

5

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

หากฉันได้รับข้อมูลนี้นี่คือสิ่งที่ฉันจะทำ (และแน่นอนได้ทำกับข้อมูลที่คล้ายกัน):

สร้างตัวแปร "เวลา" ซึ่งอธิบายได้อย่างแม่นยำมากขึ้นว่า "เดือนนับตั้งแต่ 1/1/2000" ถ้าฉันดูข้อมูลของคุณอย่างถูกต้อง จากนั้นฉันจะเรียกใช้โมเดลเชิงเส้นทั่วไปใน R โดยใช้การแจกแจงแบบปัวซอง (หรือเนกาทีฟทวินาม) และลิงก์บันทึกที่มีรูปแบบต่อไปนี้ประมาณ:

log(Counts) = b0 + b1*t + b2*(t^2) + b3*cos(2pi*w*t) + b4*sin(2pi*w*t)

โดยที่ t คือเวลาที่อธิบายไว้ข้างต้นและ w คือ 1/365 สำหรับโรคประจำปีเช่นไข้หวัดใหญ่ โดยทั่วไปแล้วมันคือ 1 / n โดยที่ n คือความยาวของวัฏจักรของโรค ฉันไม่รู้ว่ามันคืออะไรสำหรับวัณโรค

แนวโน้มเวลาสองช่วงจะแสดงให้คุณเห็น - นอกฤดูการเปลี่ยนแปลงตามปกติ - หากคุณมีการเปลี่ยนแปลงที่มีความหมายตลอดเวลา


4

คุณอาจลองใช้แผนภูมิควบคุม Tukeyกับข้อมูล


Heh - จริง ๆ แล้วเป็นหนึ่งในแปลงที่ฉันทำซึ่งไม่ได้ทำลงในโพสต์ ปัญหาที่ฉันต้องตัดสินใจคือการคำนวณขอบเขต - ความพยายามครั้งแรกของฉันคือกับ Poisson ขอบเขตโดยแลมบ์ดาตั้งค่าเฉลี่ยของข้อมูลของฉัน แต่ความแปรปรวนสูงเกินไปที่จะเป็นปัวซองที่เหมาะสม ไม่รู้)
Matt Parker

ปัญหาอีกประการหนึ่งคือศูนย์กลางของการกระจายสามารถเปลี่ยนแปลงได้ตลอดเวลาตัวอย่างเช่นไม่มีเหตุผลที่จะกำหนดขอบเขตเหล่านั้นโดยใช้ข้อมูลจากต้นปี 1900 เมื่อโคโลราโดเป็นสวรรค์สำหรับผู้ป่วยวัณโรค ดังนั้นวิธีที่เหมาะสมในการรักษาบรรทัดให้ทันสมัยอยู่เสมอด้วยการเปลี่ยนแปลงระยะยาวในกระบวนการในขณะที่ยังสามารถระบุการเบี่ยงเบนได้
Matt Parker

4

คุณอาจลองสร้างโมเดลข้อมูลของคุณโดยใช้ Dynamic Generalized Linear Model (DGLM) ใน R คุณสามารถใส่รุ่นนี้ได้โดยใช้แพ็คเกจ sspir และ KFAS ในแง่หนึ่งมันคล้ายกับแนวทางการเล่นเกมที่ Rob แนะนำยกเว้นแทนที่จะสมมติว่าค่าเฉลี่ยของการสังเกตของปัวซองนั้นเป็นฟังก์ชันที่ราบรื่นของเวลามันสันนิษฐานว่ามันเป็นไปตามการเปลี่ยนแปลงสุ่ม


เยี่ยม - ฉันไม่รู้เกี่ยวกับแพ็คเกจ KFAS นอกจากนี้ยังมี dlm และ dse สำหรับแนวทาง space-ish ของรัฐและภาพรวมทั่วไปสำหรับผู้ใช้ R ที่นี่: cran.r-project.org/web/views/TimeSeries.html
conjugateprior

2
ฉันขอแนะนำdlmแพ็คเกจ DLM นั้นไม่ได้ใช้งานง่ายเหมือนโซลูชันอื่น ๆ แต่dlmทำให้ง่ายที่สุดเท่าที่จะเป็นไปได้และมีบทความสั้น ๆ ที่นำคุณเข้าสู่กระบวนการ
เวย์น

2

ฉันจะทิ้งคำถามหลักไว้คนเดียวเพราะฉันคิดว่าฉันจะเข้าใจผิด (แม้ว่าฉันจะวิเคราะห์ข้อมูลสำหรับผู้ให้บริการด้านการแพทย์ด้วยและถ้าฉันมีข้อมูลเหล่านี้ฉันก็จะวิเคราะห์พวกเขาโดยใช้เทคนิคมาตรฐานและ หวังว่าสิ่งที่ดีที่สุดพวกเขาดูดีสำหรับฉัน)

ในฐานะที่เป็นสำหรับแพคเกจ R, ฉันได้พบห้องสมุด TSA และมันก็มาพร้อมกับหนังสือที่มีประโยชน์มากอย่างแน่นอน armasubsetsคำสั่งโดยเฉพาะอย่างยิ่งผมคิดว่าเป็นเวลาที่ดีประหยัด


2

หลีกเลี่ยงจากสถิติเชิงตัวเลขแบบดั้งเดิมที่ Deming แนะนำและเข้าร่วมในสถิติการวิเคราะห์แบบดั้งเดิม - ในกรณีนี้แผนภูมิควบคุม ดูหนังสือใด ๆ ของโดนัลด์วีลเลอร์เอกโดยเฉพาะ "หัวข้อขั้นสูงใน SPC" ของเขาสำหรับข้อมูลเพิ่มเติม


มีคนถามคำถามเกี่ยวกับชาร์ต SPC (aka QC) ใน R ในstats.stackexchange.com/questions/15809/…ซึ่งฉันได้ให้คำแนะนำเกี่ยวกับแพคเกจ ฉันไม่แน่ใจเกี่ยวกับ SPC / QC ตัวเอง: ฉันสงสัยว่ามันมีประโยชน์มากกว่าในยุคก่อนคอมพิวเตอร์และสำหรับคนงานที่อยู่ในร้านค้าหรือไม่
เวย์น

จริงๆแล้วคำตอบนี้ซ้ำซ้อนกับ @ babelproofreader หรือไม่
เวย์น

2

เพื่อตอบคำถามตรงของคุณ "ฉันจะทดสอบได้อย่างไรว่ามีการเปลี่ยนแปลงจริงหรือไม่และถ้าฉันสามารถระบุการปฏิเสธได้ฉันจะใช้แนวโน้มนั้นได้อย่างไร อีกไม่กี่เดือนข้างหน้า " พัฒนาแบบจำลองฟังก์ชั่นการถ่ายโอน (ARMAX) ที่อธิบายการพึ่งพาเป็นระยะ ๆ รวมถึงและโครงสร้าง ARIMA ตามฤดูกาล รวมการเปลี่ยนแปลงระดับที่สามารถบ่งชี้ได้, พัลส์ตามฤดูกาล, แนวโน้มเวลาท้องถิ่นและพูลที่อาจได้รับการแนะนำโดยวิธีเชิงประจักษ์ / นักวิเคราะห์เช่นการตรวจจับการแทรกแซง หากรุ่น ROBUST นี้รวมถึงปัจจัย / ชุดที่ตรงกับ "ปฏิเสธ" ดังนั้นคำอธิษฐานของคุณจะได้รับคำตอบ ในทางเลือกเพียงแค่เพิ่มโครงสร้างที่ตั้งสมมติฐานเช่นเพื่อทดสอบการเปลี่ยนแปลงแนวโน้มเวลา ณ จุดที่ 1 สร้างหุ่นจำลองสองตัว X1 = 1,1,2,3 ,,,,,, T และ X2 = 0,0,0,0,0,0,0,1,2,3,4,5, .... เมื่อใดก็ตามที่ศูนย์สิ้นสุดที่ระยะเวลา T1-1 การทดสอบสมมติฐานของการเปลี่ยนแปลงแนวโน้มที่สำคัญในช่วงเวลา T1 จะถูกประเมินโดยใช้ "t value" สำหรับ X2

แก้ไขเมื่อ 9/22/11

บ่อยครั้งที่ข้อมูลของโรคเช่นนี้มีผลกระทบรายเดือนเนื่องจากสภาพอากาศ / อุณหภูมิมักเป็นสาเหตุที่ไม่ระบุ ในการละเลยของซีรีย์ CA84 ที่มีรูม่านตาที่แท้จริงนั้นใช้หน่วยความจำหรือหุ่นจำลองตามฤดูกาลเป็นตัวแทน นอกจากนี้ซีรี่ส์เช่นนี้สามารถมีการเลื่อนระดับและ / หรือแนวโน้มเวลาท้องถิ่นที่แสดงถึงการเปลี่ยนแปลงโครงสร้างเมื่อเวลาผ่านไป การใช้ประโยชน์จากโครงสร้าง autoregressive ในข้อมูลมากกว่าการจัดเก็บสิ่งประดิษฐ์ต่าง ๆ เช่นเวลาและตารางเวลาและเวลาลูกบาศก์เป็นต้นพบว่ามีประโยชน์มากและไม่น่าเชื่อน้อยและเฉพาะกิจ ควรใช้ความระมัดระวังในการระบุ "ค่าผิดปกติ" เนื่องจากมักจะมีประโยชน์ในการแนะนำตัวแปรสาเหตุเพิ่มเติมและอย่างน้อยที่สุดจะนำไปสู่การประมาณค่าที่มั่นคงของพารามิเตอร์โมเดลอื่น ๆ ในที่สุดเราก็พบว่าความแปรปรวน / พารามิเตอร์อาจแตกต่างกันไปตามเวลาดังนั้นการปรับแต่งแบบจำลองเหล่านี้อาจเป็นไปตามลำดับ


หนึ่งจะปรับค่า p เพื่อบัญชีสำหรับการระบุ T1 โพสต์ hoc ( เช่นสังเกตหลังจากตรวจสอบข้อมูล)?
whuber

การปรับแต่งทั้งหมดเช่นการตรวจสอบวินิจฉัยที่นำไปสู่การเสริมจะได้รับการปฏิบัติเช่นเดียวกับโครงสร้างที่แนะนำในขณะที่ข้อมูลอยู่ในลิ้นชัก การเพิ่มความล่าช้าให้กับตัวแปรตัวทำนายตามการตรวจสอบการวินิจฉัยเพียงเพิ่มสมมติฐานว่างอื่นลงในรายการ สิ่งนี้ไม่แตกต่างจากการลบค่าสัมประสิทธิ์ที่ไม่สำคัญ
IrishStat

@Irish ฉันไม่ทำตามนั้น T1 ดูเหมือนจะไม่ล่าช้า: มันกำหนดให้มีการเปลี่ยนแปลง การค้นหาการเปลี่ยนแปลง "สำคัญ" นั้นง่ายหรือไม่หากคุณได้รับอนุญาตให้ตรวจสอบข้อมูลก่อนเพื่อเลือกตำแหน่งการเปลี่ยน
whuber

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

@Irish นั่นเป็นการเปรียบเทียบที่ให้ความกระจ่าง หากฉันเข้าใจว่าคุณคิดว่ามีตัวแปรหนึ่งที่อาจเกิดขึ้นสำหรับทุกช่วงเวลา (กำหนดการเปลี่ยนแปลงที่เป็นไปได้ในช่วงเวลานั้น) และกำลังเรียกใช้กระบวนการที่เป็นระบบเพื่อพิจารณาว่าควรรวมตัวแปรใดในโมเดล สิ่งนี้ชี้ให้เห็นว่าบางขั้นตอนการปรับระดับ p มาตรฐานเช่น Bonferroni อาจถูกนำไปใช้อย่างสมเหตุสมผล นั่นจะถูกต้องไหม?
whuber
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.