Ganzzahlige Zufallszahlen in R erzeugen |
20.02.2013, 20:55 | RLoseer | Auf diesen Beitrag antworten » | ||||
Ganzzahlige Zufallszahlen in R erzeugen Hey, wie kann ich in R eine ganzzahlige Zufallszahl erzeugen? Meine Ideen: habe bisher nur folgenden Befehl x1<- runif(1, 2, 30) |
||||||
21.02.2013, 09:34 | Steffen Bühler | Auf diesen Beitrag antworten » | ||||
RE: Ganzzahlige Zufallszahlen in R erzeugen Willkommen im Matheboard!
Ich hab (wie wahrscheinlich die meisten hier) keine Ahnung von R, aber in den Programming Notes steht:
Und diese Zahlen könntest Du dann zu Ganzzahlen runden. Hilft das? Viele Grüße Steffen |
||||||
21.02.2013, 09:59 | 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 ? 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)) |
||||||
21.02.2013, 12:59 | 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? |
||||||
21.02.2013, 13:08 | Steffen Bühler | Auf diesen Beitrag antworten » | ||||
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 |
||||||
21.02.2013, 13:18 | 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 . |
||||||
Anzeige | ||||||
|
||||||
21.02.2013, 13:26 | 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.? |
||||||
21.02.2013, 13:27 | 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²∑ (von i=1 bis N)gii+ 1/N²∑ i=1 bis N)∑ 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! |
||||||
21.02.2013, 13:32 | RLoseer | Auf diesen Beitrag antworten » | ||||
alles Zerschossen! naja: nochmal mit Worten: also Fomel wie folgt |
||||||
21.02.2013, 13:57 | 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 |
||||||
21.02.2013, 14:15 | RLoseer | Auf diesen Beitrag antworten » | ||||
vielen Dank Steffen!! |
||||||
21.02.2013, 15:49 | RLoseer | Auf diesen Beitrag antworten » | ||||
sorry wenn ich nochmals störe: kann ich die Summenzeichen auch in R eingeben? |
||||||
22.02.2013, 07:14 | HAL 9000 | Auf diesen Beitrag antworten » | ||||
Mathematisch nichts, aber die Performance ... probier's mal aus. 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. |
|