Мне нужно создать образцы из смешанного дистрибутива
40% выборок исходят из гауссова (среднее значение = 2, стандартное отклонение = 8)
20% образцов поступают из Коши (местоположение = 25, масштаб = 2)
40% выборок исходят от гауссова (среднее = 10, sd = 6)
Для этого я написал следующую функцию:
dmix <- function(x){
prob <- (0.4 * dnorm(x,mean=2,sd=8)) + (0.2 * dcauchy(x,location=25,scale=2)) + (0.4 * dnorm(x,mean=10,sd=6))
return (prob)
}
А затем протестировано с:
foo = seq(-5,5,by = 0.01)
vector = NULL
for (i in 1:1000){
vector[i] <- dmix(foo[i])
}
hist(vector)
Я получаю подобную гистограмму (которая, как я знаю, неверна) -
Что я делаю не так? Может ли кто-нибудь дать несколько указателей, пожалуйста?
hist(dmix(seq(-5,5,by = 0.01)))
без зацикливания иvector
- person talat   schedule 06.05.2014dmix <- function(x = 100) {prob <- c(rnorm(x * .4, mean = 2, sd = 8), rcauchy(x * .2, location = 25, scale = 2), rnorm(x * .4, mean = 10, sd = 6)); hist(prob)}; dmix()
- person rawr   schedule 06.05.2014