# fit_transformation: Fitting Bidimensional or Tridimensional Regression /... In TriDimRegression: Bayesian Statistics for 2D/3D Transformations

 fit_transformation R Documentation

## Fitting Bidimensional or Tridimensional Regression / Geometric Transformation Models via Formula.

### Description

Fits Bidimensional or Tridimensional regression / geometric transformation models using Stan engine. The `formula` described dependent and independent numeric variables in the `data`. See also `fit_transformation_df`.

For the 2D data, you can fit `"translation"` (2 parameters for translation only), `"euclidean"` (4 parameters: 2 for translation, 1 for scaling, and 1 for rotation), `"affine"` (6 parameters: 2 for translation and 4 that jointly describe scaling, rotation and sheer), or `"projective"` (8 parameters: affine plus 2 additional parameters to account for projection).

For 3D data, you can fit `"translation"` (3 for translation only), `"euclidean_x"`, `"euclidean_y"`, `"euclidean_z"` (5 parameters: 3 for translation scale, 1 for rotation, and 1 for scaling), `"affine"` (12 parameters: 3 for translation and 9 to account for scaling, rotation, and sheer), and `"projective"` (15 parameters: affine plus 3 additional parameters to account for projection). transformations.

For details on transformation matrices and computation of scale and rotation parameters please see `vignette("transformation_matrices", package = "TriDimRegression")`

### Usage

``````## S3 method for class 'formula'
fit_transformation(
formula,
data,
transformation,
priors = NULL,
chains = 1,
cores = NULL,
...
)
``````

### Arguments

 `formula` a symbolic description of the model to be fitted in the format `Xdep + Ydep ~ Xind + Yind`, where `Xdep` and `Ydep` are dependent and `Xind` and `Yind` are independent variables `data` a data frame containing variables for the model. `transformation` the transformation to be used: `"translation"` (both 2D and 3D), `"euclidean"` (2D), `"euclidean_x"`, `"euclidean_y"`, `"euclidean_z"` (3D, rotation about, respectively, x, y, and z axis), `"affine"` (2D and 3D), or `"projective"` (2D and 3D). `priors` named list of parameters for prior distributions of parameters `a` (translation, normal distribution), `b` (all other parameters, normal distribution), and `sigma` (residual variance, exponential). E.g., `list("a" = c(0, 10), "b"= c(0, 1), "sigma"=1)`. Default priors are `"a" = c(0, max_absolute_difference_in_means(d, iv)) / 2)`, `"b" = c(0, max_absolute_difference_in_means(d, iv)) / 2)`, `"sigma" = 1 * sd(dv)`. `chains` Number of chains for sampling. `cores` Number of CPU cores to use for sampling. If omitted, all available cores are used. `...` Additional arguments passed to `sampling` function.

### Value

A tridim_transformation object

`fit_transformation_df`

### Examples

``````# Geometric transformations of 2D data
euc2 <- fit_transformation(depV1 + depV2 ~ indepV1 + indepV2,
aff2 <- fit_transformation(depV1 + depV2 ~ indepV1 + indepV2,