The Minkowski distance between two vectors, A and B, is calculated as:
(Σ|ai – bi|p)1/p
where i is the ith element in each vector and p is an integer.
This distance is used to measure the dissimilarity between any two vectors and is commonly used in many different machine learning algorithms.
To calculate the Minkowski distance between vectors in R, we can use the built-in dist() function with the following syntax:
dist(x, method=”minkowski”, p)
where:
- x: A numeric matrix or data frame.
- p: The power to use in the Minkowski distance calculation.
Note that setting p = 1 is equivalent to calculating the Manhattan distance and setting p = 2 is equivalent to calculating the Euclidean distance.
This tutorial provides a couple examples of how to use this function in practice.
Example 1: Minkowski Distance Between Two Vectors
The following code shows how to use the dist() function to calculate the Minkowski distance between two vectors in R, using a power of p = 3:
#define two vectors a <- c(2, 4, 4, 6) b <- c(5, 5, 7, 8) #bind the two vectors into a single matrix mat <- rbind(a, b) #calculate Minkowski distance between vectors using a power of 3 dist(mat, method="minkowski", p=3) a b 3.979057
The Minkowski distance (using a power of p = 3) between these two vectors turns out to be 3.979057.
Example 2: Minkowski Distance Between Vectors in a Matrix
To calculate the Minkowski distance between several vectors in a matrix, we can use similar syntax in R:
#create four vectors a <- c(2, 4, 4, 6) b <- c(5, 5, 7, 8) c <- c(9, 9, 9, 8) d <- c(1, 2, 3, 3) #bind vectors into one matrix mat <- rbind(a, b, c, d) #calculate Minkowski distance between vectors using a power of 3 dist(mat, method = "minkowski", p=3) a b c b 3.979057 c 8.439010 5.142563 d 3.332222 6.542133 10.614765
The way to interpret this output is as follows:
- The Minkowski distance between vector a and b is 3.98.
- The Minkowski distance between vector a and c is 8.43.
- The Minkowski distance between vector a and d is 3.33.
- The Minkowski distance between vector b and c is 5.14.
- The Minkowski distance between vector b and d is 6.54.
- The Minkowski distance between vector c and d is 10.61.
Note that each vector in the matrix should be the same length.
Additional Resources
How to Calculate Euclidean Distance in R
How to Calculate Hamming Distance in R
How to Calculate Manhattan Distance in R
How to Calculate Mahalanobis Distance in R