आप MATLAB में एक बिमोडल गाऊसी पीडीएफ से संख्या कैसे उत्पन्न करते हैं?

एक असमान सममित गाऊसी पीडीएफ के लिए यह वास्तव में आसान है:

x=randn(1000,1); 

लेकिन अब मैं एक गाऊसी पीडीएफ से 1000 नंबर बनाना चाहता हूं जिसमें दो चोटियां (या दो साधन) हों। मैं यह कैसे करु?

4
user1068636 7 पद 2017, 09:02

2 जवाब

सबसे बढ़िया उत्तर

आप अलग-अलग माध्य और मानक विचलन के साथ दो सामान्य वितरणों को मिलाकर बिमोडल सामान्य (गॉसियन) वितरण उत्पन्न कर सकते हैं (जैसा कि यह टिप्पणी)।

MATLAB में आप इसे कई तरीकों से कर सकते हैं:

सबसे पहले, हमें माध्य (mu) और मानक विचलन (sigma) निर्दिष्ट करने की आवश्यकता है जो हमारे सामान्य वितरण की विशेषता है, जिसे आमतौर पर N(mu, sigma) के रूप में नोट किया जाता है।

सामान्य वितरण a: N(-1, 0.5)

mu_a = -1;      % Mean (a).
sigma_a = 0.5;  % Standard deviation (a).

सामान्य वितरण ख: N(2, 1)

mu_b = 2;       % Mean (b).
sigma_b = 1;    % Standard deviation (b).

अंत में, आइए हमारे यादृच्छिक वैक्टर के आकार को परिभाषित करें:

sz = [1e4, 1];  % Size vector.

अब सामान्य रूप से वितरित यादृच्छिक संख्याओं के दो सदिशों को संयोजित करके बिमोडल यादृच्छिक मान उत्पन्न करते हैं:

विकल्प 1: randn का इस्तेमाल करके

x_1 = [sigma_a*randn(sz) + mu_a, sigma_b*randn(sz) + mu_b];

विकल्प 2: normrnd का इस्तेमाल करके

x_2 = [normrnd(mu_a, sigma_a, sz), normrnd(mu_b, sigma_b, sz)];

विकल्प 3: random का इस्तेमाल करके

x_3 = [random('Normal', mu_a, sigma_a, sz), random('Normal', mu_b, sigma_b, sz)];

आइए परिणामों की कल्पना करें:

subplot(1, 3, 1); histogram(x_1);
subplot(1, 3, 2); histogram(x_2);
subplot(1, 3, 3); histogram(x_3);

bimodal normal distributions

2
codeaviator 7 पद 2017, 16:35

मैं आपको एक विकल्प प्रस्तावित करता हूं जो gmdistribution का उपयोग करता है:

% Means (X1 -> -0.5 and X2 -> 1.2)
m = [-0.5; 1.2];

% Standard Deviations (X1 -> 2.1 and X2 -> 1.3)
s = cat(3,2.1,1.3);

% Weights (X1 and X2 Equally Weighted 0.5)
w = ones(1,2) / 2;

% Create the Gaussian Mixture Model...
gmd = gmdistribution(m,s,w);

% Draw 1000 random numbers from it...
x = random(gmd,1000);

% Plot a histogram...
histogram(x,100);
3
Tommaso Belluzzo 7 पद 2017, 23:25