## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 6, fig.height = 4 ) ## ----------------------------------------------------------------------------- library(CircularRegression) wrap_angle <- function(x) atan2(sin(x), cos(x)) set.seed(123) n <- 150 x1 <- runif(n, -pi, pi) x2 <- runif(n, -pi, pi) z2 <- runif(n, 0.2, 1.8) beta <- 0.35 mu <- atan2( sin(x1) + beta * z2 * sin(x2), cos(x1) + beta * z2 * cos(x2) ) y <- wrap_angle(mu + rnorm(n, sd = 0.12)) dat <- data.frame(y = y, x1 = x1, x2 = x2, z2 = z2) ## ----------------------------------------------------------------------------- fit <- circular_regression(y ~ x1 + x2:z2, data = dat) fit ## ----------------------------------------------------------------------------- coef(fit) head(fitted(fit)) head(residuals(fit)) head(predict(fit)) ## ----------------------------------------------------------------------------- new_dat <- dat[1:5, c("x1", "x2", "z2")] predict(fit, newdata = new_dat) ## ----------------------------------------------------------------------------- fit_hom <- angular( y ~ x1 + x2:z2, data = dat, reference = c("name", "x1") ) summary(fit_hom) ## ----------------------------------------------------------------------------- fit_cons <- consensus(y ~ x1 + x2:z2, data = dat) summary(fit_cons)