Beta {saeHB} | R 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
)
Arguments
formula |
Formula that describe the fitted model |
iter.update |
Number of updates with default |
iter.mcmc |
Number of total iterations per chain with default |
coef |
a vector contains prior initial value of Coefficient of Regression Model for fixed effect with default vector of |
var.coef |
a vector contains prior initial value of variance of Coefficient of Regression Model with default vector of |
thin |
Thinning rate, must be a positive integer with default |
burn.in |
Number of iterations to discard at the beginning with default |
tau.u |
Prior initial value of inverse of Variance of area random effect with default |
data |
The data frame |
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)
Mu <- exp(b0+b1*x1+b2*x2+b3*x3+b4*x4+u)/(1+exp(b0+b1*x1+b2*x2+b3*x3+b4*x4+u))
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)