symbolic description of the model of type y ~ x
or y ~ x | z, specifying the variables influencing mean
and precision of y, respectively. For details see betareg.
partition
symbolic description of the partitioning variables,
e.g., ~ p1 + p2. The argument partition can be omitted
if formula is a three-part formula of type y ~ x | z | p1 + p2.
data, subset, na.action
arguments controlling formula processing.
link
character specification of the link function in
the mean model (mu). Currently, "logit", "probit",
"cloglog", "cauchit", "log", "loglog" are supported.
Alternatively, an object of class "link-glm" can be supplied.
link.phi
character specification of the link function in
the precision model (phi). Currently, "identity",
"log", "sqrt" are supported.
Alternatively, an object of class "link-glm" can be supplied.
control
a list of control arguments for the beta regression specified via
betareg.control.
...
further control arguments for the recursive partitioning
passed to mob_control.
Details
Beta regression trees are an application of model-based recursive partitioning
(implemented in mob, see Zeileis et al. 2008) to
beta regression (implemented in betareg, see Cribari-Neto
and Zeileis 2010). For plugging in betareg into mob some
glue is required which is provided by betaReg. See also
Grün at al. (2012) for more details.
Various methods are provided for "betatree" objects, most of them
inherit their behavior from "mob" objects (e.g., print, summary,
coef, etc.). The plot method employs the node_bivplot
panel-generating function.
betaReg is a wrapper function that creates a "StatModel" object
with certain fitting parameters passed on to betareg.fit for fitting
beta regression models. It is the S4 interface required for plug-in to
mob. The user does not have to call this directly but
can simply use the betatree interface.
Value
betatree() returns an object of S3 class "betatree" which is a
list containing only a single element of S4 class "mob" (because this is
currently not exported from the party package).
betaReg returns an S4 object of class "StatModel" that fits beta
regression models with the specified control arguments. When applied to data,
it returns S3 objects of class "betaReg" inheriting from "betareg".
References
Cribari-Neto, F., and Zeileis, A. (2010). Beta Regression in R.
Journal of Statistical Software, 34(2), 1–24.
http://www.jstatsoft.org/v34/i02/.
Grün, B., Kosmidis, I., and Zeileis, A. (2012).
Extended Beta Regression in R: Shaken, Stirred, Mixed, and Partitioned.
Journal of Statistical Software, 48(11), 1–25.
http://www.jstatsoft.org/v48/i11/.
Zeileis, A., Hothorn, T., and Hornik K. (2008).
Model-Based Recursive Partitioning.
Journal of Computational and Graphical Statistics,
17(2), 492–514.
See Also
betareg, betareg.fit, mob
Examples
## data with two groups of dyslexic and non-dyslexic children
data("ReadingSkills", package = "betareg")
## additional random noise (not associated with reading scores)
set.seed(1071)
ReadingSkills$x1 <- rnorm(nrow(ReadingSkills))
ReadingSkills$x2 <- runif(nrow(ReadingSkills))
ReadingSkills$x3 <- factor(rnorm(nrow(ReadingSkills)) > 0)
## fit beta regression tree: in each node
## - accurcay's mean and precision depends on iq
## - partitioning is done by dyslexia and the noise variables x1, x2, x3
## only dyslexi is correctly selected for splitting
bt <- betatree(accuracy ~ iq | iq, ~ dyslexia + x1 + x2 + x3,
data = ReadingSkills, minsplit = 10)
plot(bt)
## inspect result
coef(bt)
sctest(bt)
summary(bt, node = 2)
summary(bt, node = 3)
## add a numerical variable with relevant information for splitting
ReadingSkills$x4 <- rnorm(nrow(ReadingSkills), c(-1.5, 1.5)[ReadingSkills$dyslexia])
bt2 <- betatree(accuracy ~ iq | iq, ~ x1 + x2 + x3 + x4,
data = ReadingSkills, minsplit = 10)
plot(bt2)
## inspect result
coef(bt2)
sctest(bt2)
summary(bt2, node = 2)
summary(bt2, node = 3)