# xyadj: Adjust x and y variables for SITAR random effects In sitar: Super Imposition by Translation and Rotation Growth Curve Analysis

## Adjust x and y variables for SITAR random effects

### Description

`xyadj` Adjusts `x` and `y` values for subject-specific random effects from a SITAR model.

### Usage

```xyadj(object, x, y = NULL, id, abc = NULL, tomean = TRUE)
```

### Arguments

 `object` a SITAR model. `x` a vector of x coordinates. If missing, `x` and `y` and `id` are obtained from `object`. `y` a vector of y coordinates (default NULL). `id` a factor denoting the subject levels corresponding to `x` and `y`. `abc` a data frame containing random effects for a, b, c and d (default `ranef(object)[id, ]`). `tomean` a logical defining the direction of adjustment. TRUE (default) indicates that individual curves are translated and rotated to match the mean curve, while FALSE indicates the reverse, the mean curve being translated and rotated to match individual curves.

### Details

When tomean = TRUE the x and y values are adjusted to

(x - xoffset - b<fixed> - b<random>) * exp(c<random>) + xoffset + b<fixed>

y - a<random> - d<random> * x

When tomean = FALSE they are adjusted to

(x - xoffset - b<fixed>) / exp(c<random>) + xoffset + b<fixed> + b<random>

y + a<random> + d<random> * x

In each case missing values of the fixed or random effects are set to zero.

### Value

 `x` numeric vector. `y` numeric vector the same length as x, or NULL.

### Author(s)

Tim Cole tim.cole@ucl.ac.uk

### Examples

```
data(heights)
## fit sitar model for height
m1 <- sitar(x=age, y=height, id=id, data=heights, df=5)

## plot unadjusted data as growth curves
plot(m1, opt='u')

## overplot with adjusted data as points