In R möchte ich eine zufällige Stichprobe einer diskreten Zufallsvariable erzeugen: X
, wobei: P(X=a)=P(X=-a)=1/2
. Ich habe online nach einer Funktion gesucht, aber das scheint keine direkte Funktion zu haben.R-Wie erzeugt man Zufallsstichproben von diskreten Zufallsvariablen?
Antwort
Ich denke, dass Sie Proben einer Bernoulli-Zufallsvariable generieren möchten. Eine Bernoulli-Zufallsvariable ist ein Spezialfall einer binomischen Zufallsvariablen. Daher können Sie versuchen rbinom(N,1,p)
. Dies erzeugt N
Samples mit dem Wert 1
mit der Wahrscheinlichkeit , Wert 0
mit der Wahrscheinlichkeit (1-p)
. Um Werte von a
und zu erhalten, können Sie a*(2*rbinom(N,1,p)-1)
verwenden.
Jede verteilungserzeugende Prozedur beginnt mit $ \ text {uniform} (0,1) $. Da diskrete Verteilungen mit $ \ text {uniform} (0,1) $ viel einfacher zu erzeugen sind, wird für die Leute keine Funktion eingepackt. Sie können jedoch Ihre eigene Funktion schreiben und sie beim nächsten Mal abholen.
Oder diese:
> n=10
> X=rep(0,n)
> Y=rbinom(n,1,1/2)
> #Since they the probability is 1/2 for both cases, I assigned "a" when Y=1 and "-a" otherwise.
> X[Y==1]="a"
> X[Y==0]="-a"
> X
[1] "a" "-a" "a" "a" "a" "-a" "a" "-a" "-a" "-a"
> Y
[1] 1 0 1 1 1 0 1 0 0 0
>
1) Wenn Sie sample
verwenden, ist dies ausreichend:
sample(c(-a,a),1)
z.B .:
a <- 10
sample(c(-a,a),1)
[1] -10
noch ein paar Versuchen:
> sample(c(-a,a),1)
[1] -10
> sample(c(-a,a),1)
[1] 10
Funktioniert.
Wenn Sie mehr als ein Element probieren, dann setzen Sie replace=TRUE
... wir 12-mal hier probieren:
sample(c(-a,a),12,replace=TRUE)
[1] 10 10 -10 10 10 10 -10 -10 10 -10 10 -10
2) Sie runif
verwenden können; hier ist eine Stichprobe der Größe 9:
a <- 1
ifelse(runif(9)<.5,-a,a)
[1] -1 1 -1 1 -1 1 -1 1 1
3) Sie rbinom
verwenden können; Hier ist ein Beispiel der Größe 4:
a <- 6
ifelse(rbinom(4,1,.5),-a,a)
[1] -6 6 -6 6
- 1. Division von Zufallsvariablen Java
- 2. Verwenden von Zufallsvariablen in Arrays
- 3. berechnen diskreten Logarithmus
- 4. Wie man Methodensignatur erzeugt?
- 5. Covolution von zwei diskreten Fourier-Transformationen
- 6. Wie man Permutationen erzeugt?
- 7. Wie man Javadoc von der Befehlszeile erzeugt
- 8. Wie man Daten von Normalverteilung erzeugt
- 9. Wie man Codebeispiele von einer Grammatik erzeugt?
- 10. Wie generiert man eine Zufallszahl aus der angegebenen diskreten Verteilung?
- 11. Hinzufügen von zwei Zufallsvariablen über Faltung in R
- 12. Matrix mit iid normaler Zufallsvariablen R
- 13. Wie man eine Gitarrennote erzeugt
- 14. Definieren Sie eine Sequenz von Zufallsvariablen in Maple?
- 15. Generierte korrelierte Zufallsvariablen mit bestimmten Standardabweichungen
- 16. AnyLogic ein Modell mit Zufallsvariablen mehrmals
- 17. Wie erstellt man ein Balkendiagramm/Histogramm mit Balken pro diskreten Wert?
- 18. Funktionelle Ansätze zum Entwurf der diskreten Seite von Hybridsystemen
- 19. Ermitteln aller diskreten Punkte innerhalb eines Dreiecks
- 20. Clustering-Algorithmus mit diskreten und kontinuierlichen Attributen?
- 21. Stapelbar erzeugt von Phyloseq
- 22. Wie erzeugt man zufällige Farben in Matplotlib?
- 23. Delphi 7: Wie man Klassenhierarchie erzeugt?
- 24. Pythons `fromtimestamp` macht einen diskreten Sprung
- 25. iOS: Wie man zufällige Pastellfarben erzeugt?
- 26. Algorithmus zum Generieren von Zufallszahlen aus einer diskreten Verteilung?
- 27. nvd3 Gestapeltes Balkendiagramm mit diskreten Werten
- 28. Wie man mapping.txt mit Eclipse erzeugt?
- 29. ggplot geom_point() mit Farben basierend auf bestimmten, diskreten Werten
- 30. Wie man `DOS/Unix` erzeugt Wie GUI
Der Code ist falsch. Es erzeugt nur "a" –