# TriDimRegression-package: The 'TriDimRegression' package. In TriDimRegression: Bayesian Statistics for 2D/3D Transformations

## Description

Fits 2D and 3D geometric transformations. Provides posterior via Stan. Includes computation of LOO and WAIC information criteria, R-squared.

To fit transformation, call the main function either via a formula that specifies dependent and independent variables with the `data` table or by supplying two tables one containing all independent variables and one containing all dependent variables.

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")`

Once the data is fitted, you can extract the transformation coefficients via `coef` function and the matrix itself via `transformation_matrix`. Predicted data, either based on the original data or on the new data, can be generated via `predict`. Bayesian R-squared can be computed with or without adjustment via `R2` function. In all three cases, you have choice between summary (mean + specified quantiles) or full posterior samples. `loo` and `waic` provide corresponding measures that can be used for comparison via `loo::loo_compare()` function.

## References

Stan Development Team (2020). RStan: the R interface to Stan. R package version 2.19.3. https://mc-stan.org

`fit_transformation` `fit_transformation_df` `tridim_transformation` `vignette("transformation_matrices", package = "TriDimRegression")` `vignette("calibration", package = "TriDimRegression")` `vignette("comparing_faces", package = "TriDimRegression")`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18``` ```# Fitting via formula euc2 <- fit_transformation(depV1 + depV2 ~ indepV1 + indepV2, NakayaData, 'euclidean') aff2 <- fit_transformation(depV1 + depV2 ~ indepV1 + indepV2, NakayaData, 'affine') prj2 <- fit_transformation(depV1 + depV2 ~ indepV1 + indepV2, NakayaData, 'projective') # summary of transformation coefficients coef(euc2) # statistical comparison via WAIC criterion loo::loo_compare(waic(euc2), waic(aff2), waic(prj2)) # Fitting via two tables euc2 <- fit_transformation_df(NakayaData[, 1:2], NakayaData[, 3:4], 'euclidean') tr3 <- fit_transformation_df(Face3D_W070, Face3D_W097, transformation ='translation') ```