สร้างแบบจำลอง Monte Carlo โดยใช้ Excel

บทที่ 8 แบบจำลองสถานการณ์ (Simulation) (อาจ 2024)

บทที่ 8 แบบจำลองสถานการณ์ (Simulation) (อาจ 2024)
สร้างแบบจำลอง Monte Carlo โดยใช้ Excel

สารบัญ:

Anonim

เราจะพัฒนาแบบจำลอง Monte Carlo โดยใช้ Microsoft Excel และเกมลูกเต๋า การจำลอง Monte Carlo เป็นวิธีเชิงตัวเลขทางคณิตศาสตร์ที่ใช้การสุ่มเพื่อคำนวณและแก้ไขปัญหาที่ซับซ้อน วันนี้มีการใช้กันอย่างแพร่หลายและเป็นส่วนสำคัญในด้านต่าง ๆ เช่นการเงินฟิสิกส์เคมีเศรษฐศาสตร์และอื่น ๆ อีกมากมาย

Monte Carlo Simulation

วิธีมอนติคาร์โลถูกคิดค้นโดย Nicolas Metropolis ในปีพ. ศ. 2490 และพยายามแก้ปัญหาที่ซับซ้อนโดยใช้วิธีสุ่มและมีความน่าจะเป็น คำว่า "Monte Carlo" มาจากเขตบริหารของโมนาโกที่รู้จักกันแพร่หลายว่าเป็นสถานที่ที่ชนชั้นสูงของยุโรปเล่นการพนัน เราใช้วิธี Monte Carlo เมื่อปัญหาซับซ้อนเกินไปและยากที่จะทำโดยการคำนวณโดยตรง จำนวนซ้ำช่วยให้การจำลองการกระจายปกติ

วิธีการจำลอง Monte Carlo คำนวณความน่าจะเป็นสำหรับ integrals และแก้สมการเชิงอนุพันธ์บางส่วนซึ่งจะนำเสนอวิธีการเชิงสถิติเพื่อความเสี่ยงในการตัดสินใจที่น่าจะเป็น. แม้ว่าจะมีเครื่องมือทางสถิติขั้นสูงจำนวนมากเพื่อสร้างการจำลองแบบมอนติคาร์โล แต่จะง่ายต่อการจำลองกฎหมายและกฎหมายเครื่องแบบที่ใช้ Microsoft Excel และหลีกเลี่ยงการคำนวณทางคณิตศาสตร์

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

เกมลูกเต๋า

นี่เป็นวิธีที่เกมลูกเต๋าม้วน:

•ผู้เล่นโยนลูกเต๋าสามลูกที่มี 6 ด้าน 3 ครั้ง

•ถ้าทั้งหมด 3 ครั้งคือ 7 หรือ 11 ผู้เล่นจะชนะ

•ถ้าทั้งหมด 3 ครั้งคือ 3, 4, 5, 16, 17 หรือ 18 เครื่องเล่นจะสูญเสีย

•ถ้าผลรวมทั้งหมดเป็นผลลัพธ์อื่น ๆ ผู้เล่นจะเล่นอีกครั้งและหมุนม้วนอีกครั้ง

•เมื่อผู้เล่นพ่นสกิล Die อีกครั้งเกมจะดำเนินการต่อไปในลักษณะเดียวกันเว้นแต่ผู้เล่นจะชนะเมื่อผลรวมเท่ากับผลรวมที่กำหนดในรอบแรก

ขอแนะนำให้ใช้ตารางข้อมูลเพื่อสร้างผลลัพธ์ นอกจากนี้ยังมีผลลัพธ์ 5,000 รายการเพื่อเตรียมการจำลองมอนติคาร์โล

ขั้นตอนที่ 1: งานกลิ้งลูกเต๋า Dice Rolling

ขั้นแรกเราพัฒนาช่วงของข้อมูลด้วยผลของ 3 ลูกเต๋าสำหรับลูกกลิ้ง 50 แผ่น เมื่อต้องการทำเช่นนี้ขอแนะนำให้ใช้ฟังก์ชัน "RANDBETWEEN (1. 6)" ดังนั้นทุกครั้งที่เราคลิก F9 เราจะสร้างชุดผลลัพธ์ม้วนใหม่ เซลล์ "ผลลัพธ์" คือผลรวมรวมของผลลัพธ์จาก 3 ม้วน

ขั้นตอนที่ 2: ช่วงของผลลัพธ์

จากนั้นเราจำเป็นต้องพัฒนาข้อมูลต่างๆเพื่อระบุผลลัพธ์ที่เป็นไปได้สำหรับรอบแรกและรอบต่อ ๆ ไป มีช่วงข้อมูล 3 คอลัมน์ดังนี้ในคอลัมน์แรกเรามีตัวเลขตั้งแต่ 1 ถึง 18 ตัวเลขเหล่านี้แสดงถึงผลลัพธ์ที่เป็นไปได้หลังจากกลิ้งลูกเต๋า 3 ครั้ง: สูงสุดคือ 3 * 6 = 18 คุณจะทราบว่าสำหรับเซลล์ที่ 1 และ 2 ผลการวิจัยเป็น N / A เนื่องจากเป็นไปไม่ได้ที่จะได้รับ 1 หรือ 2 โดยใช้ 3 ลูกเต๋า ต่ำสุดคือ 3.

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

ในคอลัมน์ที่สามจะมีการลงทะเบียนข้อสรุปที่เป็นไปได้สำหรับรอบถัดไป เราสามารถบรรลุผลลัพธ์เหล่านี้โดยใช้ฟังก์ชัน "If "เพื่อให้แน่ใจว่าถ้าผลที่ได้รับเทียบเท่ากับผลที่ได้ในรอบแรกเราชนะมิเช่นนั้นเราทำตามกฎเริ่มต้นของการเล่นต้นฉบับเพื่อกำหนดว่าเราจะม้วนลูกเต๋าอีกครั้งหรือไม่

ขั้นตอนที่ 3: ข้อสรุป

ในขั้นตอนนี้เราจะระบุผลลัพธ์ของลูกเต๋า 50 ลูกเต๋า สรุปข้อแรกได้ด้วยฟังก์ชั่นดัชนี ฟังก์ชันนี้จะค้นหาผลลัพธ์ที่เป็นไปได้ของรอบแรกข้อสรุปที่ตรงกับผลลัพธ์ที่ได้ ตัวอย่างเช่นเมื่อได้รับ 6 เช่นเดียวกับในภาพด้านล่างเราเล่นอีกครั้ง

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

ขั้นตอนที่ 4: จำนวนลูกเต๋าลูกเต๋า

ตอนนี้เรากำหนดจำนวนลูกเต๋าที่ต้องการก่อนที่จะสูญเสียหรือชนะ เมื่อต้องการทำเช่นนี้เราสามารถใช้ฟังก์ชัน "Countif" ซึ่งต้องใช้ Excel เพื่อนับผลลัพธ์ของ "Re-roll" และเพิ่มหมายเลข 1 ลงไป มันเพิ่มหนึ่งเพราะเรามีรอบพิเศษและเราได้รับผลสุดท้าย (ชนะหรือแพ้)

ขั้นตอนที่ 5: การจำลอง

เราพัฒนาช่วงเพื่อติดตามผลลัพธ์ของแบบจำลองต่างๆ เมื่อต้องการทำเช่นนี้เราจะสร้างคอลัมน์สามคอลัมน์ ในคอลัมน์แรกหนึ่งในตัวเลขรวมเป็น 5, 000 ในคอลัมน์ที่สองเราจะมองหาผลหลังจาก 50 ลูกเต๋าม้วน ในคอลัมน์ที่สามชื่อของคอลัมน์เราจะมองหาจำนวนลูกเต๋าม้วนก่อนที่จะได้รับสถานะสุดท้าย (ชนะหรือแพ้)

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

ขั้นตอนที่ 6: ความน่าจะเป็น

ในที่สุดเราสามารถคำนวณความน่าจะเป็นของการชนะและการสูญเสียได้ เราทำเช่นนี้โดยใช้ฟังก์ชัน "Countif"สูตรจะนับจำนวนของ "ชนะ" และ "เสีย" จากนั้นหารด้วยจำนวนเหตุการณ์ทั้งหมด 5,000 เพื่อให้ได้สัดส่วนที่เท่ากันของแต่ละตัวและอีก สุดท้ายเราเห็นด้านล่างว่าน่าจะเป็นของการชนะผลคือ 73 2% และได้รับผลขาดทุนดังนั้น 26. 8%