Оценить вероятность по элементам списка в R
У меня есть список 100 000 смоделированных чисел T в R (минимум: 1,5, максимум 88,8), и я хочу вычислить вероятность того, что T будет между 10 и 50.
Я суммировал 100 000 чисел Т, где Т t(y) %*% M %*% y
где M
является матрицей постоянных значений 8x8, а y является матрицей 8x1. Элемент в i
-я строка, если у, равна: a_i + b_i
где a - вектор констант, а b - вектор, элементы которого следуют за normal (0,sd=2)
распределение (каждый элемент представляет собой другое моделируемое число N(0,2)
)
2 ответа
Это в векторе или в списке? Если это вектор, должно работать следующее. Если он находится в списке, вы можете использовать unlist(), чтобы преобразовать его в вектор.
mylist <- runif(100000,1.5,88.8) #this is just to generate a random number vector
length(which(mylist>=10 & mylist<=50))/length(mylist)
set.seed(42)
myrandoms <- rnorm(100000, mean=5, sd=2)
mydistr <- ecdf(myrandoms)
#probability of beeing between 1 and 3:
diff(mydistr(c(1, 3)))
#[1] 0.13781
#compare with normal distribution
diff(pnorm(c(1, 3), mean=5, sd=2))
#[1] 0.1359051
Если у вас действительно есть список, используйте myrandoms <- do.call(c, mylist)
сделать это вектором.