# knn.reg: k-NN regression with Euclidean or (hyper-)spherical response... In Directional: A Collection of Functions for Directional Data Analysis

## Description

k-NN regression with Euclidean or (hyper-)spherical response and or predictor variables.

## Usage

 `1` ```knn.reg(xnew, y, x, k = 5, res = "eucl", estim = "arithmetic") ```

## Arguments

 `xnew` The new data, new predictor variables values. A matrix with either euclidean (univariate or multivariate) or (hyper-)spherical data. If you have a circular response, say u, transform it to a unit vector via (cos(u), sin(u)). If xnew = x, you will get the fitted values. `y` The currently available data, the response variables values. A matrix with either euclidean (univariate or multivariate) or (hyper-)spherical data. If you have a circular response, say u, transform it to a unit vector via (cos(u), sin(u)). `x` The currently available data, the predictor variables values. A matrix with either euclidean (univariate or multivariate) or (hyper-)spherical data. If you have a circular response, say u, transform it to a unit vector via (cos(u), sin(u)). `k` The number of nearest neighbours, set to 5 by default. This can also be a vector with many values. `res` The type of the response variable. If it is Euclidean, set this argument equal to "res". If it is a unit vector set it to res="spher". `estim` Once the k observations whith the smallest distance are discovered, what should the prediction be? The arithmetic average of the corresponding y values be used estim="arithmetic" or their harmonic average estim="harmonic".

## Details

This function covers a broad range of data, Euclidean and spherical, along with their combinations.

## Value

A list with as many elements as the number of values of k. Each element in the list contains a matrix (or a vector in the case of Euclidean data) with the predicted response values.

## Author(s)

Michail Tsagris

R implementation and documentation: Michail Tsagris mtsagris@uoc.gr and Giorgos Athineou <gioathineou@gmail.com>

```knnreg.tune, spher.reg, spml.reg ```

## Examples

 ```1 2 3 4 5 6 7 8 9``` ```y <- iris[, 1] x <- as.matrix(iris[, 2:4]) x <- x/ sqrt( rowSums(x^2) ) ## Euclidean response a <- knn.reg(x, y, x, k = 5, res = "eucl", estim = "arithmetic") y <- iris[, 2:4] y <- y / sqrt( rowSums(y^2) ) ## Spherical response x <- iris[, 1] a <- knn.reg(x, y, x, k = 5, res = "spher", estim = "arithmetic") ```

### Example output

```sh: 1: wc: Permission denied
Warning messages:
1: In rgl.init(initValue, onlyNULL) : RGL: unable to open X11 display
2: 'rgl.init' failed, running with 'rgl.useNULL = TRUE'.
```

Directional documentation built on Nov. 8, 2021, 1:07 a.m.