ระเบิดอยู่ที่ไหน: จะประเมินความน่าจะเป็นอย่างไร, ผลรวมแถวและคอลัมน์ที่ได้รับ?


14

คำถามนี้ได้รับแรงบันดาลใจจากมินิเกมจาก Pokemon Soulsilver:

ลองนึกภาพมี 15 ระเบิดซ่อนอยู่ในพื้นที่ 5x6 นี้ (แก้ไข: สูงสุด 1 ระเบิด / เซลล์):

ผลรวม

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

หากคุณดูที่คอลัมน์ 5 (จำนวนระเบิดทั้งหมด = 5) คุณอาจคิดว่า: ภายในคอลัมน์นี้โอกาสที่จะพบระเบิดในแถวที่ 2 นั้นเพิ่มเป็นสองเท่าของโอกาสที่จะพบหนึ่งในแถวที่ 1

สมมติฐาน (ผิด) นี้ของสัดส่วนโดยตรงซึ่งโดยทั่วไปสามารถอธิบายได้ว่าเป็นการวาดมาตรฐานการดำเนินการทดสอบอิสระ (เช่นใน Chi-Square) ในบริบทที่ไม่ถูกต้องจะนำไปสู่การประมาณดังต่อไปนี้:

Chi-square

อย่างที่คุณเห็นสัดส่วนโดยตรงจะนำไปสู่การประมาณความน่าจะเป็นมากกว่า 100% และก่อนหน้านั้นจะผิด

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

นี่คือค่าเฉลี่ยของโซลูชัน 276 รายการ: โซลูชันการคำนวณ

นี่เป็นวิธีแก้ไขที่ถูกต้อง แต่เนื่องจากงานคำนวณเลขชี้กำลังฉันต้องการค้นหาวิธีการประมาณค่า

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


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

1
ฉันไม่เข้าใจโซลูชันการคำนวณของคุณ ตัวเลขในเซลล์คืออะไร แน่นอนว่าพวกเขาจะไม่เพิ่มขึ้น 100% ไม่ใช่ PMF พวกเขาดูเหมือนจะไม่เหมือน CDF เซลล์ด้านขวา / ล่างไม่ใช่ 100%
Aksakal

2
@ Aksakal สิ่งเหล่านี้คือความน่าจะเป็นที่ขอบซึ่งเซลล์ใด ๆ ที่ระบุจะมีระเบิด ตัวเลขเพิ่มเป็น 15 จำนวนระเบิดทั้งหมดบนกระดาน
Dougal

2
หากคุณสมมติว่าทั้งสองมาร์จิ้นนั้นมีความเป็นอิสระมันค่อนข้างตรงไปตรงมาเพื่อสุ่มตัวอย่างจากการกระจายของตารางที่มีเงื่อนไขบนมาร์จิ้น (ผ่านอัลกอริทึมของ Patefield) สิ่งนี้ถูกนำไปใช้ในการแจกแจงมาตรฐานของ R in r2dtable(และยังใช้โดยchisq.testและfisher.testในบางสถานการณ์)
Glen_b -Reinstate Monica

2
@Glen_b แต่ในอัลกอริทึม Patefield จำนวนกิจกรรมต่อเซลล์ไม่ จำกัด เพียงหนึ่ง
Jarle Tufto

คำตอบ:


4

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

(xx)(xx)

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

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

เริ่มต้นวรรณกรรมที่หัวข้อ:
https://faculty.math.illinois.edu/~mlavrov/seminar/2018-erdos.pdf
https://arxiv.org/pdf/1701.07101.pdf
https: // www tandfonline.com/doi/abs/10.1198/016214504000001303


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

2
MCMC เป็นวิธีที่จะไปและฉันก็พบสิ่งนี้: arxiv.org/pdf/1904.03836.pdf
KaPy3141

@ KaPy3141 สำหรับผลรวมของแถวและคอลัมน์ด้านบนการใช้อัลกอริทึมวนรอบของสี่เหลี่ยมผืนผ้า (ใน arxiv preprint) เข้าชม 276 สถานะที่ไม่ซ้ำกันแม้ว่าฉันจะเรียกใช้อัลกอริทึมสำหรับการทำซ้ำมากถึง106
Jarle Tufto

ซึ่งชี้ให้เห็นว่าการแจงนับตามที่แนะนำโดย @Aksakal อาจมีประสิทธิภาพมากกว่า
Jarle Tufto

@JarleTufto แต่ OP บอกว่ามีสถานะที่ไม่ซ้ำกันเพียง 276 รัฐเท่านั้น คุณได้พบพวกเขาทั้งหมด!
Ben Reiniger

5

ไม่มีทางออกที่ไม่ซ้ำใคร

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

สถานะเป็นอิสระ AS 205

ในปัญหาการปรากฏตัวไม่อนุญาตให้มีการระเบิดมากกว่าหนึ่งครั้งในเซลล์ อีกครั้งสำหรับกรณีพิเศษของความเป็นอิสระมีวิธีการคำนวณที่มีประสิทธิภาพค่อนข้าง

หากคุณรู้จัก FORTRAN คุณสามารถใช้รหัสนี้ที่ใช้ AS 205 อัลกอริทึม: Ian Saunders, Algorithm AS 205: การนับตาราง R x C ด้วยจำนวนแถวซ้ำ, สถิติประยุกต์ปริมาณ 33, หมายเลข 3, 1984, หน้า 340-352 มันเกี่ยวข้องกับ algo ของ Panefield ที่ @Glen_B อ้างถึง

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

ไม่ปรากฏตัว

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

นับเป็นอิสระ

นับปัญหาช่วยให้มากกว่าหนึ่งระเบิดวางไว้ในมือถือของหลักสูตร กรณีพิเศษของแถวและคอลัมน์อิสระของปัญหาการนับเป็นเรื่องง่าย: โดยที่และเป็นระยะขอบของแถวและคอลัมน์ ยกตัวอย่างเช่นแถวและคอลัมน์จึงน่าจะเป็นที่ระเบิดอยู่ในแถวที่ 6 และคอลัมน์ 3 เป็นP_6คุณสร้างการกระจายตัวนี้ในตารางแรกของคุณPij=Pi×PjPiPjP6=3/15=0.2P3=3/15=0.2P63=0.04

นับ, ไม่เป็นอิสระ, ไม่ต่อเนื่อง

เพื่อแก้ปัญหาการนับที่แถวและคอลัมน์ไม่เป็นอิสระเราสามารถใช้ copulas แบบแยก พวกเขามีปัญหา: พวกเขาไม่ซ้ำกัน มันไม่ได้ทำให้พวกเขาไร้ประโยชน์แม้ว่า ดังนั้นฉันจะลองใช้ copulas แบบแยก คุณสามารถหาภาพรวมที่ดีของพวกเขาในGenest, C. และ J. Nešlehová (2007) ไพรเมอร์บน copulas สำหรับการนับข้อมูล Astin Bull 37 (2), 475–515

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

ตัวอย่าง

ลองใช้ Kimeldorf และ Sampson copula กับข้อมูลของคุณโดยสมมติอีกครั้งว่าสามารถวางระเบิดได้มากกว่าหนึ่งอันในเซลล์ copula สำหรับพารามิเตอร์การพึ่งพาถูกกำหนดเป็น: คุณสามารถคิดถึงเป็นแอนะล็อกของสัมประสิทธิ์สหสัมพันธ์θ

C(u,v)=(uθ+uθ1)1/θ
θ

อิสระ

เริ่มจากกรณีของการพึ่งพาที่อ่อนแอโดยที่เรามีความน่าจะเป็นต่อไปนี้ (PMF) และ PDF ส่วนเพิ่มจะแสดงบนพาเนลด้านขวาและด้านล่าง:θ=0.000001

ป้อนคำอธิบายรูปภาพที่นี่

คุณสามารถดูได้ว่าในคอลัมน์ 5 ความน่าจะเป็นของแถวที่สองมีความน่าจะเป็นที่สูงกว่าสองเท่าในแถวแรกอย่างไร ไม่ผิดกับสิ่งที่คุณดูเหมือนจะบอกเป็นนัยในคำถามของคุณ ความน่าจะเป็นทั้งหมดนั้นเพิ่มขึ้น 100% แน่นอนว่าระยะขอบบนแผงตรงกับความถี่ ตัวอย่างเช่นคอลัมน์ 5 ในแผงด้านล่างแสดง 1/3 ซึ่งสอดคล้องกับ 5 ระเบิดระบุจากทั้งหมด 15 ตามที่คาดไว้

ความสัมพันธ์เชิงบวก

สำหรับการพึ่งพาที่แข็งแกร่ง (ความสัมพันธ์เชิงบวก) กับเรามีดังต่อไปนี้:θ=10

ป้อนคำอธิบายรูปภาพที่นี่

สหสัมพันธ์เชิงลบ

เหมือนกันสำหรับความสัมพันธ์ที่แข็งแกร่ง แต่เชิงลบ (การพึ่งพา) :θ=0.2

ป้อนคำอธิบายรูปภาพที่นี่

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


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

@ KaPy3141 ฉันเพิ่มการอ้างอิงถึงรหัสที่คุณสามารถใช้ในการแก้ปัญหา มันอยู่ใน F90 แต่ค่อนข้างตรงไปตรงมาเพื่อแปลงเป็น Python ด้วย numpy
Aksakal

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

คุณต้องปรับพารามิเตอร์ให้เหมาะสมกับกระบวนการ ปัญหาคือ combinatorial บริสุทธิ์หากกระบวนการสร้างสอดคล้องกับมัน
Aksakal

4

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


มีวิธีการแก้ปัญหาที่แน่นอน แต่มีความเข้มข้นในการคำนวณ

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

ปล่อยเป็นเวกเตอร์ของตัวบ่งชี้ตัวแปรที่ระบุว่ามีระเบิดอยู่ในแต่ละเซลล์หรือไม่และให้แสดงถึงเวกเตอร์ที่สอดคล้องกันของผลรวมของแถวและคอลัมน์ กำหนดฟังก์ชั่นซึ่งแม็พจากเวกเตอร์การจัดสรรไปยังผลรวมของแถวและคอลัมน์x=(x1,...,xnm)s=(r1,...,rn,c1,...,cm)S:xs

เป้าหมายคือการหาความน่าจะเป็นของเวกเตอร์การจัดสรรแต่ละเงื่อนไขตามความรู้ของผลรวมของแถวและคอลัมน์ ภายใต้การสุ่มตัวอย่างแบบง่ายเรามีดังนั้นความน่าจะเป็นตามเงื่อนไขที่น่าสนใจคือ:P(x)1

P(x|s)=P(x,s)P(s)=P(x)I(S(x)=s)xP(x)I(S(x)=s)=I(S(x)=s)xI(S(x)=s)=1|Xs|I(S(x)=s)=U(x|Xs),

โดยที่คือชุดของทุกพาหะจัดสรรเข้ากันได้กับเวกเตอร์{s} นี่แสดงให้เห็นว่า (ภายใต้การสุ่มตัวอย่างอย่างง่าย ๆ ของระเบิด) เรามี{s}) นั่นคือการแจกแจงแบบมีเงื่อนไขของเวกเตอร์การจัดสรรสำหรับระเบิดนั้นเหมือนกันกับชุดของเวกเตอร์การจัดสรรทั้งหมดที่เข้ากันได้กับผลรวมของแถวและคอลัมน์ที่สังเกตได้ ความน่าจะเป็นที่เกิดจากการระเบิดในเซลล์ที่กำหนดนั้นสามารถได้มาโดยการทำให้เกิดการกระจัดกระจายของการกระจายข้อต่อ:Xs{x{0,1}nm|S(x)=s}sx|sU(Xs)

P(xij=1|s)=x:xij=1U(x|Xs)=|XijXs||Xs|.

โดยที่คือชุดของเวกเตอร์การจัดสรรทั้งหมดที่มีระเบิดในเซลล์ในคอลัมน์ th และ th ตอนนี้ในปัญหาเฉพาะของคุณคุณได้คำนวณ setและพบว่าดังนั้นความน่าจะเป็นแบบมีเงื่อนไขของเวกเตอร์การจัดสรรจะเหมือนกันกับชุดการจัดสรรที่คุณคำนวณ (สมมติว่าคุณทำอย่างถูกต้อง) นี่เป็นการแก้ไขปัญหาที่แน่นอน อย่างไรก็ตามมันมีความเข้มข้นในการคำนวณเพื่อคำนวณ setและดังนั้นการคำนวณของวิธีนี้อาจกลายเป็นไปไม่ได้เมื่อ ,Xij{x{0,1}nm|xij=1}ijXs|Xs|=276Xsnmหรือกลายเป็นใหญ่ขึ้นb


ค้นหาวิธีการประมาณที่ดี

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

ตัวประมาณเชิงประจักษ์ที่ไร้เดียงสา:ตัวประมาณที่คุณเสนอและใช้ในตารางสีเขียวของคุณคือ:

P^(xij=1|s)=ribcjbb=ricjb.

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


ขอบคุณมากสำหรับคำตอบในเชิงลึกของคุณ! ที่จริงแล้วในแผนภูมิสีเขียวของฉันมีค่าสูงถึง 133% เป็นเรื่องดีที่รู้ว่าไม่มีวิธีที่เป็นที่นิยมสำหรับปัญหานี้และเป็นที่ยอมรับในการทดสอบด้วยตัวเอง! เครื่องมือประมาณที่แม่นยำที่สุดของฉันนั้นคล้ายกับวิธี "สีเขียว" แต่แทนที่จะจัดสรรระเบิดตามสัดส่วนของ P (แถว) / ผลรวม (P (แถว)) * P (c) / ผลรวม (P (cols)) ฉันใช้ จินตภาพ P (r) / (1-P (r)) / ผลรวม (แถว) และหลังจากนั้นนำผลิตภัณฑ์กลับมา: P (จริง) = P (imag) / (1 + P (imag) นี้บังคับ P <1 ตอนนี้ฉันเดาว่าฉันแค่ต้องบังคับใช้ผลรวมของแถว / คอลัมน์ที่ละเมิด (เล็กน้อยละเมิด)
KaPy3141

@ KaPy3141 คุณอาจใช้ค่าที่มีระเบิดเฉพาะอยู่ในเซลล์ (ซึ่งไม่มีปัญหาในการอยู่เหนือ 1) จากนั้นอธิบายปัญหาว่ามีการวางระเบิด 15 ครั้งจากการกระจายนั้นโดยมีเงื่อนไขว่าแต่ละเซลล์มีเพียง ค่า 0 หรือ 1 (รูปวาดโดยไม่มีการแทนที่) สิ่งนี้จะช่วยให้คุณมีความน่าจะเป็นที่ไม่เกิน 1
Sextus Empiricus
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.