| khetmeans {extremis} | R Documentation |
K-Means Clustering for Heteroscedastic Extremes
Description
This function performs k-means clustering for heteroscedastic extremes.
Usage
khetmeans(y, centers, iter.max = 10, alpha = 0.5)
Arguments
y |
data frame from which the estimate is to be computed; first column corresponds to time and the second to the remainder of interest. |
centers |
the number of clusters or a set of initial (distinct)
cluster centres. If a number, a random set of (distinct) rows in
|
iter.max |
the maximum number of iterations allowed. The default is 10. |
alpha |
the tuning parameter. The default is 0.5. |
Details
The intermediate sequence \kappa_T is chosen
proportional to T/\log T.
Value
khetmeans returns an object of class "khetmeans" which has a
fitted method. It is a list with at least the following components:
mus.new |
cluster center scedasis density. |
mugamma.new |
cluster center extreme value index. |
clusters |
cluster allocation. |
Y |
raw data. |
n.clust |
number of clusters. |
The plot method depicts the k-means clustering for
heteroscedastic extremes. If c.c is TRUE, the method
displays the cluster means.
Author(s)
Miguel de Carvalho, Rodrigo Rubio.
References
Rubio, R., de Carvalho, M. and Huser, R. (2018) Similarity-Based Clustering of Extreme Losses from the London Stock Exchange. Submitted.
Examples
## Not run:
## Example 1 (Scenario B, T = 5000)
## This example requires package evd
require(evd)
set.seed(12)
T <- 5000
n <- 30
b <- 0.1
gamma1 <- 0.7
gamma2 <- 1
grid <- seq(0, 1, length = 100)
c2 <- function(s)
dbeta(s, 2, 5)
c3 <- function(s)
dbeta(s, 5, 2)
X <- matrix(0, ncol = T, nrow = n)
for(i in 1:5)
for(j in 1:T)
X[i, j] <- rgev(1, c2(j / T), c2(j / T), gamma1)
for(i in 6:15)
for(j in 1:T)
X[i, j] <- rgev(1, c2(j / T), c2(j / T), gamma2)
for(i in 16:20)
for(j in 1:T)
X[i, j] <- rgev(1, c3(j / T), c3(j / T), gamma1)
for(i in 21:30)
for(j in 1:T)
X[i, j] <- rgev(1, c3(j / T), c3(j / T), gamma2)
Y <- t(X)
fit <- khetmeans(Y, centers = 4)
plot(fit, c.c = TRUE)
lines(grid, c2(grid), type = 'l', lwd = 8, col = 'black')
lines(grid, c3(grid), type = 'l', lwd = 8, col = 'black')
## End(Not run)
## Not run:
## Example 2 (Overlapping version of Fig. 5 in Supplementary Materials)
data(lse)
attach(lse)
y <- -apply(log(lse[, -1]), 2, diff)
fit <- khetmeans(y, centers = 3)
plot(fit, c.c = TRUE, ylim = c(0, 3))
## End(Not run)