Once the funts object (see the Functional Singular Spectrum Analysis: Functional Time Series Objects and Visualization webpage for more information) is created and an appropriate value for the lag parameter, L, is chosen, we perform the FSSA routine. The following code executes the FSSA algorithm on the call center funts. We note that the lag for the call center data was selected to capture the seven days a week periodic nature of the data (weekdays vs. weekends).
## Call center data ##
U_C = fssa(Y = Y_C, L = 28)
The object obtained from the decomposition process is of class fssa and contains the signal extraction results including the singular values, left singular functions, and right singular vectors. The user can leverage the plotting method for objects of class fssa to infer which modes of variation are captured by which eigentriples and how to perform grouping where an eigentriple is defined as the set that contains a singular value, associated left singular function, and associated right singular vector. Oftentimes, eigentriples capture some sort of mean, periodic, trend, or noise behaviors. The following code plots the results of the decomposition process applied to the call center funts.
## Call center data ##
plot(U_C, d = 13, type = "values", main = "Singular Values for Call Center")
plot(U_C, d = 9, type = "lheats", main = "Singular Functions (between days) for Call Center")
plot(U_C, d = 9, type = "lcurves", main = "Singular Functions (within days) for Call Center")
plot(U_C, d = 9, type = "vectors", main = "Singular Vectors for Call Center")
plot(U_C, d = 9, type = "periodogram", main = "Periodogram for Call Center")
plot(U_C, d = 9, type = "paired", main = "Paired Plot for Call Center")
plot(U_C, d = 13, type = "wcor", main = "W-Correlation for Call Center")
The plot of the singular values (type = “values”) quantifies how much variation is captured by each eigentriple and the plot is often used for grouping. The plot of the left singular functions comes in two types (type = “lcurves” or type = “lheats”) and the plots are often used to determine which eigentriple captures which mode of variation. The type = “lcurves” is only defined for plotting left singular functions that correspond with FTS variables observed over a one-dimensional domain while the type = “lheats” option is defined for FTS variables observed over both one and two-dimensional domains. The plot of the right singular vectors (type = “vectors”) are also used to determine which eigentriple captures which mode of variation. The periodogram (type = “periodogram”) is used to determine the types of periodicities that an eigentriple captures which may also be used to reselect the lag parameter. The paired plot option (type = “paired”) plots the right singular vectors against one another and can be used to determine if two eigentriples capture a similar type of periodicity and if they should be grouped together. Finally, the weighted correlation (w-correlation) plot (type = “wcor”) is a plot of the w-correlation matrix and is often used for grouping eigentriples.
If we consider the call center data example, the plots suggest that the first eigentriple describes some sort of mean behavior and should be grouped by itself. In addition, eigentriples two through seven describe weekly periodic nature in the data and the grouping suggested is two with three, four with five, and six with seven.
In the following, we apply the FSSA routine to the multivariate FTS formed from the Montana dataset and the lag is again chosen to capture the annual seasonality that is present in the data.
## NDVI images and intraday temperature curves from Saint Mary, Montana, USA ##
U_M = fssa(Y = Y_M, L = 45)
Now we plot the results of the decomposition in the following.
## NDVI images and intraday temperature curves from Saint Mary, Montana, USA ##
plot(U_M, d = 13, type = "values", main = "Singular Values for St. Mary, Montana Data")
plot(U_M, d = 6, type = "lheats", vars = 1)
plot(U_M, d = 6, type = "lcurves", vars = 1)
plot(U_M, d = 6, type = "lheats", vars = 2)
plot(U_M, d = 6, type = "vectors", main = "Singular Vectors for St. Mary, Montana Data")
plot(U_M, d = 6, type = "periodogram", main = "Periodogram for St. Mary, Montana Data")
plot(U_M, d = 6, type = "paired", main = "Paired Plot for St. Mary, Montana Data")
plot(U_M, d = 13, type = "wcor", main = "W-Correlation for St. Mary, Montana Data")
For the Montana FTS, we see that the first eigentriple captures a mean behavior and annual seasonality is captured in eigentriples two through five. As according to the exploratory plots, a good suggestion for grouping is one by itself, two with three, and four with five.