TriDimRegression
Bayesian Statistics for 2D/3D Transformations
Fits 2D and 3D geometric transformations via 'Stan' probabilistic programming engine ( Stan Development Team (2021) <https://mc-stan.org>). Returns posterior distribution for individual parameters of the fitted distribution. Allows for computation of LOO and WAIC information criteria (Vehtari A, Gelman A, Gabry J (2017) <doi:10.1007/s11222-016-9696-4>) as well as Bayesian R-squared (Gelman A, Goodrich B, Gabry J, and Vehtari A (2018) <doi:10.1080/00031305.2018.1549100>).
README
# TriDimRegression
<!-- badges: start -->
[](https://zenodo.org/badge/latestdoi/139134694)
[](https://cran.r-project.org/package=TriDimRegression)
<!-- badges: end -->
Package to calculate the bidimensional and tridimensional regression between two 2D/3D configurations.
## Installation
From CRAN
```{r}
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)
```
## Using TriDimRegression
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.
## References
- 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.
## License
All code is licensed under the [GPL 3.0](https://opensource.org/license/gpl-3-0) license.
Versions across snapshots
| Version | Repository | File | Size |
|---|---|---|---|
1.0.3 |
rolling linux/jammy R-4.5 | TriDimRegression_1.0.3.tar.gz |
119.0 KiB |
1.0.3 |
rolling linux/noble R-4.5 | TriDimRegression_1.0.3.tar.gz |
119.0 KiB |
1.0.3 |
rolling source/ R- | TriDimRegression_1.0.3.tar.gz |
119.0 KiB |
1.0.3 |
latest linux/jammy R-4.5 | TriDimRegression_1.0.3.tar.gz |
119.0 KiB |
1.0.3 |
latest linux/noble R-4.5 | TriDimRegression_1.0.3.tar.gz |
119.0 KiB |
1.0.3 |
latest source/ R- | TriDimRegression_1.0.3.tar.gz |
119.0 KiB |
1.0.3 |
2026-04-26 source/ R- | TriDimRegression_1.0.3.tar.gz |
119.0 KiB |
1.0.3 |
2026-04-23 source/ R- | TriDimRegression_1.0.3.tar.gz |
119.0 KiB |
1.0.2 |
2025-04-20 source/ R- | TriDimRegression_1.0.2.tar.gz |
115.1 KiB |