R Academy · पाठ

यादृच्छिक वितरण उत्पन्न करना

सामान्य, समसमान, द्विपद और Poisson वितरणों से नमूने लें।

पाठ 2, कुल 4 में से13 चरण

यादृच्छिक वितरण उत्पन्न करना, CoddyKit पर R Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह R Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। R Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

R के वितरण फ़ंक्शन

R प्रत्येक वितरण के लिए चार फ़ंक्शन प्रदान करता है: r (रैंडम), d (घनत्व), p (संचयी प्रायिकता), q (क्वांटाइल)। r* फ़ंक्शन रैंडम सैंपल बनाते हैं।

# Pattern: r<dist>(n, param1, param2, ...)
# d<dist>(x, ...) -> density/probability
# p<dist>(q, ...) -> cumulative probability
# q<dist>(p, ...) -> quantile

# Example with normal distribution:
rnorm(5, mean = 0, sd = 1)    # 5 random draws
dnorm(0, mean = 0, sd = 1)    # density at x=0
pnorm(1.96, mean = 0, sd = 1) # P(X <= 1.96)
qnorm(0.975, mean = 0, sd = 1) # z-score for 97.5%
cat('Four functions: r, d, p, q for each distribution')

rnorm(): सामान्य वितरण

rnorm(n, mean, sd) N(mean, sd²) से n सैंपल बनाता है। डिफ़ॉल्ट मानक सामान्य वितरण N(0,1) है। सामान्य वितरण सांख्यिकी का मुख्य आधार है—केंद्रीय सीमा प्रमेय इसके व्यापक उपयोग की गारंटी देता है।

set.seed(42)
# Standard normal (mean=0, sd=1)
z_scores <- rnorm(1000)
mean(z_scores)  # ~0
sd(z_scores)    # ~1

# Custom normal (IQ scores: mean=100, sd=15)
set.seed(42)
iq_scores <- rnorm(100, mean = 100, sd = 15)
mean(iq_scores)  # ~100
sd(iq_scores)    # ~15
summary(iq_scores)

# About 68% within 1 sd
mean(abs(iq_scores - 100) < 15)  # ~0.68

runif(): समान वितरण

runif(n, min, max) min और max के बीच समान रूप से वितरित n सैंपल बनाता है। सीमा के सभी मानों की प्रायिकता समान होती है। डिफ़ॉल्ट रूप से runif(n), [0, 1] में मान देता है।

set.seed(7)
# Default: uniform on [0, 1]
u <- runif(5)
print(u)  # values in (0, 1)

# Uniform on [a, b]
temps <- runif(100, min = -10, max = 40)  # temperatures
mean(temps)   # ~15 (midpoint)
range(temps)  # should be within [-10, 40]

# Discrete simulation using floor()
dice_rolls <- floor(runif(10, min = 1, max = 7))
print(dice_rolls)  # integers 1-6
table(floor(runif(600, 1, 7)))  # roughly equal counts

rbinom(): द्विपद वितरण

rbinom(n, size, prob) n द्विपद प्रयोगों का सिमुलेशन करता है। प्रत्येक प्रयोग में size बर्नूली परीक्षण होते हैं और सफलता की प्रायिकता prob होती है। बर्नूली ड्रॉ के लिए size=1 का उपयोग करें।

set.seed(123)
# 10 coin flips (prob=0.5), repeated 5 times
coin_flips <- rbinom(5, size = 10, prob = 0.5)
print(coin_flips)  # number of heads each time

# Bernoulli: single flip (size=1)
flips <- rbinom(20, size = 1, prob = 0.5)
print(flips)  # 0s and 1s
mean(flips)   # ~0.5

# Biased coin (prob=0.7)
biased <- rbinom(1000, size = 1, prob = 0.7)
mean(biased)  # ~0.7

# Many trials: normal approximation kicks in
hundred_flips <- rbinom(1000, size = 100, prob = 0.5)
mean(hundred_flips)  # ~50

rpois(): पॉइसों वितरण

rpois(n, lambda) दर λ वाले पॉइसों वितरण से n सैंपल बनाता है। यह गणना संबंधी डेटा का मॉडल बनाता है (प्रति अंतराल घटनाएँ): प्रति मिनट वेबसाइट विज़िट, प्रति इकाई दोष, प्रति घंटे कॉल।

set.seed(5)
# Calls received per hour (average 3)
calls <- rpois(24, lambda = 3)  # 24 hours
print(calls)  # integers, mostly 1-6
mean(calls)   # ~3 (expectation = lambda)
var(calls)    # ~3 (variance = lambda for Poisson)

# Count the distribution
table(calls)

# Rare events (lambda=0.5)
rare_events <- rpois(100, lambda = 0.5)
table(rare_events)  # mostly 0s and 1s
mean(rare_events)   # ~0.5

rexp(): घातांकीय वितरण

rexp(n, rate) दी गई दर वाले घातांकीय वितरण से n सैंपल बनाता है। यह घटनाओं के बीच के समय (आगमन-अंतराल समय) का मॉडल बनाता है। माध्य = 1/rate। इसमें स्मृतिहीन गुण होता है।

set.seed(42)
# Time between customer arrivals (rate=2 per minute)
# Mean wait time = 1/2 = 0.5 minutes
arrival_times <- rexp(100, rate = 2)
mean(arrival_times)  # ~0.5
sd(arrival_times)    # ~0.5 (mean = sd for exponential)

# Simulate a queue
cumulative_arrivals <- cumsum(rexp(10, rate = 3))
print(round(cumulative_arrivals, 3))

# Exponential CDF: P(X <= x) = 1 - exp(-rate*x)
pexp(0.5, rate = 2)   # P(wait <= 0.5 min)
mean(arrival_times <= 0.5)  # empirical estimate

sample(): असतत सैंपलिंग

sample(x, size, replace) वेक्टर x से size तत्व चुनता है। replace=FALSE (डिफ़ॉल्ट) का अर्थ है बिना प्रतिस्थापन सैंपलिंग; replace=TRUE दोहराए गए मानों की अनुमति देता है।

set.seed(10)
# Sample without replacement (like drawing cards)
cards <- 1:52
hand <- sample(cards, size = 5, replace = FALSE)
print(hand)  # 5 unique cards

# Sample with replacement (bootstrap)
x <- c(10, 20, 30, 40, 50)
bootstrap_sample <- sample(x, size = 5, replace = TRUE)
print(bootstrap_sample)  # may have repeats

# Simulate rolling two dice 1000 times
dice <- function() sum(sample(1:6, 2, replace = TRUE))
rolls <- replicate(1000, dice())
table(rolls) / 1000  # empirical probabilities

भारित सैंपलिंग

sample(x, size, replace, prob) प्रायिकता भारों का उपयोग करता है। prob वेक्टर प्रत्येक तत्व को सापेक्ष प्रायिकता देता है—यह असमान असतत वितरणों के लिए उपयोगी है।

set.seed(99)
# Loaded die: 6 is twice as likely
faces <- 1:6
weights <- c(1, 1, 1, 1, 1, 2)  # relative
norm_weights <- weights / sum(weights)

rolls <- sample(faces, size = 1000, replace = TRUE,
                prob = norm_weights)
table(rolls) / 1000
# 6 appears ~2/7 ~= 0.286 of the time

# Categorical sampling
categories <- c('A', 'B', 'C')
probs <- c(0.5, 0.3, 0.2)
sample(categories, 10, replace = TRUE, prob = probs)

rgeom() और rnbinom(): गणना वितरण

rgeom(n, prob) पहली सफलता से पहले की विफलताओं की संख्या गिनता है। rnbinom(n, size, prob) size सफलताओं से पहले की विफलताओं की संख्या गिनता है। दोनों अधिक-विचरण वाले गणना डेटा का मॉडल बनाते हैं (पॉइसों वितरण से अधिक विचरण)।

set.seed(42)
# Geometric: flips until first head (prob=0.3)
# Number of FAILURES before first success
flips_until_head <- rgeom(10, prob = 0.3) + 1  # +1 for the success
print(flips_until_head)
mean(flips_until_head)  # ~1/0.3 = 3.33

# Negative binomial: overdispersed count data
# e.g., number of parasites per host
counts <- rnbinom(100, size = 2, prob = 0.4)
mean(counts)   # ~3 (theoretical: size*(1-p)/p)
var(counts)    # much larger than mean -> overdispersed

# Compare variance to Poisson with same mean
pois_counts <- rpois(100, lambda = mean(counts))
var(counts) / var(pois_counts)  # > 1

rt() और rf(): t और F वितरण

rt(n, df) df स्वतंत्रता की डिग्री वाले t-वितरित सैंपल बनाता है। df → ∞ होने पर यह सामान्य वितरण की ओर अभिसरित होता है। rf(n, df1, df2) F-वितरित सैंपल बनाता है—यह काई-स्क्वेयर चरों का अनुपात होता है।

set.seed(1)
# t distribution: heavier tails than normal
t_vals <- rt(1000, df = 5)
mean(t_vals)  # ~0
sd(t_vals)    # > 1 (inflated by heavy tails)

# Compare to normal
n_vals <- rnorm(1000)
# t has more extreme values (heavy tails)
sum(abs(t_vals) > 3)   # e.g., ~30
sum(abs(n_vals) > 3)   # e.g., ~3

# F distribution: used in ANOVA F-tests
f_vals <- rf(1000, df1 = 5, df2 = 20)
range(f_vals)   # always positive
mean(f_vals)    # ~df2/(df2-2) = 20/18 = 1.11

रैंडम वितरणों का दृश्यांकन

हिस्टोग्राम और घनत्व प्लॉट सिमुलेट किए गए वितरणों का आकार दिखाते हैं। hist() के साथ curve(dnorm(...)) ओवरले का उपयोग करके अनुभवजन्य घनत्व की तुलना सैद्धांतिक घनत्व वक्रों से करें।

set.seed(42)
x <- rnorm(10000, mean = 5, sd = 2)

# Quick summary statistics
summary(x)
cat('Mean:', mean(x), '\n')
cat('SD:', sd(x), '\n')
cat('Skewness (should be ~0 for normal):',
    mean(((x - mean(x))/sd(x))^3), '\n')

# Empirical quantiles vs theoretical
quantile(x, c(0.025, 0.25, 0.5, 0.75, 0.975))
# Compare to theoretical:
qnorm(c(0.025, 0.25, 0.5, 0.75, 0.975),
      mean = 5, sd = 2)

त्वरित जाँच

R के रैंडम वितरण फ़ंक्शन से संबंधित अपना ज्ञान जाँचें।

पुनरावलोकन: रैंडम वितरण

मुख्य बातें: सामान्य वितरण के लिए rnorm(n, mean, sd); समान वितरण के लिए runif(n, min, max); द्विपद वितरण के लिए rbinom(n, size, prob); पॉइसों गणनाओं के लिए rpois(n, lambda); घातांकीय प्रतीक्षा समय के लिए rexp(n, rate); असतत सैंपलिंग के लिए sample(x, size, replace)। पुनरुत्पाद्य विश्लेषण में रैंडम संख्याएँ बनाने से पहले हमेशा set.seed() का उपयोग करें।

set.seed(42)
# Quick reference of common distributions:
rnorm(3, mean = 0, sd = 1)        # Normal
runif(3, min = 0, max = 1)        # Uniform
rbinom(3, size = 10, prob = 0.5)  # Binomial
rpois(3, lambda = 3)              # Poisson
rexp(3, rate = 1)                 # Exponential
rt(3, df = 10)                    # Student t
rf(3, df1 = 5, df2 = 20)          # F distribution
rgeom(3, prob = 0.3)              # Geometric
sample(1:10, 3, replace = TRUE)   # Discrete uniform
cat('R has 20+ built-in distributions')
शुरुआत निःशुल्क

एआई शिक्षक के साथ R सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
43
पाठ
159

अक्सर पूछे जाने वाले प्रश्न

क्या “यादृच्छिक वितरण उत्पन्न करना” पाठ निःशुल्क है?

हाँ — R Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “यादृच्छिक वितरण उत्पन्न करना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। R Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“यादृच्छिक वितरण उत्पन्न करना” में मैं क्या सीखूँगा?

सामान्य, समसमान, द्विपद और Poisson वितरणों से नमूने लें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ R Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या R Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर R Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“यादृच्छिक वितरण उत्पन्न करना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस R Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर R Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. set.seed() और पुनरुत्पादकता
  2. यादृच्छिक वितरण उत्पन्न करना
  3. मोंटे कार्लो सिमुलेशन की मूल बातें
  4. R में बूटस्ट्रैप पुनर्नमूनाकरण
← R Academy पर वापस जाएँ