Langevin1D: Calculate the Drift and Diffusion of one-dimensional...

Description Usage Arguments Value Author(s) See Also Examples

View source: R/Langevin1D.r

Description

Langevin1D calculates the Drift and Diffusion vectors (with errors) for a given time series.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
Langevin1D(
  data,
  bins,
  steps,
  sf = ifelse(is.ts(data), frequency(data), 1),
  bin_min = 100,
  reqThreads = -1,
  kernel = FALSE,
  h
)

Arguments

data

a vector containing the time series or a time-series object.

bins

a scalar denoting the number of bins to calculate the conditional moments on.

steps

a vector giving the τ steps to calculate the conditional moments (in samples (=τ * sf)). Only used if kernel is FALSE.

sf

a scalar denoting the sampling frequency (optional if data is a time-series object).

bin_min

a scalar denoting the minimal number of events per bin. Defaults to 100.

reqThreads

a scalar denoting how many threads to use. Defaults to -1 which means all available cores. Only used if kernel is FALSE.

kernel

a logical denoting if the kernel based Nadaraya-Watson estimator should be used to calculate drift and diffusion vectors.

h

a scalar denoting the bandwidth of the data. Defaults to Scott's variation of Silverman's rule of thumb. Only used if kernel is TRUE.

Value

Langevin1D returns a list with thirteen (six if kernel is TRUE) components:

D1

a vector of the Drift coefficient for each bin.

eD1

a vector of the error of the Drift coefficient for each bin.

D2

a vector of the Diffusion coefficient for each bin.

eD2

a vector of the error of the Diffusion coefficient for each bin.

D4

a vector of the fourth Kramers-Moyal coefficient for each bin.

mean_bin

a vector of the mean value per bin.

density

a vector of the number of events per bin. If kernel is FALSE.

M1

a matrix of the first conditional moment for each τ. Rows correspond to bin, columns to τ. If kernel is FALSE.

eM1

a matrix of the error of the first conditional moment for each τ. Rows correspond to bin, columns to τ. If kernel is FALSE.

M2

a matrix of the second conditional moment for each τ. Rows correspond to bin, columns to τ. If kernel is FALSE.

eM2

a matrix of the error of the second conditional moment for each τ. Rows correspond to bin, columns to τ. If kernel is FALSE.

M4

a matrix of the fourth conditional moment for each τ. Rows correspond to bin, columns to τ. If kernel is FALSE.

U

a vector of the bin borders. If kernel is FALSE.

Author(s)

Philip Rinn

See Also

Langevin2D

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Set number of bins, steps and the sampling frequency
bins <- 20
steps <- c(1:5)
sf <- 1000

#### Linear drift, constant diffusion

# Generate a time series with linear D^1 = -x and constant D^2 = 1
x <- timeseries1D(N = 1e6, d11 = -1, d20 = 1, sf = sf)
# Do the analysis
est <- Langevin1D(data = x, bins = bins, steps = steps, sf = sf)
# Plot the result and add the theoretical expectation as red line
plot(est$mean_bin, est$D1)
lines(est$mean_bin, -est$mean_bin, col = "red")
plot(est$mean_bin, est$D2)
abline(h = 1, col = "red")

#### Cubic drift, constant diffusion

# Generate a time series with cubic D^1 = x - x^3 and constant D^2 = 1
x <- timeseries1D(N = 1e6, d13 = -1, d11 = 1, d20 = 1, sf = sf)
# Do the analysis
est <- Langevin1D(data = x, bins = bins, steps = steps, sf = sf)
# Plot the result and add the theoretical expectation as red line
plot(est$mean_bin, est$D1)
lines(est$mean_bin, est$mean_bin - est$mean_bin^3, col = "red")
plot(est$mean_bin, est$D2)
abline(h = 1, col = "red")

Langevin documentation built on Oct. 19, 2021, 5:06 p.m.