วิธีการจัดให้มีการกระจายแบบไม่ต่อเนื่องเพื่อนับข้อมูล?


17

ฉันมีฮิสโตแกรมข้อมูลการนับต่อไปนี้ และฉันต้องการให้การกระจายแบบไม่ต่อเนื่องกับมัน ฉันไม่แน่ใจว่าฉันควรทำอย่างไรป้อนคำอธิบายรูปภาพที่นี่

ฉันควรเพิ่มการแจกแจงแบบแยกส่วนก่อนพูดการแจกแจงลบแบบทวินามบนฮิสโตแกรมเพื่อให้ฉันได้รับพารามิเตอร์การกระจายแบบไม่ต่อเนื่องแล้วเรียกใช้การทดสอบ Kolmogorov – Smirnov เพื่อตรวจสอบค่า p?

ฉันไม่แน่ใจว่าวิธีนี้ถูกต้องหรือไม่

มีวิธีการทั่วไปในการจัดการปัญหาเช่นนี้หรือไม่?

นี่คือตารางความถี่ของข้อมูลการนับ ในปัญหาของฉันฉันมุ่งเน้นเฉพาะการนับที่ไม่ใช่ศูนย์

  Counts:     1    2    3    4    5    6    7    9   10 
 Frequency: 3875 2454  921  192   37   11    1    1    2 

UPDATE:ฉันต้องการถาม: ฉันใช้ฟังก์ชัน fitdistr ใน R เพื่อรับพารามิเตอร์สำหรับการปรับข้อมูลให้เหมาะสม

fitdistr(abc[abc != 0], "Poisson")
     lambda  
  1.68147852 
 (0.01497921)

จากนั้นฉันพล็อตฟังก์ชันความน่าจะเป็นแบบมวลของการแจกแจงแบบปัวซองที่อยู่ด้านบนของฮิสโตแกรม ป้อนคำอธิบายรูปภาพที่นี่

อย่างไรก็ตามดูเหมือนว่าการกระจาย Poisson ล้มเหลวในการสร้างแบบจำลองข้อมูลการนับ มีอะไรที่ฉันพอจะทำได้บ้าง?


3
วิธีการทั่วไปคือการใช้โอกาสสูงสุดเพื่อให้เหมาะสมกับการกระจายตัวของผู้สมัคร สิ่งที่คุณหมายถึงโดยการวางการกระจายเพื่อรับพารามิเตอร์ไม่ชัดเจน แต่ถ้าคุณหมายถึงการคาดเดาค่าพารามิเตอร์จนกว่าคุณจะได้รับแบบที่ดีนั่นเป็นวิธีการหมัด Kolmogorov-Smirnov ไม่มีประโยชน์ที่นี่ คุณต้องการซอฟต์แวร์ที่เหมาะสมที่ให้ผลลัพธ์ที่เป็นนัยแก่คุณดังนั้นคุณต้องระบุซอฟต์แวร์ที่คุณเลือกเพื่อให้คนที่ใช้งานนั้นสามารถพยายามช่วยเหลือคุณได้ ฮิสโตแกรมของคุณไม่ชัดเจน แต่หากมีช่องว่างการกระจายไม่มีแนวโน้มที่จะเหมาะสม
Nick Cox

3
ในขณะที่ใช้การทดสอบ KS ในลักษณะนั้นเป็นวิธีการหมัด (และในกรณีใด ๆ การทดสอบ KS ไม่ได้เป็นการกระจายแบบไม่ต่อเนื่อง) มันเป็นไปได้ที่จะประเมินพารามิเตอร์โดยการลดสถิติ KS ให้น้อยที่สุดในทุกค่าพารามิเตอร์ที่เป็นไปได้ แต่ถ้าคุณไปทางนั้น (การเพิ่มความเหมาะสมให้พอดี) ขั้นต่ำไคสแควร์จะเป็นวิธีการทั่วไปมากขึ้น ในฐานะที่เป็น Nick Cox แนะนำ ML จะเป็นสิ่งที่ชัดเจนที่จะทำแน่นอนมีประสิทธิภาพมากขึ้นง่ายขึ้นที่จะได้รับข้อผิดพลาดมาตรฐานออกจากและอื่น ๆ ได้รับการยอมรับอย่างง่ายดายมากขึ้น (มีความเป็นไปได้อื่น ๆ เช่นวิธีการของช่วงเวลา แต่ ML เป็นสิ่งสำคัญ)
Glen_b

ฉันกำลังใช้ R เมื่อคุณบอกว่าประมาณ MLE มีอัลกอริธึมที่คุณจะแนะนำสำหรับงานนี้หรือไม่? และหลังจากค้นพบ ML ฉันควรทำอย่างไรต่อไป
user1769197

ฉันจะเริ่มต้นที่นี่?MASS::fitdistrเนื่องจากมันอยู่ในการกระจาย R ของคุณ (ดูตัวอย่างสุดท้ายที่ด้านล่าง; ดู rnegbin สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดพารามิเตอร์ของ Negative Binomial นั้น) .... " และหลังจากค้นพบ ML ฉันควรทำอย่างไรต่อไป " - ณ จุดนั้นคุณมีการประมาณพารามิเตอร์และข้อผิดพลาดมาตรฐาน นอกเหนือจากนั้นคุณต้องการบรรลุอะไร - ฉันเดาไม่ออก
Glen_b -Reinstate Monica

เกิดขึ้นกับฉันว่าคุณอาจพยายามถามว่า 'ฉันจะประเมินความเหมาะสมของแบบจำลองของฉันได้อย่างไร' หากเป็นเช่นนั้นคุณสามารถอัปเดตคำถามของคุณเพื่อสะท้อนได้หรือไม่
Glen_b -Reinstate Monica

คำตอบ:


17

วิธีการกระจายสัญญาณแบบไม่ต่อเนื่องที่เหมาะสม

มีสามวิธีหลัก * ที่ใช้เพื่อให้พอดี (ประเมินพารามิเตอร์ของ) การแจกแจงแบบไม่ต่อเนื่อง

1) โอกาสสูงสุด

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

2) วิธีการของช่วงเวลา

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

3) ขั้นต่ำไคสแควร์

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

สองวิธีแรกยังใช้สำหรับการแจกแจงแบบต่อเนื่อง ที่สามมักจะไม่ได้ใช้ในกรณีนั้น

สิ่งเหล่านี้ไม่ได้ประกอบไปด้วยรายการที่ครบถ้วนสมบูรณ์และเป็นไปได้ค่อนข้างที่จะประมาณค่าพารามิเตอร์ด้วยการลดค่าสถิติ KS ให้เหลือน้อยที่สุด - และแม้ (ถ้าคุณปรับค่าความไม่ลงรอยกัน) เพื่อให้ได้ภูมิภาคที่สอดคล้องกันจากนั้น มีแนวโน้มมาก เนื่องจากคุณทำงานใน R การประมาณค่า ML จึงทำได้ค่อนข้างง่ายสำหรับค่าลบทวินาม หากตัวอย่างของคุณอยู่ในxนั้นก็ง่ายเหมือนlibrary(MASS);fitdistr (x,"negative binomial"):

> library(MASS) 
> x <- rnegbin(100,7,3)
> fitdistr (x,"negative binomial")
     size         mu    
  3.6200839   6.3701156 
 (0.8033929) (0.4192836)

สิ่งเหล่านี้เป็นการประมาณพารามิเตอร์และข้อผิดพลาดมาตรฐาน (แบบอะซิมโทติก)

ในกรณีของการแจกแจงปัวซง MLE และ MoM ทั้งคู่ประเมินพารามิเตอร์ปัวซองที่ค่าเฉลี่ยตัวอย่าง

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

ใกล้ที่สุดเท่าที่ฉันจะเดาได้ข้อมูลของคุณเป็นดังนี้:

    Count:  0&1   2   3   4   5   6  >6    
Frequency:  311 197  74  15   3   1   0

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

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


* วิธีการอื่นของการกระจายแบบไม่ต่อเนื่องที่เหมาะสมเป็นไปได้แน่นอน (หนึ่งอาจตรงกับปริมาณหรือลดความดีอื่น ๆ ของสถิติพอดีเช่น) สิ่งที่ฉันพูดถึงดูเหมือนจะเป็นเรื่องธรรมดาที่สุด


+1, ข้อมูลดี เพิ่งเกิดจากความอยากรู้อยากเห็นทำไมคุณมักจะใช้1)แทนที่จะมาร์กอัปหมายเลขที่ CV สนับสนุน (เช่น - ซึ่ง1.นำไปสู่การเยื้อง)
gung - Reinstate Monica

1
@ gung ส่วนใหญ่ฉันไม่คิดเกี่ยวกับมัน - ฉันชอบรายการของฉันเพื่อดูวิธีที่ฉันพิมพ์พวกเขา; แต่เมื่อฉันคิดเกี่ยวกับมันฉันพบการแก้ไขของ markdown ของตัวเลขฉันพิมพ์สิ่งที่คิดว่าพวกเขาควรจะน่ารำคาญอย่างมาก (ถ้าฉันพิมพ์ "36. " ฉันไม่ได้หมายถึง "1. ") ... ดังนั้นเมื่อ มันเกิดขึ้นกับฉันที่จะใช้ "1. " มากกว่า "1)" ฉันมักจะจบลงด้วยการพิมพ์ "1 \." อย่างชัดเจนเพื่อหยุดมันจากการรับรู้และทำสิ่งที่ฉันไม่ได้ตั้งใจ ฉันปรับตัวให้เข้ากับพฤติกรรมนี้ได้ตั้งแต่ 5 ปีของ reddit ที่ฉันไม่ได้คิดถึงมัน - ฉันจะลงเอยรบกวนโดยอัตโนมัติด้วยแรงของนิสัย
Glen_b -Reinstate Monica

1
@ gung หากการเยื้องน้อยกว่านี้มากฉันคงอยากจะรับมือกับอันตรายจากการจัดลำดับใหม่และใช้มัน ตามปกติแล้วฉันมักพบว่ามันทำให้เสียสมาธิเมื่อฉันเห็นมัน แต่ในกรณีนี้ฉันต้องการทำให้มันดูเหมือนหัวเรื่องย่อยดังนั้นฉันอาจหลีกเลี่ยงได้แม้ว่าฉันจะไม่ได้ถูกปลดออกจากพฤติกรรม (ในทางกลับกันในบางครั้งคนอื่น ๆ ได้ตัดสินใจที่จะแก้ไขรายการของฉันเพื่อให้เยื้องฉันมักจะปล่อยให้พวกเขาเพื่อเอาใจตัวเองถ้าพวกเขาต้องการที่จะทำให้มันดูบางวิธีพวกเขาสามารถตราบเท่าที่มันไม่ ไม่เปลี่ยนความหมาย)
Glen_b -Reinstate Monica

ฉันจะพยายามควบคุมตัวเอง ;-)
gung - Reinstate Monica

2

ในการแก้ไขคุณให้ข้อมูลและเพิ่มคำถามใหม่:

"นี่คือตารางความถี่ของข้อมูลการนับในปัญหาของฉันฉันมุ่งเน้นเฉพาะการนับที่ไม่ใช่ศูนย์

   Counts:     1    2    3    4    5    6    7    9   10 
Frequency:  3875 2454  921  192   37   11    1    1    2 

ใครช่วยยกตัวอย่างให้ฉันฟังว่าคุณจะทำแบบทดสอบไคสแควร์ได้ดีแค่ไหน? "

สิ่งนี้นำไปสู่ความคิดเห็นเพิ่มเติม:

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

  2. หากคุณเลือกที่จะไม่ใส่ค่าศูนย์แสดงว่าคุณอยู่ในพื้นที่ที่ยากลำบากเนื่องจากคุณไม่สามารถจุดไฟประจำเช่นปัวซองหรือทวินามลบหากคุณไม่ปล่อยค่าศูนย์ คุณทำได้ แต่คำตอบนั้นผิด คุณต้องการฟังก์ชั่นหรือคำสั่งพิเศษสำหรับการแจกแจงเช่นปัวซอง zero-truncated หรือทวินามลบลบศูนย์ นั่นเป็นสิ่งที่ท้าทายและจำเป็นต้องมีการอ่านเพื่อให้ชัดเจนในสิ่งที่คุณกำลังทำ

  3. การถามวิธีทดสอบไคสแควร์แนะนำให้ฉันรู้ว่าคุณยังไม่เข้าใจสิ่งที่ฉันพูดสั้นมากและ @Glen_b พูดอย่างละเอียดมากขึ้น (และในใจของฉันอย่างชัดเจน) แยกออกเป็นสองส่วน:

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

    • การทดสอบแบบไคสแควร์นั้นไม่ผิด แต่ถ้าคุณประมาณค่าพารามิเตอร์ด้วยความเป็นไปได้สูงสุดมันไม่เกี่ยวข้องเนื่องจากชุดคำสั่งที่เหมาะสมจะให้ค่าประมาณและข้อผิดพลาดมาตรฐานและอนุญาตให้ทำการทดสอบได้ @Glen_b ยกตัวอย่างในคำตอบของเขาแล้ว

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

UPDATE: คำถามเพิ่มเติมเกี่ยวกับการทดสอบไคสแควร์ถูกลบแล้ว สำหรับช่วงเวลาที่ฉันให้ # 3 ข้างต้นยืนในกรณีที่คนอื่นตามเส้นทางเดียวกันของการต้องการทดสอบไคสแควร์


ฉันต้องไม่สนใจค่าศูนย์เพราะฉันกำลังพยายามสร้างแบบจำลองจำนวนที่ใช้งานอยู่ Count = 0 ถูกอ้างถึงเป็นจำนวนที่ไม่แอ็คทีฟ
1769197

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

ฉันพยายามบิดฮิสโทแกรมโดยทำ "plot (table (abc), type =" h ")" แต่ฉันไม่แน่ใจว่าฉันจะให้มันแสดงความน่าจะเป็นได้อย่างไร
user1769197

ฉันไม่ได้ใช้ R แต่คุณสามารถขอคำแนะนำได้ คุณอาจต้องถามแยกต่างหาก
Nick Cox
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.