Package to calculate the bidimensional and tridimensional regression between two 2D/3D configurations.

From CRAN

`install.packages("TriDimRegression")`

From Github

```
library("devtools");
install_github("alexander-pastukhov/tridim-regression", dependencies=TRUE)
```

If you want vignettes, use

```
devtools::install_github("alexander-pastukhov/tridim-regression",
dependencies=TRUE,
build_vignettes = TRUE)
```

You can 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. The former call is

`euc2 <- fit_transformation(depV1 + depV2 ~ indepV1 + indepV2, NakayaData, 'euclidean')`

whereas the latter is

`euc3 <- fit_transformation_df(Face3D_W070, Face3D_W097, transformation ='translation')`

See also
`vignette("calibration", package="TriDimRegression")`

for an
example of using `TriDimRegression`

for 2D eye gaze data and
`vignette("comparing_faces", package="TriDimRegression")`

for
an example of working with 3D facial landmarks data.

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
how matrices are constructed, 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.

- Tobler, W. R. (1965). Computation of the corresponding of geographical patterns. Papers of the Regional Science Association, 15, 131-139.
- Tobler, W. R. (1966). Medieval distortions: Projections of ancient maps. Annals of the Association of American Geographers, 56(2), 351-360.
- Tobler, W. R. (1994). Bidimensional regression. Geographical Analysis, 26(3), 187-212.
- Friedman, A., & Kohler, B. (2003). Bidimensional regression: Assessing the configural similarity and accuracy of cognitive maps and other two-dimensional data sets. Psychological Methods, 8(4), 468-491.
- Nakaya, T. (1997). Statistical inferences in bidimensional regression models. Geographical Analysis, 29(2), 169-186.
- Waterman, S., & Gordon, D. (1984). A quantitative-comparative approach to analysis of distortion in mental maps. Professional Geographer, 36(3), 326-337.

All code is licensed under the GPL 3.0 license.