Beta: Small Area Estimation using Hierarchical Bayesian under Beta...

View source: R/Beta.R

BetaR Documentation

Small Area Estimation using Hierarchical Bayesian under Beta Distribution

Description

This function is implemented to variable of interest (y) that assumed to be a Beta Distribution. The range of data must be 0<y<1. The data proportion is supposed to be implemented with this function.

Usage

Beta(
  formula,
  iter.update = 3,
  iter.mcmc = 10000,
  coef,
  var.coef,
  thin = 3,
  burn.in = 2000,
  tau.u = 1,
  data,
  seed = 1,
  quiet = TRUE,
  plot = TRUE
)

Arguments

formula

Formula that describe the fitted model

iter.update

Number of updates with default 3

iter.mcmc

Number of total iterations per chain with default 10000

coef

a vector contains prior initial value of Coefficient of Regression Model for fixed effect with default vector of 0 with the length of the number of regression coefficients

var.coef

a vector contains prior initial value of variance of Coefficient of Regression Model with default vector of 1 with the length of the number of regression coefficients

thin

Thinning rate, must be a positive integer with default 2

burn.in

Number of iterations to discard at the beginning with default 2000

tau.u

Prior initial value of inverse of Variance of area random effect with default 1

data

The data frame

seed

number used to initialize a pseudorandom number generator (default seed = 1). The random number generator method used is "base::Wichmann-Hill".

quiet

if TRUE, then messages generated during compilation will be suppressed (default TRUE).

plot

if TRUE, the autocorrelation, trace, and density plots will be generated (default TRUE).

Value

This function returns a list of the following objects:

Est

A vector with the values of Small Area mean Estimates using Hierarchical bayesian method

refVar

Estimated random effect variances

coefficient

A dataframe with the estimated model coefficient

plot

Trace, Dencity, Autocorrelation Function Plot of MCMC samples

Examples


# Data Generation
set.seed(123)
m <- 30
x1 <- runif(m, 0, 1)
x2 <- runif(m, 0, 1)
x3 <- runif(m, 0, 1)
x4 <- runif(m, 0, 1)
b0 <- b1 <- b2 <- b3 <- b4 <- 0.5
u <- rnorm(m, 0, 1)
pi <- rgamma(1, 1, 0.5)
m <- exp(b0 + b1 * x1 + b2 * x2 + b3 * x3 + b4 * x4 + u)
Mu <- m / (1 + m)
A <- Mu * pi
B <- (1 - Mu) * pi
y <- rbeta(m, A, B)
y <- ifelse(y < 1, y, 0.99999999)
y <- ifelse(y > 0, y, 0.00000001)
MU <- A / (A + B)
vardir <- A * B / ((A + B)^2 * (A + B + 1))
dataBeta <- as.data.frame(cbind(y, x1, x2, x3, x4, vardir))
dataBetaNs <- dataBeta
dataBetaNs$y[c(3, 14, 22, 29, 30)] <- NA
dataBetaNs$vardir[c(3, 14, 22, 29, 30)] <- NA


## Compute Fitted Model
## y ~ x1 +x2


## For data without any nonsampled area

vc <- c(1, 1, 1)
c <- c(0, 0, 0)
formula <- y~x1 + x2
dat <- dataBeta[1:10, ]


## Using parameter coef and var.coef
saeHBbeta <- Beta(formula, var.coef = vc, iter.update = 10, coef = c, data = dat)

saeHBbeta$Est # Small Area mean Estimates
saeHBbeta$refVar # Random effect variance
saeHBbeta$coefficient # coefficient
# Load Library 'coda' to execute the plot
# autocorr.plot(saeHBbeta$plot[[3]])  # is used to generate ACF Plot
# plot(saeHBbeta$plot[[3]])           # is used to generate Density and trace plot

## Do not use parameter coef and var.coef
saeHBbeta <- Beta(formula, data = dataBeta)


saeHB documentation built on Nov. 26, 2025, 5:06 p.m.