Lognormale Zufallszahlen in bestimmten Bereich in Matlab
-
28-09-2019 - |
Frage
Ich möchte eine Lognormalverteilung mit Bereich entwickeln [0.42,1.19], deren wenige Elemente als D=[1.19,1.00,0.84,0.71,0.59,0.50,0.42]
gegeben. Der Mittelwert sollte 0.84
und Standardabweichung so klein wie möglich sein. Auch gegeben ist, dass das 90% der CDF (= 90% der Körner) liegt zwischen 0.59 and 1.19
.
Wenn ich weiß, alle Elemente dieser Lognormalverteilung, die die gegebenen Bedingungen übernehmen kann ich seine pdf finden, das ist, was ich verlangen. Hier sind einfache Schritte, die ich versucht:
D=[1.19,1.00,0.84,0.71,0.59,0.50,0.42];
s=0.30; % std dev of the lognormal distribution
m=0.84; % mean of the lognormal distribution
mu=log(m^2/sqrt(s^2+m^2)); % mean of the associated normal dist.
sigma=sqrt(log((s^2/m^2)+1)); % std dev of the associated normal dist.
[r,c]=size(D);
for i=1:c
D_normal(i)=mu+(sigma.*randn(1));
w(i)=(D_normal(i)-mu)/sigma; % the probability or the wt. percentage
end
sizes=exp(D_normal);
Lösung
Wenn Sie die Statistiken Toolbox haben, und Sie wollen zufällige Werte aus der Lognormalverteilung zeichnen, können Sie rufen Sie einfach LOGNRND . Wenn Sie die Dichte der Lognormalverteilung mit einem gegebenen Mittelwert und Sigma auf einem bestimmten Wert wissen wollen, verwenden Sie LOGNPDF .
Da Sie Gewichte sind zu berechnen, können Sie für die Dichte suchen. Diese würden, in Ihrem Beispiel:
weights = lognpdf([1.19,1.00,0.84,0.71,0.59,0.50,0.42],0.84,0.3)
weights =
0.095039 0.026385 0.005212 0.00079218 6.9197e-05 5.6697e-06 2.9244e-07
Bearbeiten
Wenn Sie wissen wollen, was prozentuale Anteil der Körner fällt in den Bereich von 0,59 bis 1,19, verwenden Sie LOGNCDF :
100*diff(logncdf([0.59,1.19],0.84,0.3))
ans =
1.3202
Das ist nicht viel. Wenn Sie die Verteilung plotten, werden Sie feststellen, dass die Lognormalverteilung mit Ihren Werten Spitzen etwas über 2
x = 0:0.01:10;
figure
plot(x,lognpdf(x,0.84,0.3))
Andere Tipps
Es scheint, dass Sie suchen abgeschnittene lognormal Zufallszahlen zu erzeugen. Wenn meine Vermutung richtig ist, können Sie entweder die Verwerfungsmethode oder