Ganzzahlige Zufallszahlen in R erzeugen

Neue Frage »

RLoseer Auf diesen Beitrag antworten »
Ganzzahlige Zufallszahlen in R erzeugen
Meine Frage:
Hey,
wie kann ich in R eine ganzzahlige Zufallszahl erzeugen?

Meine Ideen:
habe bisher nur folgenden Befehl x1<- runif(1, 2, 30)
Steffen Bühler Auf diesen Beitrag antworten »
RE: Ganzzahlige Zufallszahlen in R erzeugen
Willkommen im Matheboard!

Zitat:
Original von RLoseer
wie kann ich in R eine ganzzahlige Zufallszahl erzeugen?


Ich hab (wie wahrscheinlich die meisten hier) keine Ahnung von R, aber in den Programming Notes steht:

Zitat:
rnorm(mean=2,sd=3,n=100)
The R function rnorm produces Normally distributed random numbers and these numbers are assigned to an object called nrv. The arguments are the mean, standard deviation and the sample size (n). For information on this function in R , type help(rnorm) in the R console.


Und diese Zahlen könntest Du dann zu Ganzzahlen runden.

Hilft das?

Viele Grüße
Steffen
HAL 9000 Auf diesen Beitrag antworten »

@RLoseer

Mit "ganzzahlige" Zufallszahlen meinst du vermutlich Realisierungen der diskret auf der Menge gleichverteilten Zufallgröße , d.h.,

für ? verwirrt


In R kann man mit

x <- floor(runif(n,a,b+1))

einen -dimensionalen Vektor derartiger Werte erzeugen, also z.B. eine einziges Würfelaugenzahl mit

EinWurf <- floor(runif(1,1,7))
RLoseer Auf diesen Beitrag antworten »

vielen Dank!

habe folgende Formel nun verwendet: 0.5^2*var(d[,b<-round (runif(1,1.5,30.5))])+0.5^2*var(d[,c<-round (runif(1,1.5,30.5))])+2*0.5^2*cov((d[,b]),(d[,c]))

wobei runif die zufällige Spalte wählt! nun die nächste Frage, wie kann ich es vermeiden, dass 2 mal die gleiche Zufallszahl gezogen wird! quasi ein Ziehen ohne Zurücklegen?
Steffen Bühler Auf diesen Beitrag antworten »

Zitat:
Original von RLoseer
wie kann ich es vermeiden, dass 2 mal die gleiche Zufallszahl gezogen wird! quasi ein Ziehen ohne Zurücklegen?


Wir werden hier zwar massiv offtopic, aber wenn Du eh nur ganze Zahlen zwischen 0 und n erzeugst, mach Dir ein Array mit n boolschen Variablen, alle anfangs auf false, und setz nach jeder erzeugten Zufallszahl z das Element z dieses Arrays auf true. Laß dann Deinen Generator die Zahl nur zurückgeben, wenn das boolsche Element noch auf false steht, sonst nochmal ziehen. Die potentielle Endlosschleife mußt Du dabei natürlich irgendwie verhindern.

Viele Grüße
Steffen
HAL 9000 Auf diesen Beitrag antworten »

Oder so:

a <- floor(runif(1,2,31))
b <- floor(runif(1,2,30))
if (b >= a) b <- b+1


Denn die zweite Zufallszahl ist nun bedingt gleichverteilt auf , was durch obiges Konstrukt realisiert werden kann.

Geht bei paarweise verschiedenen Zufallszahlen prinzipell so ähnlich, allerdings liegt der Aufwand dieser "Korrekturen" dann bei .
 
 
Shortstop Auf diesen Beitrag antworten »

Ihr könnt mich gern korrigieren, aber was spricht denn dann dagegen einfach den Vektor einmal zufällig zu permutieren und dann die erste Zahl des Ergebnisvektors als erste Zufallszahl zu betrachten usw.?
RLoseer Auf diesen Beitrag antworten »

wer es genauer wissen will:

Mein Ziel ist es Aktien (Spalten) zufällig auszuwählen und dann in einem Portfolio zusammen zu fassen! zuerst nur eine Aktie, dann 2.... bis 30! immer unter Messung der Varianz (Standardabweichung)

Formel hierzu müsste wie folgt lauten: 1/N²&#8721; (von i=1 bis N)gii+ 1/N²&#8721traurig i=1 bis N)&#8721; j=1 bis N) (wobei i ungleich j) gij

wobei gii die Varianz der jeweiligen Aktien
und gij die jeweiligen Kovarianzen sind!

sorry für die Schreibweise, aber ich blicke hier noch nicht so durch!
RLoseer Auf diesen Beitrag antworten »

alles Zerschossen!

naja: nochmal mit Worten: also Fomel wie folgt
Steffen Bühler Auf diesen Beitrag antworten »

1. Du kannst innerhalb von 15 Minuten Deinen Artikel nachträglich editieren.
2. Du solltest, bevor Du den Artikel abschickst, über die Vorschau prüfen, wie er aussehen wird.
3. Du solltest den Formeleditor verwenden. Wenn Du Fragen dazu hast, stell sie.
4. Mit dem Formeleditor sähe Deine Formel so aus:



Viele Grüße
Steffen
RLoseer Auf diesen Beitrag antworten »

vielen Dank Steffen!!
RLoseer Auf diesen Beitrag antworten »

sorry wenn ich nochmals störe: kann ich die Summenzeichen auch in R eingeben?
HAL 9000 Auf diesen Beitrag antworten »

Zitat:
Original von Shortstop
aber was spricht denn dann dagegen einfach den Vektor einmal zufällig zu permutieren und dann die erste Zahl des Ergebnisvektors als erste Zufallszahl zu betrachten usw.?

Mathematisch nichts, aber die Performance ... probier's mal aus. Augenzwinkern

Außerdem beschreibt mein Vorgehen ja bereits eine Methode zur Erzeugung einer zufälligen Variation von k aus n Elementen (was im Fall k=n eine Permutation ist) - man braucht ja nicht notwendig die gesamte Permutation.

P.S.: Ich denke bei derartigen Simulationen eben immer in Kategorien Millionen/Milliarden Durchläufe. Teufel
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »