۱ Mohammad Shavali
توضیح باینومیال......
جامعه هوش مصنوعی ایجاد شده در ۲۴ بهمن ۱۴۰۳

در این کد stats.binom.rvs(size=1000 ,n=100 ,p=0.2)
یعنی به اضای هر عضو از size 
100 بار روش تست شده..؟
و
چجور مقادیرش محاسبه شده..!!

بله، بیایید کد را بررسی کنیم:

 

stats.binom.rvs(size=1000, n=100, p=0.2)

 مفهوم هر پارامتر

  • n=100 → تعداد آزمایش‌های برنولی در هر نمونه (یعنی هر متغیر تصادفی باینومیال 100 آزمایش دارد).
  • p=0.2 → احتمال موفقیت در هر آزمایش برنولی.
  • size=1000 → تعداد نمونه‌هایی که از این توزیع گرفته می‌شوند.

توضیح عملکرد

این کد ۱۰۰۰ مقدار تصادفی تولید می‌کند که هر مقدار یک متغیر تصادفی باینومیال است، یعنی نتیجه‌ی ۱۰۰ بار اجرای یک آزمایش برنولی با احتمال موفقیت ۰.۲.

چگونه مقدارها محاسبه می‌شوند؟

هر مقدار تولید شده، تعداد موفقیت‌ها در ۱۰۰ آزمایش برنولی است. برای هر مقدار:

  • ۱۰۰ آزمایش مستقل انجام می‌شود.
  • در هر آزمایش، با احتمال p=0.2 موفقیت رخ می‌دهد.
  • تعداد کل موفقیت‌های این ۱۰۰ آزمایش یک عدد بین ۰ تا ۱۰۰ است.
  • این عدد از توزیع Binomial(n=100, p=0.2) نمونه‌برداری می‌شود.

مثال عددی:
فرض کنید در یک اجرای کد، خروجی اولین مقدار ۲۳ شد. این یعنی در اولین نمونه (از ۱۰۰۰ نمونه)، از ۱۰۰ آزمایش برنولی، ۲۳ مورد موفق بوده است.

خروجی نهایی

خروجی یک آرایه numpy با ۱۰۰۰ مقدار است که هر مقدار تعداد موفقیت‌های یک اجرای ۱۰۰ تایی از آزمایش برنولی را نشان می‌دهد.

برای مشاهده توزیع مقادیر:

می‌توان یک هیستوگرام رسم کرد:

import matplotlib.pyplot as plt
import scipy.stats as stats
data = stats.binom.rvs(size=1000, n=100, p=0.2)
plt.hist(data, bins=30, edgecolor='black', alpha=0.7)
plt.xlabel("تعداد موفقیت‌ها در 100 آزمایش")
plt.ylabel("فراوانی")
plt.title("توزیع نمونه‌ای از توزیع باینومیال (n=100, p=0.2)")
plt.show()

این نمودار نشان می‌دهد که داده‌های تولید شده حول میانگین np = 100 × 0.2 = 20 توزیع شده‌اند.

 

مسعود کاویانی ۲۶ بهمن ۱۴۰۳، ۲۱:۳۲