Flexible Beta Modeling
[This article was first published on Yet Another Blog in Statistical Computing » S+/R, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
library(betareg)
library(sas7bdat)
df1 <- read.sas7bdat('lgd.sas7bdat')
df2 <- df1[df1$y < 1, ]
fml <- as.formula('y ~ x2 + x3 + x4 + x5 + x6 | x3 + x4 | x1 + x2')
### LATENT-CLASS BETA REGRESSION: AIC = -565 ###
mdl1 <- betamix(fml, data = df2, k = 2, FLXcontrol = list(iter.max = 500, minprior = 0.1))
print(mdl1)
#betamix(formula = fml, data = df2, k = 2, FLXcontrol = list(iter.max = 500,
# minprior = 0.1))
#
#Cluster sizes:
# 1 2
#157 959
summary(mdl1, which = 'concomitant')
# Estimate Std. Error z value Pr(>|z|)
#(Intercept) -1.35153 0.41988 -3.2188 0.001287 **
#x1 2.92537 1.13046 2.5878 0.009660 **
#x2 2.82809 1.42139 1.9897 0.046628 *
summary(mdl1)
#$Comp.1$mean
# Estimate Std. Error z value Pr(>|z|)
#(Intercept) -0.8963228 1.0385545 -0.8630 0.3881108
#x2 3.1769062 0.6582108 4.8266 1.389e-06 ***
#x3 -0.0520060 0.0743714 -0.6993 0.4843805
#x4 4.9642998 1.4204071 3.4950 0.0004741 ***
#x5 0.0021647 0.0022659 0.9554 0.3393987
#x6 0.0248573 0.0062982 3.9467 7.922e-05 ***
#
#$Comp.1$precision
# Estimate Std. Error z value Pr(>|z|)
#(Intercept) -5.37817 1.44817 -3.7138 0.0002042 ***
#x3 0.45009 0.10094 4.4589 8.239e-06 ***
#x4 3.06969 1.41450 2.1702 0.0299948 *
#
#$Comp.2
#$Comp.2$mean
# Estimate Std. Error z value Pr(>|z|)
#(Intercept) -1.8737088 0.3888454 -4.8186 1.445e-06 ***
#x2 -0.6318086 0.1892501 -3.3385 0.0008424 ***
#x3 0.1786425 0.0265428 6.7303 1.693e-11 ***
#x4 2.0646272 0.5256002 3.9281 8.561e-05 ***
#x5 -0.0064821 0.0014053 -4.6127 3.974e-06 ***
#x6 0.0018828 0.0022873 0.8231 0.4104318
#
#$Comp.2$precision
# Estimate Std. Error z value Pr(>|z|)
#(Intercept) 1.092403 0.616974 1.7706 0.076630 .
#x3 0.017330 0.040024 0.4330 0.665029
#x4 2.138812 0.717702 2.9801 0.002882 **
### BETA REGRESSION TREE: AIC = -578 ###
mdl2 <- betatree(fml, data = df2, minsplit = 100)
print(mdl2)
#1) x2 <= 0.08584895; criterion = 1, statistic = 154.716
# 2)* weights = 121
#Terminal node model
#betaReg fit with coefficients:
# (Intercept) x2 x3 x4
# 3.307359 -2.854351 -0.262815 -2.414481
# x5 x6 (phi)_(Intercept) (phi)_x3
# -0.007555 0.030346 1.003767 -0.002907
# (phi)_x4
# 2.528602
#
#1) x2 > 0.08584895
# 3)* weights = 995
#Terminal node model
#betaReg fit with coefficients:
# (Intercept) x2 x3 x4
# -2.134931 -0.194830 0.168136 2.811077
# x5 x6 (phi)_(Intercept) (phi)_x3
# -0.002070 0.004677 -1.018102 0.151778
# (phi)_x4
# 2.142995
sctest(mdl2, node = 1)
# x1 x2
#statistic 113.4781 154.7165
#p.value 0.0000 0.0000
summary(mdl2)
#$`2`
#
#Coefficients (mean model with logit link):
# Estimate Std. Error z value Pr(>|z|)
#(Intercept) 3.307359 1.091289 3.031 0.002440 **
#x2 -2.854351 3.644882 -0.783 0.433561
#x3 -0.262815 0.074716 -3.518 0.000436 ***
#x4 -2.414481 1.785447 -1.352 0.176276
#x5 -0.007555 0.002788 -2.710 0.006738 **
#x6 0.030346 0.006833 4.441 8.96e-06 ***
#
#Phi coefficients (precision model with log link):
# Estimate Std. Error z value Pr(>|z|)
#(Intercept) 1.003767 1.353496 0.742 0.458
#x3 -0.002907 0.090816 -0.032 0.974
#x4 2.528602 2.344241 1.079 0.281
#$`3`
#
#Coefficients (mean model with logit link):
# Estimate Std. Error z value Pr(>|z|)
#(Intercept) -2.134931 0.337784 -6.320 2.61e-10 ***
#x2 -0.194830 0.144062 -1.352 0.17625
#x3 0.168136 0.022521 7.466 8.28e-14 ***
#x4 2.811077 0.387788 7.249 4.20e-13 ***
#x5 -0.002070 0.001136 -1.822 0.06848 .
#x6 0.004677 0.001770 2.643 0.00822 **
#
#Phi coefficients (precision model with log link):
# Estimate Std. Error z value Pr(>|z|)
#(Intercept) -1.01810 0.46575 -2.186 0.028821 *
#x3 0.15178 0.03057 4.965 6.88e-07 ***
#x4 2.14300 0.56979 3.761 0.000169 ***
To leave a comment for the author, please follow the link and comment on their blog: Yet Another Blog in Statistical Computing » S+/R.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.