# eigen.pda: Stability Analysis for Principle Differential Analysis In fda: Functional Data Analysis

 eigen.pda R Documentation

## Stability Analysis for Principle Differential Analysis

### Description

Performs a stability analysis of the result of `pda.fd`, returning the real and imaginary parts of the eigenfunctions associated with the linear differential operator.

### Usage

``````eigen.pda(pdaList,plotresult=TRUE,npts=501,...)
``````

### Arguments

 `pdaList` a list object returned by `pda.fd`. `plotresult` should the result be plotted? Default is TRUE `npts` number of points to use for plotting. `...` other arguments for 'plot'.

### Details

Conducts an eigen decomposition of the linear differential equation implied by the result of `pda.fd`. Imaginary eigenvalues indicate instantaneous oscillatory behavior. Positive real eigenvalues indicate exponential increase, negative real eigenvalues correspond to exponential decay. If the principle differential analysis also included the estimation of a forcing function, the limiting stable points are also tracked.

### Value

Returns a list with elements

 `argvals` The evaluation points of the coefficient functions. `eigvals` The corresponding eigenvalues at each time. `limvals` The stable points of the system at each time.

### References

Ramsay, James O., Hooker, Giles, and Graves, Spencer (2009), Functional data analysis with R and Matlab, Springer, New York.

Ramsay, James O., and Silverman, Bernard W. (2005), Functional Data Analysis, 2nd ed., Springer, New York.

Ramsay, James O., and Silverman, Bernard W. (2002), Applied Functional Data Analysis, Springer, New York.

`pda.fd` `plot.pda.fd` `pda.overlay`

### Examples

``````
#  A pda analysis of the handwriting data

# reduce the size to reduce the compute time for the example
ni <- 281
indx <- seq(1, 1401, length=ni)
fdaarray = handwrit[indx,,]
fdatime  <- seq(0, 2.3, len=ni)

#  basis for coordinates

fdarange <- c(0, 2.3)
breaks = seq(0,2.3,length.out=116)
norder = 6
fdabasis = create.bspline.basis(fdarange,norder=norder,breaks=breaks)
nbasis <- fdabasis\$nbasis

#  parameter object for coordinates

fdaPar = fdPar(fd(matrix(0,nbasis,1),fdabasis),int2Lfd(4),1e-8)

#  coordinate functions and a list tontaining them

Xfd = smooth.basis(fdatime, fdaarray[,,1], fdaPar)\$fd
Yfd = smooth.basis(fdatime, fdaarray[,,2], fdaPar)\$fd

xfdlist = list(Xfd, Yfd)

#  basis and parameter object for weight functions

fdabasis2 = create.bspline.basis(fdarange,norder=norder,nbasis=31)
fdafd2    = fd(matrix(0,31,2),fdabasis2)
pdaPar    = fdPar(fdafd2,1,1e-8)

pdaParlist = list(pdaPar, pdaPar)

bwtlist = list( list(pdaParlist,pdaParlist), list(pdaParlist,pdaParlist) )

``````

fda documentation built on May 29, 2024, 11:26 a.m.