бета-распределение с четырьмя параметрами в R

Есть ли встроенная функция для расчета бета-распределения с четырьмя параметрами в R? То есть распределение с двумя параметрами формы и двумя граничными параметрами, чтобы оно не было ограниченным [0,1]?

Я сделал свой собственный, но любопытно, существует ли уже эта функция. Не нужно изобретать велосипед.

shp1 <- 20
shp2 <- 5
X <- seq(0,1,length.out = 100)
Y <- dbeta(x = X,shape1 = shp1, shape2 = shp2)
plot(X,Y)
# scaled between two boundaries
dbeta4param <- function(x,shp1,shp2,bnd1,bnd2){
  mask = (x>=bnd1 & x<=bnd2)
  xScale = (x-bnd1)/(bnd2-bnd1)
  mask * dbeta(xScale,shape1=shp1,shape2=shp2)/(bnd2-bnd1)
}
bnd1 <- 2
bnd2 <- 4
X2 <- seq(bnd1,bnd2,length.out = 100)
Y2 <- dbeta4param(x=X2, shp1 = shp1, shp2 = shp2, bnd1 = bnd1, bnd2 = bnd2)
plot(X2,Y2)

person user111024    schedule 21.03.2018    source источник
comment
вы говорите об обобщенном бета-распределении?   -  person Onyambu    schedule 22.03.2018
comment
Ах. Да, это так. Спасибо.   -  person user111024    schedule 22.03.2018
comment
посмотрите на library(GB2) функцию dgb2   -  person Onyambu    schedule 22.03.2018


Ответы (1)


Представление задач CRAN: Распределение вероятностей — это всегда хороший ресурс о том, где найти различные R распределения вероятностей. В соответствии с ним следует использовать пакет extraDistr (extraDistr::rnsbeta Например).

person HFBrowning    schedule 21.03.2018
comment
Верно. Я искал обобщение, как прокомментировал @Onyambu. Я вызвал специальную функцию beta(), чтобы создать свою собственную функцию: dbeta4param <- function(x,shp1,shp2,bnd1,bnd2){ ((x-bnd1)^(shp1-1) * (bnd2 - x)^(shp2-1)) / ((bnd2 - bnd1)^(shp1+shp2-1) * beta(shp1,shp2)) } . И действительно, extraDistr::rnsbeta выглядит очень похоже и делает то, что я хочу. Спасибо. - person user111024; 22.03.2018