การสร้างตัวแปรสุ่มหลายตัวแปร

Monte Carlo Simulations ใน Python

Izzy Weber

Curriculum Manager, DataCamp

การสุ่มตัวอย่างจากการแจกแจงหลายตัวแปร

การแจกแจงแบบมัลติโนเมียล

  • แต่ละตัวแปรเป็นไปตามการแจกแจงทวินาม
  • ความน่าจะเป็นของตัวแปรเหล่านี้รวมกันได้เท่ากับ 1

 

ตัวอย่าง: จำลองผลการโยนเหรียญที่มีความลำเอียง

scipy.stats.multinomial.rvs()
Monte Carlo Simulations ใน Python

การสุ่มตัวอย่างจากการแจกแจงหลายตัวแปร

การแจกแจงปกติหลายตัวแปร

  • แต่ละตัวแปรเป็นไปตามการแจกแจงปกติ
  • ตัวแปรอาจมีความสัมพันธ์กันหรือไม่ก็ได้

 

ตัวอย่าง: จำลองราคาและความต้องการ

scipy.stats.multivariate_normal.rvs()
Monte Carlo Simulations ใน Python

การสุ่มตัวอย่างจากการแจกแจงแบบมัลติโนเมียล

การจำลอง: .rvs(n, p, size)

  • $n$: 50
  • $p$: [0.2, 0.8]
  • size: 500
results = st.multinomial.rvs(50,
    [0.2, 0.8], size=500)

df_results=pd.DataFrame( {"Head":results[:, 0], "Tail":results[:, 1]}) sns.pairplot(df_results)

Pairplot ของการสุ่มตัวอย่างการโยนเหรียญที่มีความลำเอียง

Monte Carlo Simulations ใน Python

การสุ่มตัวอย่างจากการแจกแจงปกติหลายตัวแปร

การจำลอง: .rvs(mean, size)

  • mean: [2, 6]
  • size: 500
results=st.multivariate_normal.rvs(
    mean=[2, 6], size=500)

df_results=pd.DataFrame( {"Price":results[:, 0], "Demand":results[:, 1]}) sns.pairplot(df_results)

Pairplot ของผลการสุ่มตัวอย่างราคาและความต้องการ

Monte Carlo Simulations ใน Python

เมทริกซ์ความแปรปรวนร่วม

  • แสดงค่าความแปรปรวนและค่าความแปรปรวนร่วมของตัวแปร
  • นิยามโดยใช้ตัวแปรสุ่มสองตัว $x$ และ $y$:

โครงสร้างเมทริกซ์ความแปรปรวนร่วม

ตัวอย่าง:

df_historical.cov()
|        | Price     | Demand   |
|--------|-----------|----------|
| Price  | 0.920545  | -0.85578 |
| Demand | -0.855780 | 0.98417  |
Monte Carlo Simulations ใน Python

การสุ่มตัวอย่างการแจกแจงปกติหลายตัวแปรด้วยความแปรปรวนร่วมที่กำหนด

การจำลอง: .rvs(mean, size)

  • mean: [2, 6]
  • size: 500
  • cov: np.array([[1, -0.9], [-0.9, 1]])
cov_mat = np.array([[1,-0.9], [-0.9,1]])
results = st.multivariate_normal.rvs(
    mean=[2,6], size=500, cov=cov_mat)

df_results = pd.DataFrame( {"Price":results[:,0], "Demand":results[:,1]}) sns.pairplot(df_results)

pairplot ของผลลัพธ์

Monte Carlo Simulations ใน Python

มาฝึกกันเถอะ!

Monte Carlo Simulations ใน Python

Preparing Video For Download...