Spherical regression using rotationally symmetric distributions.
iag.reg(y, x, con = TRUE, xnew = NULL, tol = 1e-06)
vmf.reg(y, x, con = TRUE, xnew = NULL, tol = 1e-06)
sipc.reg(y, x, con = TRUE, xnew = NULL, tol = 1e-06)
A list including:
The log-likelihood of the regression model.
This is a measure of fit of the estimated values, defined as \(\sum_{i=1}^ny_i^T\hat{y}_i\). This appears if the argument "xnew" is NULL.
The beta coefficients.
The standard error of the beta coefficients.
The norm of the fitted values. In the von Mises-Fisher regression this is the concentration parameter of each observation. In the projected normal this are the norms of the fitted values before being projected onto the sphere. This is returned if the argument "xnew" is NULL.
The fitted values of xnew if "xnew" is NULL. If it is not NULL, the fitted values for the "xnew" you supplied will be returned.
A matrix with 3 columns containing the (unit vector) spherical data.
The predictor variable(s), they can be continnuous, spherical, categorical or a mix of them.
Do you want the constant term in the regression?
If you have new data use it, otherwise leave it NULL.
A tolerance value to decide when to stop the successive optimaizations.
Michail Tsagris.
R implementation and documentation: Michail Tsagris mtsagris@uoc.gr.
The second parametrization of the projected normal and of the von Mises-Fisher regression (Paine et al., 2020) is applied. The same is true for the SIPC distribution. For more information see the paper by Paine et al. (2020).
P. J. Paine, S. P. Preston, M. Tsagris and Andrew T. A. Wood (2020). Spherical regression models with general covariates and anisotropic errors. Statistics and Computing, 30(1): 153--165. https://link.springer.com/content/pdf/10.1007
Tsagris M. and Alzeley O. (2024). Circular and spherical projected Cauchy distributions: A Novel Framework for Circular and Directional Data Modeling. https://arxiv.org/pdf/2302.02468.pdf
esag.reg, vmfreg, spml.reg
y <- rvmf(150, rnorm(3), 5)
a1 <- iag.reg(y, iris[, 4])
a2 <- iag.reg(y, iris[, 4:5])
b1 <- vmf.reg(y, iris[, 4])
b2 <- vmf.reg(y, iris[, 4:5])
Run the code above in your browser using DataLab