Trong R, tôi muốn tạo một mẫu ngẫu nhiên của một biến ngẫu nhiên rời rạc: X
, trong đó: P(X=a)=P(X=-a)=1/2
. Tôi đã tìm kiếm một chức năng trực tuyến, nhưng dường như không có chức năng trực tiếp nào làm việc này.R-Làm thế nào để tạo ra mẫu ngẫu nhiên của một biến ngẫu nhiên rời rạc?
Trả lời
Tôi nghĩ bạn đang tìm cách tạo mẫu của biến ngẫu nhiên Bernoulli. Biến ngẫu nhiên Bernoulli là một trường hợp đặc biệt của một biến ngẫu nhiên nhị thức. Do đó, bạn có thể thử rbinom(N,1,p)
. Điều này sẽ tạo ra các mẫu N
, với giá trị 1
với xác suất p
, giá trị 0
với xác suất (1-p)
. Để nhận giá trị của a
và -a
bạn có thể sử dụng a*(2*rbinom(N,1,p)-1)
.
index <- sample(1,c(1,2),replace=T)
if (index == 1) {xx = a} else {xx = -a}
Mỗi thủ tục tạo phân phối bắt đầu bằng cách sử dụng $ \ text {uniform} (0,1) $. Vì các bản phân phối rời rạc dễ tạo hơn với $ \ text {uniform} (0,1) $, nên mọi người không bao bọc chức năng cho chúng. Tuy nhiên, bạn có thể viết chức năng của riêng bạn và chỉ cần chọn chúng lên lần sau bạn sẽ sử dụng chúng.
Hoặc này:
> 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) Nếu bạn sử dụng sample
, đây là đủ:
sample(c(-a,a),1)
ví dụ .:
a <- 10
sample(c(-a,a),1)
[1] -10
Hãy thử một vài:
> sample(c(-a,a),1)
[1] -10
> sample(c(-a,a),1)
[1] 10
Hoạt động.
Nếu bạn cần phải lấy mẫu nhiều hơn một phần tử, sau đó thiết lập replace=TRUE
... ở đây chúng tôi lấy mẫu 12 lần:
sample(c(-a,a),12,replace=TRUE)
[1] 10 10 -10 10 10 10 -10 -10 10 -10 10 -10
2) bạn có thể sử dụng runif
; đây là mẫu có kích thước 9:
a <- 1
ifelse(runif(9)<.5,-a,a)
[1] -1 1 -1 1 -1 1 -1 1 1
3) bạn có thể sử dụng rbinom
; đây là mẫu có kích thước 4:
a <- 6
ifelse(rbinom(4,1,.5),-a,a)
[1] -6 6 -6 6
- 1. Làm thế nào để tạo ra một số ngẫu nhiên từ phân phối rời rạc được chỉ định?
- 2. Vang vọng ra một biến ngẫu nhiên
- 3. Làm thế nào để tạo ra một phân phối chuẩn ngẫu nhiên của số nguyên
- 4. Xác định hàm khối xác suất của biến ngẫu nhiên
- 5. Cách tạo số nguyên ngẫu nhiên ngẫu nhiên "đủ"?
- 6. Trình tạo số ngẫu nhiên phân phối ngẫu nhiên
- 7. số ngẫu nhiên không quá ngẫu nhiên
- 8. Tạo chuỗi ngẫu nhiên
- 9. Tại sao không ngẫu nhiên() ngẫu nhiên?
- 10. Tạo các biến ngẫu nhiên rời rạc với các trọng số xác định bằng SciPy hoặc NumPy
- 11. Tạo địa hình ngẫu nhiên
- 12. elm tạo số ngẫu nhiên
- 13. Làm thế nào để 'ngẫu nhiên()' số ngẫu nhiên trong C (Linux)?
- 14. NumPy hạt giống ngẫu nhiên tạo ra số ngẫu nhiên khác nhau
- 15. Tạo số ngẫu nhiên lớn
- 16. Tạo ID ngẫu nhiên nhỏ
- 17. Số ngẫu nhiên hoặc số dương Javascript ngẫu nhiên
- 18. Tạo một tệp nhị phân ngẫu nhiên
- 19. Tạo cùng một chuỗi số ngẫu nhiên
- 20. Ngẫu nhiên một góc?
- 21. Tạo ngẫu nhiên UUID thế hệ
- 22. Tạo số ngẫu nhiên CUDA
- 23. Tạo một dãy các số ngẫu nhiên
- 24. số C# ngẫu nhiên không là "ngẫu nhiên"
- 25. Cuộc gặp gỡ ngẫu nhiên không quá ngẫu nhiên
- 26. Thế hệ ngẫu nhiên Haskell
- 27. Tạo chuỗi ngẫu nhiên dựa trên Regex?
- 28. Ngẫu nhiên int mà không nhập 'ngẫu nhiên'
- 29. Lấy mẫu ngẫu nhiên trong Google BigQuery
- 30. TensorFlow: tạo một hằng số ngẫu nhiên
Mã này sai. Nó chỉ tạo ra 'a' –