# raschtree

##### Rasch Trees

Recursive partitioning (also known as trees) based on Rasch models.

- Keywords
- tree

##### Usage

```
raschtree(formula, data, na.action,
reltol = 1e-10, deriv = c("sum", "diff", "numeric"), maxit = 100L,
…)
```# S3 method for raschtree
predict(object, newdata = NULL,
type = c("probability", "cumprobability", "mode", "median", "mean",
"category-information", "item-information", "test-information", "node"),
personpar = 0, …)

# S3 method for raschtree
plot(x, type = c("profile", "regions"), terminal_panel = NULL,
tp_args = list(...), tnex = 2L, drop_terminal = TRUE, ...)

##### Arguments

- formula
A symbolic description of the model to be fit. This should be of type

`y ~ x1 + x2`

where`y`

should be a binary 0/1 item response matrix and`x1`

and`x2`

are used as partitioning variables.- data
a data frame containing the variables in the model.

- na.action
a function which indicates what should happen when the data contain missing values (

`NA`

s).- deriv
character. Which type of derivatives should be used for computing gradient and Hessian matrix? Analytical with sum algorithm (

`"sum"`

), analytical with difference algorithm (`"diff"`

, faster but numerically unstable), or numerical. Passed to`raschmodel`

.- reltol, maxit
arguments passed via

`raschmodel`

to`optim`

.- …
arguments passed to the underlying functions, i.e., to

`mob_control`

for`raschtree`

, and to the underlying`predict`

and`plot`

methods, respectively.- object, x
an object of class

`"raschtree"`

.- newdata
optional data frame with partitioning variables for which predictions should be computed. By default the learning data set is used.

- type
character specifying the type of predictions or plot. For the

`predict`

method, either just the ID of the terminal`"node"`

can be predicted or some property of the model at a given person parameter (specified by`personpar`

).- personpar
numeric person parameter (of length 1) at which the predictions are evaluated.

- terminal_panel, tp_args, tnex, drop_terminal
arguments passed to

`plot.modelparty`

/`plot.party`

.

##### Details

Rasch trees are an application of model-based recursive partitioning
(implemented in `mob`

) to Rasch models
(implemented in `raschmodel`

).

Various methods are provided for `"raschtree"`

objects, most of them
inherit their behavior from `"modelparty"`

objects (e.g., `print`

, `summary`

,
etc.). For the Rasch models in the nodes of a tree, `coef`

extracts all item
parameters except the first one which is always restricted to be zero. `itempar`

extracts all item parameters (including the first one) and by default restricts their
sum to be zero (but other restrictions can be used as well). The `plot`

method
by default employs the `node_profileplot`

panel-generating function and
the `node_regionplot`

panel-generating function is provided as an alternative.

Rasch tree models are introduced in Strobl et al. (2015), whose analysis
for the `SPISA`

data is replicated in
`vignette("raschtree", package = "psychotree")`

. Their illustration
employing artificial data is replicated below.

##### Value

An object of S3 class `"raschtree"`

inheriting from class `"modelparty"`

.

##### References

Strobl C, Kopf J, Zeileis A (2015). Rasch Trees: A New Method for Detecting
Differential Item Functioning in the Rasch Model.
*Psychometrika*, **80**(2), 289--316.
10.1007/s11336-013-9388-3

##### See Also

##### Examples

```
# NOT RUN {
o <- options(digits = 4)
## artificial data
data("DIFSim", package = "psychotree")
## fit Rasch tree model
rt <- raschtree(resp ~ age + gender + motivation, data = DIFSim)
plot(rt)
## extract item parameters
itempar(rt)
## inspect parameter stability tests in all splitting nodes
if(require("strucchange")) {
sctest(rt, node = 1)
sctest(rt, node = 2)
}
## highlight items 3 and 14 with DIF
ix <- rep(1, 20)
ix[c(3, 14)] <- 2
plot(rt, ylines = 2.5, cex = c(0.4, 0.8)[ix],
pch = c(19, 19)[ix], col = gray(c(0.5, 0))[ix])
options(digits = o$digits)
# }
```

*Documentation reproduced from package psychotree, version 0.15-3, License: GPL-2 | GPL-3*