fExtremes/ 0000755 0001762 0000144 00000000000 13203520003 012200 5 ustar ligges users fExtremes/inst/ 0000755 0001762 0000144 00000000000 13203504345 013170 5 ustar ligges users fExtremes/inst/COPYRIGHT.html 0000644 0001762 0000144 00000020411 11645005146 015427 0 ustar ligges users
Rmetrics::COPYRIGHT
Rmetrics
Copyrights
2005-12-18 Built 221.10065
________________________________________________________________________________
Copyrights (C) for
R:
see R's copyright and license file
Version R 2.0.0 claims:
- The stub packages from 1.9.x have been removed.
- All the datasets formerly in packages 'base' and 'stats' have
been moved to a new package 'datasets'.
- Package 'graphics' has been split into 'grDevices' (the graphics
devices shared between base and grid graphics) and 'graphics'
(base graphics).
- Packages must have been re-installed for this version, and
library() will enforce this.
- Package names must now be given exactly in library() and
require(), regardless of whether the underlying file system is
case-sensitive or not.
________________________________________________________________________________
for
Rmetrics:
(C) 1999-2005, Diethelm Wuertz, GPL
Diethelm Wuertz
www.rmetrics.org
info@rmetrics.org
________________________________________________________________________________
for non default loaded basic packages part of R's basic distribution
MASS:
Main Package of Venables and Ripley's MASS.
We assume that MASS is available.
Package 'lqs' has been returned to 'MASS'.
S original by Venables & Ripley.
R port by Brian Ripley .
Earlier work by Kurt Hornik and Albrecht Gebhardt.
methods:
Formally defined methods and classes for R objects, plus other
programming tools, as described in the reference "Programming
with Data" (1998), John M. Chambers, Springer NY.
R Development Core Team.
mgcv:
Routines for GAMs and other generalized ridge regression
with multiple smoothing parameter selection by GCV or UBRE.
Also GAMMs by REML or PQL. Includes a gam() function.
Simon Wood
nnet:
Feed-forward Neural Networks and Multinomial Log-Linear Models
Original by Venables & Ripley.
R port by Brian Ripley .
Earlier work by Kurt Hornik and Albrecht Gebhardt.
________________________________________________________________________________
for the code partly included as builtin functions from other R ports:
fBasics:CDHSC.F
GRASS program for distributional testing.
By James Darrell McCauley
Original Fortran Source by Paul Johnson EZ006244@ALCOR.UCDAVIS.EDU>
fBasics:nortest
Five omnibus tests for the composite hypothesis of normality
R-port by Juergen Gross
fBasics:SYMSTB.F
Fast numerical approximation to the Symmetric Stable distribution
and density functions.
By Hu McCulloch
fBasics:tseries
Functions for time series analysis and computational finance.
Compiled by Adrian Trapletti
fCalendar:date
The tiny C program from Terry Therneau is used
R port by Th. Lumley ,
K. Halvorsen , and
Kurt Hornik
fCalendar:holidays
The holiday information was collected from the internet and
governmental sources obtained from a few dozens of websites
fCalendar:libical
Libical is an Open Source implementation of the IETF's
iCalendar Calendaring and Scheduling protocols. (RFC 2445, 2446,
and 2447). It parses iCal components and provides a C API for
manipulating the component properties, parameters, and subcomponents.
fCalendar:vtimezone
Olsen's VTIMEZONE database consists of data files are released under
the GNU General Public License, in keeping with the license options of
libical.
fSeries:bdstest.c
C Program to compute the BDS Test.
Blake LeBaron
fSeries:fracdiff
R functions, help pages and the Fortran Code for the 'fracdiff'
function are included.
S original by Chris Fraley
R-port by Fritz Leisch
since 2003-12: Martin Maechler
fSeries:lmtest
R functions and help pages for the linear modelling tests are included .
Compiled by Torsten Hothorn ,
Achim Zeileis , and
David Mitchell
fSeries:mda
R functions, help pages and the Fortran Code for the 'mars' function
are implemeted.
S original by Trevor Hastie & Robert Tibshirani,
R port by Friedrich Leisch, Kurt Hornik and Brian D. Ripley
fSeries:modreg
Brian Ripley and the R Core Team
fSeries:polspline
R functions, help pages and the C/Fortran Code for the 'polymars'
function are implemented
Charles Kooperberg
fSeries:systemfit
Simultaneous Equation Estimation Package.
R port by Jeff D. Hamann and
Arne Henningsen
fSeries:tseries
Functions for time series analysis and computational finance.
Compiled by Adrian Trapletti
fSeries:UnitrootDistribution:
The program uses the Fortran routine and the tables
from J.G. McKinnon.
fSeries:urca
Unit root and cointegration tests for time series data.
R port by Bernhard Pfaff .
fExtremes:evd
Functions for extreme value distributions.
R port by Alec Stephenson
Function 'fbvpot' by Chris Ferro.
fExtremes:evir
Extreme Values in R
Original S functions (EVIS) by Alexander McNeil
R port by Alec Stephenson
fExtremes:ismev
An Introduction to Statistical Modeling of Extreme Values
Original S functions by Stuart Coles
R port/documentation by Alec Stephenson
fOptions
Option Pricing formulas are implemented along the book and
the Excel spreadsheets of E.G. Haug, "The Complete Guide to Option
Pricing"; documentation is partly taken from www.derivicom.com which
implements a C Library based on Haug. For non-academic and commercial
use we recommend the professional software from "www.derivicom.com".
fOptions:SOBOL.F
ACM Algorithm 659 by P. Bratley and B.L. Fox
Extension on Algorithm 659 by S. Joe and F.Y. Kuo
fOptions:CGAMA.F
Complex gamma and related functions.
Fortran routines by Jianming Jin.
fOptions:CONHYP.F
Confluenet Hypergeometric and related functions.
ACM Algorithm 707 by mark Nardin, W.F. Perger, A. Bhalla
fPortfolio:mvtnorm
Multivariate Normal and T Distribution.
Alan Genz ,
Frank Bretz
R port by Torsten Hothorn
fPortfolio:quadprog
Functions to solve Quadratic Programming Problems.
S original by Berwin A. Turlach
R port by Andreas Weingessel
fPortfolio:sn
The skew-normal and skew-t distributions.
R port by Adelchi Azzalini
fPortfolio:tseries
Functions for time series analysis and computational finance.
Compiled by Adrian Trapletti
fExtremes/inst/unitTests/ 0000755 0001762 0000144 00000000000 13201353165 015172 5 ustar ligges users fExtremes/inst/unitTests/Makefile 0000644 0001762 0000144 00000000422 13203504345 016630 0 ustar ligges users PKG=fExtremes
TOP=../..
SUITE=doRUnit.R
R=R
all: inst test
inst: # Install package -- but where ?? -- will that be in R_LIBS ?
cd ${TOP}/..;\
${R} CMD INSTALL ${PKG}
test: # Run unit tests
export RCMDCHECK=FALSE;\
cd ${TOP}/tests;\
${R} --vanilla --slave < ${SUITE}
fExtremes/inst/unitTests/runit.GevMdaEstimation.R 0000644 0001762 0000144 00000005611 11645005146 021663 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
# Copyrights (C)
# for this R-port:
# 1999 - 2007, Diethelm Wuertz, GPL
# Diethelm Wuertz
# info@rmetrics.org
# www.rmetrics.org
# for the code accessed (or partly included) from other R-ports:
# see R's copyright and license files
# for the code accessed (or partly included) from contributed R-ports
# and other sources
# see Rmetrics's copyright file
################################################################################
# FUNCTION: MDA ESTIMATORS:
# hillPlot Plot Hill's estimator
# shaparmPlot Pickands, Hill & Decker-Einmahl-deHaan Estimator
# shaparmPickands Auxiliary function called by shaparmPlot
# shaparmHill ... called by shaparmPlot
# shaparmDehaan ... called by shaparmPlot
################################################################################
test.hillPlot =
function()
{
# hillPlot Plot Hill's estimator
# Graph Frame:
par(mfrow = c(2, 2), cex = 0.7)
par(ask = FALSE)
# Hill Plot:
hillPlot(gevSim(n=1000), plottype = "alpha")
hillPlot(gevSim(n=1000), plottype = "xi"); grid()
# Don't Plot Return Value:
hillPlot(gevSim(n=1000), plottype = "alpha", doplot = FALSE)
hillPlot(gevSim(n=1000), plottype = "xi", doplot = FALSE); grid()
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.shaparmPlot =
function()
{
# shaparmPlot Pickands, Hill & Decker-Einmahl-deHaan Estimator
# Graph Frame:
par(mfrow = c(2, 2), cex = 0.7)
par(ask = FALSE)
# shaparmPlot(x, p = 0.01*(1:10), xiRange = NULL, alphaRange = NULL,
# doplot = TRUE, plottype = c("both", "upper"))
# Graph Frame:
par(mfcol = c(3, 2), cex = 0.7)
par(ask = FALSE)
shaparmPlot(as.timeSeries(data(bmwRet)))
# Print (Results:
shaparmPlot(as.timeSeries(data(bmwRet)), doplot = FALSE)
# Tailored p:
shaparmPlot(as.timeSeries(data(bmwRet)), p = 0.005*(2:20))
# Return Value:
return()
}
################################################################################
fExtremes/inst/unitTests/runit.ExtremeIndex.R 0000644 0001762 0000144 00000011153 11645005146 021062 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
# Copyrights (C)
# for this R-port:
# 1999 - 2004, Diethelm Wuertz, GPL
# Diethelm Wuertz
# info@rmetrics.org
# www.rmetrics.org
# for the code accessed (or partly included) from other R-ports:
# see R's copyright and license files
# for the code accessed (or partly included) from contributed R-ports
# and other sources
# see Rmetrics's copyright file
################################################################################
# FUNCTION: DESCRIPTION:
# 'fTHETA' Class representation for extremal index
# show.fTHETA S4: Print Method for extremal index
# thetaSim Simulates a time series with known theta
# FUNCTION: DESCRIPTION:
# blockTheta Computes theta from Block Method
# clusterTheta Computes theta from Reciprocal Cluster Method
# runTheta Computes theta from Run Method
# ferrosegersTheta Computes Theta according to Ferro and Seegers
# FUNCTION: DESCRIPTION:
# exindexesPlot Computes and Plot Theta(1,2,3)
# exindexPlot Computes Theta(1,2) and Plot Theta(1)
################################################################################
test.fTHETA =
function()
{
# Slot Names:
slotNames("fTHETA")
# [1] "call" "data" "theta" "title" "description"
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.thetaSim =
function()
{
# Simulation:
# thetaSim(model = c("max", "pair"), n = 100, theta = 0.5)
# Max Frechet Series:
x = thetaSim("max")
class(x)
print(x)
# Paired Exponential Series:
x = thetaSim("pair")
class(x)
print(x)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.thetaFit =
function()
{
# Parameter Estimation:
x.ts = thetaSim("max", n=22000)
class(x.ts)
# Parameter Estimation:
# blockTheta(x, block = 22, quantiles = seq(0.95, 0.995, length = 10),
# title = NULL, description = NULL)
# clusterTheta(x, block = 22, quantiles = seq(0.95, 0.995, length = 10),
# title = NULL, description = NULL)
# runTheta(x, block = 22, quantiles = seq(0.95, 0.995, length = 10),
# title = NULL, description = NULL)
# ferrosegersTheta(x, quantiles = seq(0.95, 0.995, length = 10),
# title = NULL, description = NULL)
# time series ts as input:
blockTheta(x.ts)
clusterTheta(x.ts)
runTheta(x.ts)
ferrosegersTheta(x.ts)
# Numeric Vector as input:
x.vec = as.vector(x.ts)
blockTheta(x.vec)
clusterTheta(x.vec)
runTheta(x.vec)
ferrosegersTheta(x.vec)
# timeSeries object as input:
x.tS = as.timeSeries(x.ts)
blockTheta(x.tS)
clusterTheta(x.tS)
runTheta(x.tS)
ferrosegersTheta(x.tS)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.exindexesPlot =
function()
{
# Graphics Frame:
par(mfrow = c(2, 2), cex = 0.7)
par(ask = FALSE)
# Parameter Estimation:
x = thetaSim("max", n = 22000)
exindexesPlot(x)
# Parameter Estimation:
y = thetaSim("pair", n = 22000)
exindexesPlot(y)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.exindexPlot =
function()
{
# Graphics Frame:
par(mfrow = c(2, 2), cex = 0.7)
par(ask = FALSE)
# Parameter Estimation:
x = thetaSim("max", n=22000)
exindexPlot(x, block = 22)
# Parameter Estimation:
y = thetaSim("pair", n=22000)
exindexPlot(y, block = 22)
# Return Value:
return()
}
################################################################################
fExtremes/inst/unitTests/runit.GpdModelling.R 0000644 0001762 0000144 00000010772 11645005146 021034 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
# Copyrights (C)
# for this R-port:
# 1999 - 2007, Diethelm Wuertz, GPL
# Diethelm Wuertz
# info@rmetrics.org
# www.rmetrics.org
# for the code accessed (or partly included) from other R-ports:
# see R's copyright and license files
# for the code accessed (or partly included) from contributed R-ports
# and other sources
# see Rmetrics's copyright file
# ##############################################################################
# FUNCTION: GPD SIMULATION:
# gpdSim Simulates a GPD distributed process
# FUNCTION: GPD PARAMETER ESTIMATION:
# 'fGPDFIT' S4 class representation
# gpdFit Fits Parameters of GPD distribution
# METHODS: PRINT, PLOT, AND SUMMARY:
# show.fGPDFIT S4 Print Method for object of class "fGPDFIT"
# plot.fGPDFIT S3 Plot Method for object of class "fGPDFIT"
# summary.fGPDFIT S3 Summary Method for object of class "fGPDFIT"
################################################################################
test.gpdSim =
function()
{
# Generate Artificial Data Set:
x = gpdSim(model = list(xi = 0.25, mu = 0, beta = 1), n = 1000, seed = 4711)
class(x)
# Plot Series:
par(mfrow = c(2, 1), cex = 0.7)
par(ask = FALSE)
seriesPlot(as.timeSeries(x))
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.fGPDFIT =
function()
{
# Slot names:
slotNames("fGPDFIT")
# [1] "call" "method" "parameter" "data" "fit"
# [6] "residuals" "title" "description"
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.gpdFit =
function()
{
# Generate Artificial Data Set:
model = list(xi = -0.25, mu = 0, beta = 1)
ts = gpdSim(model = model, n = 5000, seed = 4711)
class(ts)
# Transform As timeSeries:
tS = as.timeSeries(ts)
class(tS)
# As numeric vector:
x = as.vector(ts)
class(x)
# GPD Fit:
# gpdFit(x, u = quantile(x, 0.95), type = c("mle", "pwm"),
# information = c("observed", "expected"), title = NULL,
# description = NULL, ...)
# PWM Fit:
fit = gpdFit(tS, u = min(series(tS)), "pwm")
print(fit)
fit = gpdFit(ts, u = min(ts), "pwm")
print(fit)
fit = gpdFit(x, u = min(x), "pwm")
print(fit)
# MLE Fit:
fit = gpdFit(tS, u = min(series(tS)), "mle")
print(fit)
fit = gpdFit(ts, u = min(ts), "mle")
print(fit)
fit = gpdFit(x, u = min(x), "mle")
print(fit)
# Information:
fit = gpdFit(tS, u = min(series(tS)), type = "mle", information = "observed")
print(fit)
fit = gpdFit(tS, u = min(series(tS)), type = "mle", information = "expected")
print(fit)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.plot =
function()
{
# Artificial Data Set:
model = list(xi = -0.25, mu = 0, beta = 1)
ts = gpdSim(model = model, n = 5000, seed = 4711)
class(ts)
# Fit:
fit = gpdFit(ts, u = min(ts), type = "mle")
print(fit)
par(mfrow = c(2, 2), cex = 0.7)
par(ask = FALSE)
plot(fit, which = "all")
# Try:
# plot(fit, which = "ask")
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.summary =
function()
{
# Artificial Data Set:
model = list(xi = -0.25, mu = 0, beta = 1)
ts = gpdSim(model = model, n = 5000, seed = 4711)
class(ts)
# Fit:
fit = gpdFit(ts, u = min(ts), type = "mle")
summary(fit, doplot = FALSE)
# Return Value:
return()
}
################################################################################
fExtremes/inst/unitTests/runit.GpdDistribution.R 0000644 0001762 0000144 00000006024 11645005146 021574 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
# Copyrights (C)
# for this R-port:
# 1999 - 2007, Diethelm Wuertz, GPL
# Diethelm Wuertz
# info@rmetrics.org
# www.rmetrics.org
# for the code accessed (or partly included) from other R-ports:
# see R's copyright and license files
# for the code accessed (or partly included) from contributed R-ports
# and other sources
# see Rmetrics's copyright file
################################################################################
# FUNCTION: GPD DISTRIBUTION FAMILY:
# dgpd Density for the Generalized Pareto DF [USE FROM EVIS]
# pgpd Probability for the Generalized Pareto DF
# qgpd Quantiles for the Generalized Pareto DF
# rgpd Random variates for the Generalized Pareto DF
# gpdMoments Computes true statistics for GPD distribution
# gpdSlider Displays distribution and rvs for GPD distribution
################################################################################
test.gpd =
function()
{
# Check Distribution:
set.seed(1985)
.distCheck(fun = "gpd", n = 500, xi = 1, mu = 0, beta = 1)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.gpdMoments =
function()
{
# gpdMoments(xi = 1, mu = 0, beta = 1)
# Compute Moments:
xi = seq(-2, 2, length = 401)
mom = gpdMoments(xi)
# Plot Mean:
par(mfrow = c(2, 1), cex = 0.7)
par(ask = FALSE)
plot(xi, mom$mean, main = "Mean", pch = 19, cex = 0.5)
abline(v = 1, col = "red", lty = 3)
abline(h = 0, col = "red", lty = 3)
# Plot Variance:
plot(xi, log(mom$var), main = "log Variance", pch = 19, cex = 0.5)
abline(v = 1/2, col = "red", lty = 3)
abline(h = 0.0, col = "red", lty = 3)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.gpdSlider =
function()
{
# Distribution Slider:
# print("Activate Slider manually!")
# gpdSlider(method = "dist")
# Random Variates Slider:
# print("Activate Slider manually!")
# gpdSlider(method = "rvs")
NA
# Return Value:
return()
}
################################################################################
fExtremes/inst/unitTests/runit.GevRisk.R 0000644 0001762 0000144 00000003702 11645005146 020034 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
# Copyrights (C)
# for this R-port:
# 1999 - 2007, Diethelm Wuertz, GPL
# Diethelm Wuertz
# info@rmetrics.org
# www.rmetrics.org
# for the code accessed (or partly included) from other R-ports:
# see R's copyright and license files
# for the code accessed (or partly included) from contributed R-ports
# and other sources
# see Rmetrics's copyright file
################################################################################
# FUNCTION: ADDITIONAL FUNCTIONS:
# gevrlevelPlot Calculates Return Levels Based on GEV Fit
# .gevrlevelLLH Computes log-likelihood function for gevrlevelPlot
################################################################################
test.returnLevel =
function()
{
# gevrlevelPlot(object, kBlocks = 20, ci = c(0.90, 0.95, 0.99),
# plottype = c("plot", "add"), labels = TRUE,...)
# Artificial Data Set:
model = list(xi = -0.25, mu = 0, beta = 1)
x = gevSim(model = model, n = 1000, seed = 4711)
class(x)
# Empirical distribution plot:
fit = gevFit(x)
gevrlevelPlot(fit)
# Return Value:
return()
}
################################################################################
fExtremes/inst/unitTests/runit.DataPreprocessing.R 0000644 0001762 0000144 00000011164 11645005146 022100 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
# Copyrights (C)
# for this R-port:
# 1999 - 2007, Diethelm Wuertz, GPL
# Diethelm Wuertz
# info@rmetrics.org
# www.rmetrics.org
# for the code accessed (or partly included) from other R-ports:
# see R's copyright and license files
# for the code accessed (or partly included) from contributed R-ports
# and other sources
# see Rmetrics's copyright file
################################################################################
# FUNCTION DATA PREPROCESSING:
# blockMaxima Returns block maxima from a time series
# findThreshold Upper threshold for a given number of extremes
# pointProcess Returns peaks over a threshold from a time series
# deCluster Declusters a point process
################################################################################
test.blockMaxima =
function()
{
# blockMaxima - Returns block maxima from a time series
# blockMaxima(x, block = c("monthly", "quarterly"), doplot = FALSE)
# Time Series Data:
x = MSFT[, "Close"]
x.ret = 100*returns(x)
head(x.ret)
class(x.ret)
# Monthly Block Maxima:
ans = blockMaxima(x.ret, block = "monthly", doplot = TRUE)
print(ans)
# Quarterly Block Maxima:
ans = blockMaxima(x.ret, block = "q", doplot = TRUE)
print(ans)
# 20-Days Block Maxima:
ans = blockMaxima(x.ret, block = 20, doplot = TRUE)
print(ans)
# Numerical Data Vector:
x.ret = as.vector(x.ret)
head(x.ret)
ans = blockMaxima(x.ret, block = 20, doplot = TRUE)
print(ans)
# Stops by stopifnot() - Check:
# blockMaxima(x.ret, block = "month", doplot = TRUE)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.findThreshold =
function()
{
# findThreshold - Upper threshold for a given number of extremes
# findThreshold(x, n = floor(0.05*length(as.vector(x))), doplot = FALSE)
# Time Series Data:
x = MSFT[, "Close"]
x.ret = 100*returns(x)
head(x.ret)
class(x.ret)
# Find 99% Threshold:
par(mfrow = c(2, 2), cex = 0.7)
par(ask = FALSE)
findThreshold(x.ret, n = floor(0.01*length(as.vector(x))), doplot = TRUE)
# Remark - Alternative use ...
quantile(x.ret, probs = 1 - 0.01)
quantile(x.ret, probs = 1 - 0.01, type = 1)
# Find 95% Threshold:
findThreshold(x.ret, doplot = TRUE)
# Find 90% Threshold:
findThreshold(x.ret, n = floor(0.1*length(as.vector(x))), doplot = TRUE)
# Try if x is a numeric vector:
findThreshold(as.vector(x.ret), doplot = TRUE)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.pointProcess =
function()
{
# pointProcess - Returns peaks over a threshold from a time series
# pointProcess(x, u = quantile(x, 0.95), doplot = FALSE)
# Time Series Data:
x = MSFT[, "Close"]
x.ret = 100*returns(x)
head(x.ret)
class(x.ret)
# Plot Series:
par(mfrow = c(2, 1), cex = 0.7)
par(ask = FALSE)
# plot(x.ret, type = "l", main = "Series")
# abline(h = 0, col = "red", lty = 3)
# or use ...
seriesPlot(x.ret)
# Point Process:
pp = pointProcess(x.ret, u = quantile(x.ret, 0.8))
pp
plot(pp, type = "b", main = "Point Process")
abline(h = 0, col = "red", lty = 3)
# Try seriesPlot(pp)
# ... add points in graph
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.deCluster =
function()
{
# deCluster - Declusters a point process
# deCluster(x, run = 20, doplot = TRUE)
# Time Series Data:
x = MSFT[, "Close"]
x.ret = 100*returns(x)
head(x.ret)
class(x.ret)
# Decluster Time Series:
tS = deCluster(x = x.ret, run = 3)
print(tS)
# Return Value:
return()
}
################################################################################
fExtremes/inst/unitTests/runit.GevModelling.R 0000644 0001762 0000144 00000023277 12212357012 021040 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
# Copyrights (C)
# for this R-port:
# 1999 - 2007, Diethelm Wuertz, GPL
# Diethelm Wuertz
# info@rmetrics.org
# www.rmetrics.org
# for the code accessed (or partly included) from other R-ports:
# see R's copyright and license files
# for the code accessed (or partly included) from contributed R-ports
# and other sources
# see Rmetrics's copyright file
################################################################################
# FUNCTION: GEV SIMULATION:
# gevSim Simulates a GEV distributed process
# gumbelSim Simulates a Gumbel distributed process
# FUNCTION: GEV PARAMETER ESTIMATION:
# 'fGEVFIT' S4 class representation
# gevFit Fits Parameters of GEV distribution
# gumbelFit Fits Parameters of Gumbel distribution
# METHODS: PRINT, PLOT, AND SUMMARY:
# show.fGEVFIT S4 Show method for object of class "fGEVFIT"
# plot.fGEVFIT S3 Plot method for object of class "fGEVFIT"
# summary.fGEVFIT S3 Summary Method for object of class "fGEVFIT"
################################################################################
test.gevSim =
function()
{
# gevSim(model = list(xi=-0.25, mu=0, beta=1), n = 1000, seed = NULL)
# RVs:
RNGkind(kind = "Marsaglia-Multicarry", normal.kind = "Inversion")
set.seed(4711, kind = "Marsaglia-Multicarry")
# Artificial Data Set:
model = list(xi = -0.25, mu = 0, beta = 1)
x.ts = gevSim(model, n = 50, seed = 4711)
class(x.ts)
print(x.ts)
# Create a daily timeSeries object with dummy dates:
as.timeSeries(x.ts)
# Create a daily timeSeries object starting 2007-01-01
Calendar = timeSequence(from = "2007-01-01", length.out = length(x.ts))
x.tS = timeSeries(data = x.ts, charvec = Calendar, units = "x")
print(x.tS)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.gumbelSim =
function()
{
# gumbelSim(model = list(mu=0, beta=1), n = 1000, seed = NULL)
# RVs:
RNGkind(kind = "Marsaglia-Multicarry", normal.kind = "Inversion")
set.seed(4711, kind = "Marsaglia-Multicarry")
# Artificial Data Set:
model = list(mu = 0, beta = 1)
x.ts = gumbelSim(model, n = 50, seed = 4711)
class(x.ts)
print(x.ts)
# Create a daily timeSeries object with dummy dates:
x.tS = as.timeSeries(x.ts)
print(x.tS)
# Create a daily timeSeries object starting 2007-01-01
Calendar = timeSequence(from = "2007-01-01", length.out = length(x.ts))
x.tS = timeSeries(data = x.ts, charvec = Calendar, units = "x")
print(x.tS)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.numericVectorBlocks =
function()
{
# RVs:
RNGkind(kind = "Marsaglia-Multicarry", normal.kind = "Inversion")
set.seed(4711, kind = "Marsaglia-Multicarry")
# Check numeric vector as input:
X = rt(5000, df = 4)
x.vec = blockMaxima(X, 20)
class(x.vec)
head(x.vec)
# Internal Fit - GEV PWM:
fit = .gevpwmFit(x.vec)
fit
fit$par.ests
# Internal Fit - GEV MLE:
fit = .gevmleFit(x.vec)
fit
fit$par.ests
# Internal Fit - Gumbel PWM:
fit = .gumpwmFit(x.vec)
fit
fit$par.ests
# Internal Fit - Gumbel MLE:
fit = .gummleFit(x.vec)
fit
fit$par.ests
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.timeSeriesBlocks =
function()
{
# RVs:
RNGkind(kind = "Marsaglia-Multicarry", normal.kind = "Inversion")
set.seed(4711, kind = "Marsaglia-Multicarry")
# Create an artificial timeSeries with dummy positions:
xx <- rt(5000, df = 4)
charvec <- timeSequence("2013-01-01", length.out = NROW(xx))
X = timeSeries(xx, charvec = charvec)
# Compute Block Maxima:
x.tS = blockMaxima(X, "monthly")
class(x.tS)
head(x.tS)
# Convert to Vector:
x.vec = as.vector(x.tS)
# Internal Fit - GEV PWM:
fit = .gevpwmFit(x.vec)
fit
fit$par.ests
# Internal Fit - GEV MLE:
fit = .gevmleFit(x.vec)
fit
fit$par.ests
# Internal Fit - Gumbel PWM:
fit = .gumpwmFit(x.vec)
fit
fit$par.ests
# Internal Fit - Gumbel MLE:
fit = .gummleFit(x.vec)
fit
fit$par.ests
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.gevFit =
function()
{
# gevFit(x, block = 1, type = c("mle", "pwm"),
# title = NULL, description = NULL, ...)
# RVs:
RNGkind(kind = "Marsaglia-Multicarry", normal.kind = "Inversion")
set.seed(4711, kind = "Marsaglia-Multicarry")
# Simulate Series:
model = list(xi = -0.25, mu = 0, beta = 1)
x.ts = gevSim(model = model, n = 5000, seed = 4711)
class(x.ts)
# Check time series input:
fit = gevFit(x.ts, block = 1, type = "pwm")
class(fit)
print(fit)
fit = gevFit(x.ts, block = 1, type = "mle")
class(fit)
print(fit)
# Check numeric vector input:
fit = gevFit(as.vector(x.ts), block = 1, type = "pwm")
class(fit)
print(fit)
fit = gevFit(as.vector(x.ts), block = 1, type = "mle")
class(fit)
print(fit)
# Check timeSeries objerct input:
fit = gevFit(as.timeSeries(x.ts), block = 1, type = "pwm")
class(fit)
print(fit)
fit = gevFit(as.timeSeries(x.ts), block = 1, type = "mle")
class(fit)
print(fit)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.gumbelFit =
function()
{
# gevFit(x, block = 1, type = c("mle", "pwm"),
# title = NULL, description = NULL, ...)
# RVs:
RNGkind(kind = "Marsaglia-Multicarry", normal.kind = "Inversion")
set.seed(4711, kind = "Marsaglia-Multicarry")
# Simulate Series:
model = list(mu = 0, beta = 1)
x.ts = gumbelSim(model = model, n = 5000, seed = 4711)
class(x.ts)
# Check time series input:
fit = gumbelFit(x.ts, block = 1, type = "pwm")
class(fit)
print(fit)
fit = gumbelFit(x.ts, block = 1, type = "mle")
class(fit)
print(fit)
# Check numeric vector input:
fit = gumbelFit(as.vector(x.ts), block = 1, type = "pwm")
class(fit)
print(fit)
fit = gumbelFit(as.vector(x.ts), block = 1, type = "mle")
class(fit)
print(fit)
# Check timeSeries objerct input:
fit = gumbelFit(as.timeSeries(x.ts), block = 1, type = "pwm")
class(fit)
print(fit)
fit = gumbelFit(as.timeSeries(x.ts), block = 1, type = "mle")
class(fit)
print(fit)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.gevFitByBlocks <-
function()
{
# gevFit(x, block = 1, type = c("mle", "pwm"),
# title = NULL, description = NULL, ...)
# RVs:
RNGkind(kind = "Marsaglia-Multicarry", normal.kind = "Inversion")
set.seed(4711, kind = "Marsaglia-Multicarry")
# Simulate Series:
model = list(xi = -0.25, mu = 0, beta = 1)
x.ts = gevSim(model = model, n = 5000, seed = 4711)
class(x.ts)
x.vec = as.vector(x.ts)
class(x.vec)
charvec <- timeSequence("2013-01-01", length.out = NROW(x.vec))
x.tS = timeSeries(x.vec, charvec)
# ts as input & 20 Days Blocks:
fit = gevFit(x.ts, block = 20, type = "pwm")
fit
fit = gevFit(x.ts, block = 20, type = "mle")
fit
# Numeric Vector as input & 20 Days Blocks:
fit = gevFit(x.vec, block = 20, type = "pwm")
fit
fit = gevFit(x.vec, block = 20, type = "mle")
fit
# timeSeries o bject as input & Monthly Blocks:
fit = gevFit(x.tS, block = "monthly", type = "pwm")
fit
fit = gevFit(x.tS, block = "quarterly", type = "mle")
fit
# timeSeries object as input & 20 Days Blocks:
fit = gevFit(x.tS, block = 20, type = "pwm")
fit
fit = gevFit(x.tS, block = 20, type = "mle")
fit
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.plot =
function()
{
# Load Data:
x = as.timeSeries(data(danishClaims))
# Parameter Estimation with Declustering:
# gevFit(x, block = 1, type = c("mle", "pwm"),
# title = NULL, description = NULL, ...)
fit = gevFit(x, block = "month")
print(fit)
# Plot:
par(mfrow = c(2, 2), cex = 0.7)
par(ask = FALSE)
plot(fit, which = 1:4)
# Try Interactive:
# plot(fit)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.summary =
function()
{
# Summary Report:
# summary(object, doplot = TRUE, which = "all", ...)
# Load Data:
x = as.timeSeries(data(danishClaims))
# Parameter Estimation with Declustering:
fit = gevFit(x, block = "month")
print(fit)
# Summary:
summary(fit, doplot = FALSE)
# Return Value:
return()
}
################################################################################
fExtremes/inst/unitTests/runit.GpdRisk.R 0000644 0001762 0000144 00000012253 11645005146 020026 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
# Copyrights (C)
# for this R-port:
# 1999 - 2007, Diethelm Wuertz, GPL
# Diethelm Wuertz
# info@rmetrics.org
# www.rmetrics.org
# for the code accessed (or partly included) from other R-ports:
# see R's copyright and license files
# for the code accessed (or partly included) from contributed R-ports
# and other sources
# see Rmetrics's copyright file
################################################################################
# FUNCTION: ADDITIONAL PLOTS:
# gpdTailPlot Plots Tail Estimate From GPD Model
# gpdQuantPlot Plots of GPD Tail Estimate of a High Quantile
# gpdShapePlot Plots for GPD Shape Parameter
# gpdQPlot Adds Quantile Estimates to plot.gpd
# gpdSfallPlot Adds Expected Shortfall Estimates to a GPD Plot
# gpdRiskMeasures Calculates Quantiles and Expected Shortfalls
# FUNCTION: NEW STYLE FUNCTIONS:
# tailPlot Plots GPD VaR and Expected Shortfall risk
# tailSlider Interactive view to find proper threshold value
# tailRiskMeasures Calculates VaR and Expected Shortfall risks
################################################################################
test.gpdTailPlot =
function()
{
# Artificial Data Set:
x = gpdSim(seed = 1985)
fit = gpdFit(x)
par(mfrow = c(1, 1))
par(ask = FALSE)
gpdTailPlot(fit)
# Danish Fire Claims:
x = as.timeSeries(data(danishClaims))
fit = gpdFit(x)
par(mfrow = c(1, 1))
par(ask = FALSE)
gpdTailPlot(fit)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.gpdQuantPlot =
function()
{
# Artificial Data Set:
x = gpdSim(seed = 1985)
par(mfrow = c(1, 1))
par(ask = FALSE)
gpdQuantPlot(x)
# Danish Fire Claims:
x = as.timeSeries(data(danishClaims))
fit = gpdFit(x)
par(mfrow = c(1, 1))
par(ask = FALSE)
gpdQuantPlot(x)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.gpdShapePlot =
function()
{
# Artificial Data Set:
x = gpdSim(seed = 1985)
par(mfrow = c(1, 1))
par(ask = FALSE)
gpdShapePlot(x)
# Danish Fire Claims:
x = as.timeSeries(data(danishClaims))
par(mfrow = c(1, 1))
par(ask = FALSE)
gpdShapePlot(x)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.gpdQPlot =
function()
{
# Artificial Data Set:
x = gpdSim(seed = 1985)
fit = gpdFit(x)
tp = gpdTailPlot(fit)
gpdQPlot(tp)
# Danish Fire Claims:
x = as.timeSeries(data(danishClaims))
fit = gpdFit(x, u =10)
tp = gpdTailPlot(fit)
gpdQPlot(tp)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.gpdSfallPlot =
function()
{
# Artificial Data Set:
x = gpdSim(seed = 1985)
fit = gpdFit(x)
### tp = gpdTailPlot(fit) # CHECK
### gpdSfallPlot(tp) # CHECK
# Danish Fire Claims:
x = as.timeSeries(data(danishClaims))
fit = gpdFit(as.vector(x), u =10)
### tp = gpdTailPlot(fit) # CHECK
### gpdSfallPlot(tp) # CHECK
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.tailPlot =
function()
{
# Danish Fire Claims:
x = as.timeSeries(data(danishClaims))
fit = gpdFit(x, u = 10)
### tailPlot(fit) # CHECK
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.tailSlider =
function()
{
# Danish Fire Claims:
# x = as.timeSeries(data(danishClaims))
# tailSlider(x)
NA
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.tailRisk =
function()
{
# Danish Fire Claims:
x = as.timeSeries(data(danishClaims))
fit = gpdFit(x, u = 10)
tailRisk(fit)
# Return Value:
return()
}
################################################################################
fExtremes/inst/unitTests/runit.ExtremesData.R 0000644 0001762 0000144 00000020443 11645005146 021051 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
# Copyrights (C)
# for this R-port:
# 1999 - 2007, Diethelm Wuertz, GPL
# Diethelm Wuertz
# info@rmetrics.org
# www.rmetrics.org
# for the code accessed (or partly included) from other R-ports:
# see R's copyright and license files
# for the code accessed (or partly included) from contributed R-ports
# and other sources
# see Rmetrics's copyright file
################################################################################
# FUNCTION EXPLORATIVE DATA ANALYSIS:
# emdPlot Creates an empirical distribution plot
# qqparetoPlot Creates exploratory QQ plot for EV analysis
# mePlot Creates a sample mean excess function plot
# mxfPlot Creates another view of a sample mean excess plot
# mrlPlot Returns a mean residual life plot with confidence levels
# recordsPlot Plots records development
# ssrecordsPlot Plots records development of data subsamples
# msratioPlot Plots ratio of maximums and sums
# sllnPlot Verifies Kolmogorov's Strong Law of large numbers
# lilPlot Verifies Hartman-Wintner's Law of the iterated logarithm
# xacfPlot Plots autocorrelations of exceedences
################################################################################
test.emd =
function()
{
# emdPlot - Creates an empirical distribution plot
# Artificial Data Set:
RNGkind(kind = "Marsaglia-Multicarry", normal.kind = "Inversion")
set.seed(4711, kind = "Marsaglia-Multicarry")
x = rgpd(1000)
# Empirical distribution plot:
par(ask = FALSE)
par(mfrow = c(2, 2))
emdPlot(x, plottype = "xy")
emdPlot(x, plottype = "x")
emdPlot(x, plottype = "y")
# emdPlot(x, plottype = " ") # CHECK !!!
# Artificial Data Set:
x = rt(1000, df = 3)
# Empirical distribution plot:
par(ask = FALSE)
par(mfrow = c(2, 2))
emdPlot(x, plottype = "xy")
emdPlot(x, plottype = "x")
emdPlot(x, plottype = "y")
# emdPlot(x, plottype = " ") # CHECK !!!
# Artificial Data Set:
x = rnorm(1000)
# Empirical distribution plot:
par(ask = FALSE)
par(mfrow = c(2, 2))
emdPlot(x, plottype = "xy")
emdPlot(x, plottype = "x")
emdPlot(x, plottype = "y")
# emdPlot(x, plottype = " ") # CHECK !!!
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.qqpareto =
function()
{
# qqparetoPlot - Creates exploratory QQ plot for EV analysis
# Artificial Data Set -
RNGkind(kind = "Marsaglia-Multicarry", normal.kind = "Inversion")
set.seed(4711, kind = "Marsaglia-Multicarry")
r0 = rgpd(n = 1000, xi = 0)
r1 = rgpd(n = 1000, xi = 1)
# Graph Frame:
par(ask = FALSE)
par(mfrow = c(2, 2))
# Empirical Pareto Distribution Plot:
qqparetoPlot(x = r0, xi = 0)
qqparetoPlot(x = r1, xi = 1)
# Empirical Normal Distribution Plot:
qqnormPlot(x = r0)
qqnormPlot(x = r1)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.me =
function()
{
# mePlot - Creates a sample mean excess function plot
# mxfPlot - Creates another view of a sample mean excess plot
# mrlPlot - Returns a mean residual life plot with confidence levels
# Artificial Data Set -
RNGkind(kind = "Marsaglia-Multicarry", normal.kind = "Inversion")
set.seed(4711, kind = "Marsaglia-Multicarry")
r = rgpd(n = 1000)
# Mean Excess Function Plot:
par(ask = FALSE)
par(mfrow = c(2, 2))
mePlot(x = r) # Check, the largest point is missing ...
mxfPlot(x = r)
mrlPlot(x = r)
# No Labels:
par(mfrow = c(2, 2))
par(ask = FALSE)
mePlot(x = r, labels = FALSE)
mxfPlot(x = r, labels = FALSE)
mrlPlot(x = r, labels = FALSE)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.records =
function()
{
# recordsPlot - Plots records development
# ssrecordsPlot - Plots records development of data subsamples
# Artificial Data Set -
RNGkind(kind = "Marsaglia-Multicarry", normal.kind = "Inversion")
set.seed(4711, kind = "Marsaglia-Multicarry")
r = rgpd(n = 1000)
# Records Plot:
par(mfrow = c(2, 2))
par(ask = FALSE)
recordsPlot(x = r)
recordsPlot(x = r, ci = 0.99)
ans = recordsPlot(x = r, labels = FALSE)
print(ans)
# Subrecords Plot:
set.seed(1985)
r = rgpd(n = 10000)
par(mfrow = c(2, 2))
par(ask = FALSE)
recordsPlot(r)
ssrecordsPlot(r, subsamples = 1)
ssrecordsPlot(r, subsamples = 1, plottype = "log")
ans = ssrecordsPlot(r, subsamples = 1, plottype = "lin")
print(ans)
# Subrecords Plot:
set.seed(1985)
r = rgpd(n = 10000)
par(mfrow = c(2, 2))
par(ask = FALSE)
ssrecordsPlot(r, subsamples = 10)
ssrecordsPlot(r, subsamples = 50)
ssrecordsPlot(r, subsamples = 10, plottype = "log")
ans = ssrecordsPlot(r, subsamples = 50, plottype = "log", labels = FALSE)
print(ans)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.msratio =
function()
{
# msratioPlot - Plots ratio of maximums and sums
# Artificial Data Set -
RNGkind(kind = "Marsaglia-Multicarry", normal.kind = "Inversion")
set.seed(4711, kind = "Marsaglia-Multicarry")
r = rgpd(n = 1000)
# Mean Excess Function Plot:
par(ask = FALSE)
par(mfrow = c(2, 2))
msratioPlot(x = r, p = 1:4)
ans = msratioPlot(x = r, p = 1:4, labels = FALSE)
print(head(ans))
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.laws =
function()
{
# sllnPlot - Verifies Kolmogorov's Strong Law of large numbers
# lilPlot - Verifies Hartman-Wintner's Law of the iterated logarithm
# Artificial Data Set -
RNGkind(kind = "Marsaglia-Multicarry", normal.kind = "Inversion")
set.seed(4711, kind = "Marsaglia-Multicarry")
r = rgpd(n = 1000)
# Strong Law of Large Numbers:
par(ask = FALSE)
par(mfrow = c(2, 2))
sllnPlot(x = r)
ans = sllnPlot(x = r, labels = FALSE)
print(ans)
# Law of the Iterated Logarithm:
lilPlot(x = r)
ans = lilPlot(x = r, labels = FALSE)
print(ans)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.xacf =
function()
{
# xacfPlot - Plots autocorrelations of exceedences
# Create an Artificial Data Set:
RNGkind(kind = "Marsaglia-Multicarry", normal.kind = "Inversion")
set.seed(4711, kind = "Marsaglia-Multicarry")
r = rgpd(n = 1000)
# ACF of Exceedances Plot:
par(ask = FALSE)
par(mfrow = c(2, 2))
ans = xacfPlot(x = r)
print(ans)
# ACF of Exceedances Plot:
par(ask = FALSE)
par(mfrow = c(2, 2))
xacfPlot(x = r, labels = FALSE)
# ACF of Exceedances Plot:
par(ask = FALSE)
par(mfrow = c(2, 2))
xacfPlot(x = r, labels = FALSE, which = 1); title(main = "1")
xacfPlot(x = r, labels = FALSE, which = 2); title(main = "2")
xacfPlot(x = r, labels = FALSE, which = "3"); title(main = "3")
xacfPlot(x = r, labels = FALSE, which = "4"); title(main = "4")
# Return Value:
return()
}
################################################################################
fExtremes/inst/unitTests/runTests.R 0000644 0001762 0000144 00000004531 11645005146 017152 0 ustar ligges users pkg <- "fExtremes"
if(require("RUnit", quietly = TRUE))
{
library(package=pkg, character.only = TRUE)
if(!(exists("path") && file.exists(path)))
path <- system.file("unitTests", package = pkg)
## --- Testing ---
## Define tests
testSuite <- defineTestSuite(name = paste(pkg, "unit testing"),
dirs = path)
if(interactive()) {
cat("Now have RUnit Test Suite 'testSuite' for package '",
pkg, "' :\n", sep='')
str(testSuite)
cat('', "Consider doing",
"\t tests <- runTestSuite(testSuite)", "\nand later",
"\t printTextProtocol(tests)", '', sep = "\n")
} else {
## run from shell / Rscript / R CMD Batch / ...
## Run
tests <- runTestSuite(testSuite)
if(file.access(path, 02) != 0) {
## cannot write to path -> use writable one
tdir <- tempfile(paste(pkg, "unitTests", sep="_"))
dir.create(tdir)
pathReport <- file.path(tdir, "report")
cat("RUnit reports are written into ", tdir, "/report.(txt|html)",
sep = "")
} else {
pathReport <- file.path(path, "report")
}
## Print Results:
printTextProtocol(tests, showDetails = FALSE)
printTextProtocol(tests, showDetails = FALSE,
fileName = paste(pathReport, "Summary.txt", sep = ""))
printTextProtocol(tests, showDetails = TRUE,
fileName = paste(pathReport, ".txt", sep = ""))
## Print HTML Version to a File:
## printHTMLProtocol has problems on Mac OS X
if (Sys.info()["sysname"] != "Darwin")
printHTMLProtocol(tests,
fileName = paste(pathReport, ".html", sep = ""))
## stop() if there are any failures i.e. FALSE to unit test.
## This will cause R CMD check to return error and stop
tmp <- getErrors(tests)
if(tmp$nFail > 0 | tmp$nErr > 0) {
stop(paste("\n\nunit testing failed (#test failures: ", tmp$nFail,
", R errors: ", tmp$nErr, ")\n\n", sep=""))
}
}
} else {
cat("R package 'RUnit' cannot be loaded -- no unit tests run\n",
"for package", pkg,"\n")
}
################################################################################
fExtremes/inst/unitTests/runit.GevDistribution.R 0000644 0001762 0000144 00000007653 11645005146 021614 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
# Copyrights (C)
# for this R-port:
# 1999 - 2007, Diethelm Wuertz, GPL
# Diethelm Wuertz
# info@rmetrics.org
# www.rmetrics.org
# for the code accessed (or partly included) from other R-ports:
# see R's copyright and license files
# for the code accessed (or partly included) from contributed R-ports
# and other sources
# see Rmetrics's copyright file
################################################################################
# FUNCTION: GEV DISTRIBUTION FAMILY: [CALLING EVD]
# dgev Density for the GEV Distribution
# pgev Probability for the GEV Distribution
# qgev Quantiles for the GEV Distribution
# rgev Random variates for the GEV Distribution
# gevMoments Computes true statistics for GEV distribution
# gevSlider Displays distribution and rvs for GEV distribution
################################################################################
test.gev =
function()
{
# Check Distribution:
RNGkind(kind = "Marsaglia-Multicarry", normal.kind = "Inversion")
set.seed(4711, kind = "Marsaglia-Multicarry")
.distCheck(fun = "gev", n = 2000, xi = 0.0, mu = 0, beta = 1)
# Check Distribution:
RNGkind(kind = "Marsaglia-Multicarry", normal.kind = "Inversion")
set.seed(4711, kind = "Marsaglia-Multicarry")
.distCheck(fun = "gev", n = 5000, xi = 0.3, mu = 0, beta = 2)
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.gevMoments =
function()
{
# gevMoments(xi = 0, mu = 0, beta = 1)
# Compute Moments:
xi = seq(-4.5, 1.5, by = 0.25)
mom = gevMoments(xi)
print(mom)
# Plot Mean:
par(mfrow = c(2, 1), cex = 0.7)
par(ask = FALSE)
xi = seq(-5, 2, length = 351)
mom = gevMoments(xi)
plot(xi, mom$mean, main = "Mean GEV", pch = 19, col = "steelblue")
abline(v = 1, col = "red", lty = 3)
abline(h = 0, col = "red", lty = 3)
# Plot Variance:
plot(xi, log(mom$var), main = "log Variance GEV", pch = 19, col = "steelblue")
abline(v = 1/2, col = "red", lty = 3)
abline(h = 0.0, col = "red", lty = 3)
# check gevMoments for specific values
xi <- c(-1, 0, 0.3)
mu <- c(-1, 0, 1)
beta <- c(0.5, 1, 10)
for (i in seq(length(xi))) {
for (j in seq(length(xi))) {
for (k in seq(length(xi))) {
rg <- rgev(1000000, xi = xi[i], mu = mu[j], beta = beta[k])
rgMoments <- gevMoments(xi = xi[i], mu = mu[j], beta = beta[k])
checkEqualsNumeric(mean(rg), rgMoments$mean, tolerance = 0.1)
checkEqualsNumeric(var(rg), rgMoments$var, tolerance = 0.1)
}
}
}
# Return Value:
return()
}
# ------------------------------------------------------------------------------
test.gevSlider =
function()
{
# Distribution Slider:
# print("Activate Slider manually!")
# gevSlider(method = "dist")
NA
# Random Variates Slider:
# print("Activate Slider manually!")
# gevSlider(method = "rvs")
NA
# Return Value:
return()
}
################################################################################
fExtremes/tests/ 0000755 0001762 0000144 00000000000 13203504345 013355 5 ustar ligges users fExtremes/tests/doRUnit.R 0000644 0001762 0000144 00000001516 11645005146 015072 0 ustar ligges users #### doRUnit.R --- Run RUnit tests
####------------------------------------------------------------------------
### Origianlly follows Gregor Gojanc's example in CRAN package 'gdata'
### and the corresponding section in the R Wiki:
### http://wiki.r-project.org/rwiki/doku.php?id=developers:runit
### MM: Vastly changed: This should also be "runnable" for *installed*
## package which has no ./tests/
## ----> put the bulk of the code e.g. in ../inst/unitTests/runTests.R :
if(require("RUnit", quietly = TRUE)) {
## --- Setup ---
wd <- getwd()
pkg <- sub("\\.Rcheck$", '', basename(dirname(wd)))
library(package=pkg, character.only = TRUE)
path <- system.file("unitTests", package = pkg)
stopifnot(file.exists(path), file.info(path.expand(path))$isdir)
source(file.path(path, "runTests.R"), echo = TRUE)
}
fExtremes/NAMESPACE 0000644 0001762 0000144 00000001441 13202325176 013434 0 ustar ligges users ################################################
## fExtremes
################################################
################################################
## import name space
################################################
import("timeDate")
import("timeSeries")
import("fBasics")
import("fGarch")
importFrom("graphics", axis, box, grid, hist, mtext, par, rug, text, title)
importFrom("methods", is, new)
importFrom("stats", acf, dnorm, integrate, lowess, lsfit, optim,
ppoints, qchisq, qexp, qnorm, rexp, runif, sd, spline, uniroot, var)
################################################
## functions
################################################
exportPattern(".")
S3method("plot", "fGEVFIT")
S3method("summary", "fGEVFIT")
S3method("plot", "fGPDFIT")
S3method("summary", "fGPDFIT")
fExtremes/data/ 0000755 0001762 0000144 00000000000 13203504345 013124 5 ustar ligges users fExtremes/data/danishClaims.csv 0000644 0001762 0000144 00000142466 11645005146 016260 0 ustar ligges users %Y-%m-%d;DANISH
1980-01-03;1.68374817
1980-01-04;2.093704246
1980-01-05;1.732581259
1980-01-07;1.779754026
1980-01-07;4.612005857
1980-01-10;8.725273792
1980-01-10;7.89897511
1980-01-16;2.208045388
1980-01-16;1.486090776
1980-01-19;2.796171303
1980-01-21;7.320644217
1980-01-21;3.36749634
1980-01-24;1.464128843
1980-01-25;1.722222548
1980-01-26;11.37481698
1980-01-26;2.482739385
1980-01-28;26.21464129
1980-02-03;2.002430454
1980-02-05;4.530014641
1980-02-07;1.841752562
1980-02-10;3.806734993
1980-02-13;14.12207613
1980-02-16;5.424253294
1980-02-19;11.71303075
1980-02-20;1.515373353
1980-02-21;2.53858858
1980-02-22;2.049780381
1980-02-23;12.46559297
1980-02-25;1.735445095
1980-02-27;1.68374817
1980-03-07;3.323852123
1980-03-13;1.82102489
1980-03-13;2.415812592
1980-03-13;1.464128843
1980-03-17;5.875901903
1980-03-20;1.792439239
1980-03-21;3.338213763
1980-03-22;1.584487555
1980-03-26;1.931320644
1980-04-06;2.049780381
1980-04-10;1.573758419
1980-04-11;1.756954612
1980-04-14;4.931185944
1980-04-15;5.41727672
1980-04-16;1.537335286
1980-04-25;17.56954612
1980-04-25;1.691122987
1980-04-26;1.581612006
1980-05-01;1.467115666
1980-05-01;2.049780381
1980-05-02;1.928711567
1980-05-02;3.263153734
1980-05-04;1.704245974
1980-05-07;2.074607613
1980-05-09;3.294289898
1980-05-10;1.83997511
1980-05-16;7.320644217
1980-05-18;7.320644217
1980-05-20;1.576215227
1980-05-20;4.856098097
1980-05-21;1.542275256
1980-05-26;13.62079063
1980-05-29;1.756954612
1980-05-29;1.639824305
1980-06-02;2.036377745
1980-06-03;21.96193265
1980-06-11;1.799026354
1980-06-12;2.452415813
1980-06-15;2.669106881
1980-06-15;2.024146413
1980-06-16;1.724743777
1980-06-17;1.643863836
1980-06-21;1.96193265
1980-06-30;4.626647145
1980-07-02;1.464128843
1980-07-04;3.963250366
1980-07-04;5.563852123
1980-07-07;4.39238653
1980-07-10;3.640313324
1980-07-12;1.677891654
1980-07-14;1.449487555
1980-07-15;263.250366
1980-07-25;2.500732064
1980-07-26;1.825768668
1980-07-26;9.882869693
1980-07-28;2.146617862
1980-07-29;2.870259151
1980-08-07;6.319913616
1980-08-08;2.123461201
1980-08-08;2.9238653
1980-08-11;2.036376281
1980-08-18;1.736456808
1980-08-18;2.049780381
1980-08-20;1.903367496
1980-08-21;1.610541728
1980-08-23;1.717423133
1980-08-23;3.129437775
1980-08-27;2.05195754
1980-08-28;1.967518302
1980-08-28;2.102489019
1980-08-28;3.259150805
1980-08-30;1.998535871
1980-08-30;5.41727672
1980-09-02;2.819836018
1980-09-04;3.697083455
1980-09-05;2.045387994
1980-09-05;2.679355783
1980-09-08;3.426224012
1980-09-11;1.588579795
1980-09-12;4.262871157
1980-09-12;1.755859444
1980-09-14;1.987005857
1980-09-15;1.661925329
1980-09-15;7.613469985
1980-09-15;1.794878477
1980-09-15;6.674816984
1980-09-25;2.185944363
1980-09-28;3.855051245
1980-09-30;3.221083455
1980-10-01;2.122986823
1980-10-01;1.760291362
1980-10-06;2.041653001
1980-10-07;3.755938507
1980-10-07;2.242111274
1980-10-08;1.721112738
1980-10-09;1.464128843
1980-10-12;4.711891654
1980-10-14;2.153824305
1980-10-16;3.874812592
1980-10-17;19.07027818
1980-10-20;1.887262079
1980-10-23;1.464128843
1980-10-24;1.536163982
1980-10-25;2.560065886
1980-10-27;2.799707174
1980-10-29;2.01317716
1980-10-30;1.464128843
1980-11-05;6.325036603
1980-11-07;1.567300146
1980-11-09;2.196193265
1980-11-10;2.335285505
1980-11-13;2.115666179
1980-11-14;1.469544656
1980-11-18;5.402635432
1980-11-18;5.314787701
1980-11-19;2.872620791
1980-11-20;2.781844802
1980-11-25;2.576821376
1980-12-06;3.10102489
1980-12-07;1.464128843
1980-12-08;2.049780381
1980-12-09;1.96193265
1980-12-09;1.464128843
1980-12-09;2.635431918
1980-12-10;1.464128843
1980-12-10;5.856515373
1980-12-12;3.294289898
1980-12-14;2.520856515
1980-12-17;19.47291362
1980-12-17;1.835462665
1980-12-19;2.049780381
1980-12-23;2.783308931
1980-12-25;2.781844802
1980-12-26;1.756954612
1980-12-27;2.840409956
1980-12-31;2.330893119
1981-01-01;1.756225426
1981-01-01;1.314547837
1981-01-01;2.403971166
1981-01-03;6.915630406
1981-01-07;1.491876802
1981-01-17;1.532395806
1981-01-23;1.873861075
1981-01-26;1.815203145
1981-01-31;8.256880734
1981-02-02;1.410204456
1981-02-07;2.206625164
1981-02-10;34.14154653
1981-02-10;2.443310616
1981-02-13;3.594369594
1981-02-13;2.372214941
1981-02-15;3.669724771
1981-02-17;6.888453473
1981-02-19;1.802096986
1981-02-19;1.441677588
1981-02-23;9.174311927
1981-02-27;2.096985583
1981-03-01;2.814547837
1981-03-01;1.684903014
1981-03-04;2.099606815
1981-03-09;2.621231979
1981-03-10;1.376146789
1981-03-12;1.664482307
1981-03-13;2.359108781
1981-03-16;4.136487549
1981-03-19;1.394395806
1981-03-23;1.802096986
1981-03-24;1.819134993
1981-03-24;1.513761468
1981-03-27;3.080773263
1981-04-01;20.96985583
1981-04-10;4.193971166
1981-04-13;1.861643512
1981-04-18;2.49672346
1981-04-20;2.213781127
1981-04-20;5.242463958
1981-04-22;1.32225426
1981-04-23;8.551769332
1981-04-24;1.965923984
1981-04-25;12.89515072
1981-04-26;1.788990826
1981-04-26;2.176826999
1981-04-27;8.777627785
1981-04-27;1.815203145
1981-04-29;1.683140236
1981-04-29;3.643512451
1981-05-02;1.613368283
1981-05-03;1.467889908
1981-05-05;1.405604194
1981-05-06;3.120803408
1981-05-11;1.598180865
1981-05-13;3.80078637
1981-05-14;1.510089122
1981-05-16;1.572739187
1981-05-16;1.830052425
1981-05-21;2.621231979
1981-05-21;2.806480996
1981-05-23;1.357798165
1981-05-24;1.618610747
1981-05-25;1.965923984
1981-05-28;3.022280472
1981-05-29;56.22542595
1981-05-31;4.98034076
1981-06-02;1.987162516
1981-06-14;1.965923984
1981-06-16;2.711292267
1981-06-17;1.900393185
1981-06-18;1.723460026
1981-06-18;1.572739187
1981-06-19;1.703800786
1981-06-19;3.01965924
1981-06-21;1.834862385
1981-06-24;1.419397117
1981-06-29;4.390563565
1981-06-30;7.863695937
1981-07-01;1.572739187
1981-07-01;1.336613368
1981-07-05;1.703800786
1981-07-07;2.635622543
1981-07-10;1.864718218
1981-07-11;1.457754915
1981-07-11;7.558322412
1981-07-12;2.031397117
1981-07-20;1.349934469
1981-07-26;1.474862385
1981-07-28;5.111402359
1981-07-30;5.242463958
1981-07-31;1.441677588
1981-08-04;3.936138925
1981-08-05;4.062909567
1981-08-11;1.376146789
1981-08-19;1.684141547
1981-08-19;1.440619921
1981-08-25;1.364549148
1981-08-25;1.572739187
1981-08-27;2.185422018
1981-08-27;3.281346003
1981-08-27;1.363100917
1981-08-28;2.123197903
1981-08-28;2.634338139
1981-08-28;2.098296199
1981-08-29;3.434352556
1981-09-01;1.478795544
1981-09-02;2.621231979
1981-09-03;3.001310616
1981-09-04;1.429733945
1981-09-06;10.22280472
1981-09-09;2.579395806
1981-09-09;1.755359109
1981-09-10;1.47340498
1981-09-11;1.952817824
1981-09-14;1.779868938
1981-09-15;1.986862385
1981-09-16;1.939711664
1981-09-17;1.675900393
1981-09-17;1.572739187
1981-09-19;2.524901704
1981-09-19;14.67889908
1981-09-20;3.034076016
1981-09-21;1.979030144
1981-09-22;5.937758847
1981-09-26;1.441677588
1981-09-29;2.621231979
1981-10-01;2.038007864
1981-10-03;3.75491481
1981-10-07;2.43774574
1981-10-07;1.702031455
1981-10-11;7.109870249
1981-10-15;2.01965924
1981-10-17;1.85049017
1981-10-18;1.415950197
1981-10-22;7.693315858
1981-10-25;3.014416776
1981-10-27;2.359108781
1981-10-28;1.592315858
1981-11-01;1.389252949
1981-11-01;1.332968545
1981-11-03;1.423328965
1981-11-03;2.977571429
1981-11-05;1.387355177
1981-11-05;1.404980341
1981-11-08;2.621231979
1981-11-13;4.279161206
1981-11-15;1.605504587
1981-11-16;2.011795544
1981-11-17;2.267365662
1981-11-17;1.464650066
1981-11-19;3.374065531
1981-11-22;1.490799476
1981-11-24;2.096985583
1981-11-25;1.570166448
1981-11-25;1.376146789
1981-12-01;3.145478375
1981-12-07;8.453735256
1981-12-10;3.033283093
1981-12-13;2.064220183
1981-12-14;6.422018349
1981-12-14;1.89878768
1981-12-18;1.49017038
1981-12-21;50.0655308
1981-12-21;1.559633028
1981-12-22;1.965923984
1981-12-28;1.800052425
1981-12-29;2.424639581
1981-12-29;1.31061599
1981-12-31;1.612057667
1982-01-06;4.221165279
1982-01-08;1.260404281
1982-01-08;1.403693222
1982-01-09;1.297265161
1982-01-13;1.927492271
1982-01-13;1.915457788
1982-01-14;1.207451843
1982-01-17;5.69858264
1982-01-21;1.902497027
1982-01-22;1.189134364
1982-01-22;10.17802378
1982-01-22;1.602079667
1982-01-24;4.161712247
1982-01-28;2.363049941
1982-01-29;1.965043995
1982-02-01;1.945982164
1982-02-01;2.853745541
1982-02-03;1.202439952
1982-02-04;10.82045184
1982-02-04;1.588763377
1982-02-04;2.096349584
1982-02-05;5.469678954
1982-02-07;1.892984542
1982-02-08;2.033293698
1982-02-09;1.605231867
1982-02-16;1.403091558
1982-02-22;1.195005945
1982-02-25;3.246135553
1982-02-27;1.263122473
1982-02-27;2.972651605
1982-02-28;1.204950059
1982-02-28;1.881273484
1982-02-28;1.783590963
1982-03-07;3.923900119
1982-03-07;1.902497027
1982-03-10;1.664684899
1982-03-10;4.452825208
1982-03-19;1.32362069
1982-03-20;1.605231867
1982-03-22;24.97027348
1982-03-25;2.734839477
1982-03-29;1.783590963
1982-04-05;1.810939358
1982-04-05;2.114149822
1982-04-11;1.391200951
1982-04-12;1.346016647
1982-04-12;1.507384067
1982-04-14;1.940487515
1982-04-14;2.56979786
1982-04-18;1.580765755
1982-04-18;1.487514863
1982-04-20;1.521997622
1982-04-21;1.690844233
1982-04-22;1.783590963
1982-04-24;1.258865636
1982-04-24;1.573747919
1982-04-24;1.467300832
1982-04-25;2.713705113
1982-04-25;2.736028537
1982-04-27;1.456599287
1982-04-28;2.137431629
1982-04-28;2.479090369
1982-05-01;2.378121284
1982-05-01;4.637336504
1982-05-02;1.189060642
1982-05-03;1.545778835
1982-05-08;2.342449465
1982-05-12;2.337693222
1982-05-16;1.397146254
1982-05-23;4.221165279
1982-05-31;1.639952438
1982-06-03;1.218787158
1982-06-06;3.68608799
1982-06-07;2.497027348
1982-06-08;2.497027348
1982-06-10;5.231866825
1982-06-10;1.307966706
1982-06-11;1.268124851
1982-06-16;2.165279429
1982-06-17;4.640192628
1982-06-17;2.972651605
1982-06-22;1.664684899
1982-06-24;1.189060642
1982-06-27;11.89060642
1982-07-01;2.865636147
1982-07-01;1.24436742
1982-07-03;1.724137931
1982-07-11;5.695600476
1982-07-14;1.35956956
1982-07-14;7.07491082
1982-07-15;1.403475624
1982-07-15;1.402418549
1982-07-19;1.319857313
1982-07-21;4.320588585
1982-07-24;1.843043995
1982-07-24;1.414982164
1982-07-26;1.486325803
1982-07-27;4.946032105
1982-07-28;1.913198573
1982-07-29;20.04994055
1982-07-29;1.436507729
1982-07-31;5.507728894
1982-08-01;3.210463734
1982-08-02;1.399328181
1982-08-04;5.001734839
1982-08-04;3.448275862
1982-08-05;3.55648038
1982-08-05;1.357568371
1982-08-06;2.131511296
1982-08-06;1.84188585
1982-08-07;1.426872771
1982-08-09;2.417598098
1982-08-11;1.252154578
1982-08-12;1.899702735
1982-08-13;1.559183115
1982-08-20;1.24925327
1982-08-21;1.903241379
1982-08-23;1.605231867
1982-08-24;2.22965874
1982-08-27;1.212841855
1982-08-30;3.448275862
1982-09-03;1.243267539
1982-09-06;1.674931034
1982-09-08;1.353151011
1982-09-10;1.78754459
1982-09-10;2.03686088
1982-09-13;1.973840666
1982-09-14;1.640903686
1982-09-18;2.909932224
1982-09-18;2.550958383
1982-09-19;1.807372176
1982-09-20;4.002577883
1982-09-22;1.426872771
1982-09-28;2.343111772
1982-09-30;1.38882283
1982-10-01;4.173602854
1982-10-03;1.278537455
1982-10-04;3.558858502
1982-10-06;1.200149822
1982-10-16;1.551234245
1982-10-24;1.699619501
1982-10-24;65.70749108
1982-10-27;27.26259453
1982-10-27;15.92627824
1982-10-31;1.279497027
1982-11-01;3.098441141
1982-11-06;2.94696195
1982-11-07;1.224732461
1982-11-08;1.664684899
1982-11-09;1.319601665
1982-11-11;1.516599287
1982-11-11;1.273230678
1982-11-11;1.664684899
1982-11-13;1.307966706
1982-11-15;5.469678954
1982-11-20;1.248513674
1982-11-21;1.986825208
1982-11-22;1.426872771
1982-11-23;1.426872771
1982-11-23;2.164090369
1982-11-24;2.140309156
1982-11-25;1.307966706
1982-11-25;1.498384067
1982-11-27;1.688466112
1982-12-01;1.83994887
1982-12-02;4.375743163
1982-12-02;1.786692033
1982-12-07;1.655944114
1982-12-09;1.189060642
1982-12-10;3.85075981
1982-12-10;4.161712247
1982-12-20;2.140309156
1982-12-20;2.140309156
1982-12-20;2.615933413
1982-12-23;4.161712247
1982-12-24;22.25822592
1982-12-25;2.25921522
1982-12-25;4.280618312
1982-12-25;1.306247325
1982-12-27;5.588585018
1982-12-31;2.794292509
1983-01-03;1.44160178
1983-01-03;1.349646274
1983-01-07;1.565072303
1983-01-09;1.112347052
1983-01-10;2.810163515
1983-01-15;1.783452725
1983-01-18;2.128698554
1983-01-19;4.349276974
1983-01-23;2.710789766
1983-01-24;1.134593993
1983-01-25;2.623686318
1983-01-30;2.393770857
1983-02-03;6.234705228
1983-02-08;1.378197998
1983-02-09;1.216907675
1983-02-11;1.163515017
1983-02-12;2.459407119
1983-02-14;4.727474972
1983-02-14;1.557285873
1983-02-17;1.307007786
1983-02-18;3.14349277
1983-02-20;1.197107898
1983-02-21;1.167964405
1983-02-24;1.112347052
1983-03-18;1.779755284
1983-03-21;1.64740267
1983-03-21;1.72369188
1983-03-22;5.561735261
1983-03-23;1.334816463
1983-03-24;1.446051168
1983-03-28;1.334816463
1983-04-01;1.590656285
1983-04-05;1.112347052
1983-04-06;3.03243604
1983-04-10;3.786429366
1983-04-11;2.224694105
1983-04-12;2.447163515
1983-04-15;10.01112347
1983-04-17;1.163547275
1983-04-18;1.112347052
1983-04-18;3.152863181
1983-04-20;3.726362625
1983-04-21;4.449388209
1983-04-21;2.281263626
1983-04-24;3.559510567
1983-05-04;4.449388209
1983-05-10;1.209121246
1983-05-13;1.156840934
1983-05-14;2.224694105
1983-05-17;1.240266963
1983-05-18;1.15925584
1983-05-24;1.668520578
1983-05-27;3.337041157
1983-05-29;10.07230256
1983-06-06;2.141268076
1983-06-07;1.474972191
1983-06-10;1.112347052
1983-06-10;1.689655172
1983-06-17;1.668520578
1983-06-19;1.617352614
1983-06-22;1.112347052
1983-06-23;2.169076752
1983-06-24;1.493882091
1983-06-29;1.408231368
1983-07-01;2.502780868
1983-07-03;2.258064516
1983-07-03;3.726362625
1983-07-04;1.893699666
1983-07-04;1.704115684
1983-07-07;2.342854283
1983-07-08;1.946607341
1983-07-12;1.27919911
1983-07-15;1.510696329
1983-07-17;2.447163515
1983-07-18;3.675194661
1983-07-19;2.378241379
1983-07-20;1.774193548
1983-07-20;1.51512792
1983-07-25;2.234705228
1983-07-25;1.816462736
1983-08-02;3.448275862
1983-08-05;4.67185762
1983-08-09;1.156840934
1983-08-16;1.223581758
1983-08-16;4.078929922
1983-08-17;1.19243604
1983-08-22;1.204093437
1983-08-22;2.55839822
1983-08-22;1.618464961
1983-08-23;1.822024472
1983-08-25;1.61056396
1983-08-25;1.860956618
1983-08-25;7.992070078
1983-08-28;1.785317019
1983-08-30;4.89432703
1983-08-31;2.52057842
1983-08-31;1.394883204
1983-08-31;1.390433815
1983-09-01;1.297179088
1983-09-01;3.670745273
1983-09-03;3.876529477
1983-09-03;3.587319244
1983-09-04;1.437954394
1983-09-05;1.17527475
1983-09-08;1.501668521
1983-09-09;1.506003337
1983-09-13;5.925472747
1983-09-16;12.63181313
1983-09-16;3.061179088
1983-09-17;1.436040044
1983-09-18;2.27919911
1983-09-18;1.491766407
1983-09-19;6.916553949
1983-09-21;1.604229143
1983-09-25;1.668520578
1983-09-25;1.157211346
1983-09-27;1.320355951
1983-09-29;3.448275862
1983-10-01;1.975761958
1983-10-02;1.85650723
1983-10-03;2.002224694
1983-10-03;5.300503893
1983-10-05;4.004449388
1983-10-06;1.124468298
1983-10-07;1.546494994
1983-10-11;2.55839822
1983-10-20;1.47916574
1983-10-22;1.259399333
1983-10-22;3.197997775
1983-10-24;3.114571746
1983-10-27;1.312569522
1983-11-01;5.672969967
1983-11-13;13.34816463
1983-11-15;11.43159066
1983-11-16;4.259176863
1983-11-23;3.366826474
1983-11-25;1.112347052
1983-11-26;1.112347052
1983-11-28;1.446051168
1983-11-30;2.073114572
1983-12-07;1.223581758
1983-12-15;1.612903226
1983-12-17;1.319243604
1983-12-19;1.129032258
1983-12-20;2.33592881
1983-12-23;1.724137931
1983-12-24;11.12347052
1983-12-25;1.668520578
1983-12-25;1.557285873
1983-12-27;1.557285873
1983-12-27;1.933311457
1983-12-27;1.724137931
1983-12-30;1.501668521
1984-01-01;2.207434555
1984-01-01;1.047120419
1984-01-02;1.425361257
1984-01-04;1.361256545
1984-01-07;9.314136126
1984-01-08;1.644890052
1984-01-09;2.617801047
1984-01-10;2.541112042
1984-01-14;1.570680628
1984-01-15;1.256544503
1984-01-31;1.458638743
1984-02-06;1.047120419
1984-02-07;2.231413613
1984-02-07;2.19895288
1984-02-16;5.02617801
1984-02-25;2.408376963
1984-02-28;1.65217801
1984-02-29;1.151832461
1984-03-06;1.31968377
1984-03-06;2.701570681
1984-03-06;2.544502618
1984-03-07;2.356020942
1984-03-07;1.256544503
1984-03-08;1.67539267
1984-03-09;1.361256545
1984-03-12;3.87434555
1984-03-15;1.769633508
1984-03-17;1.118324607
1984-03-17;2.209424084
1984-03-19;1.098429319
1984-03-25;1.151832461
1984-03-27;2.963749738
1984-03-28;11.62303665
1984-03-28;14.29319372
1984-04-03;1.287958115
1984-04-07;1.465968586
1984-04-14;13.62303665
1984-04-19;1.129842932
1984-04-19;2.403141361
1984-04-22;5.445026178
1984-04-25;1.046910995
1984-04-26;1.059162304
1984-04-26;2.094240838
1984-04-26;1.855497382
1984-04-27;1.570680628
1984-04-27;1.937172775
1984-04-30;2.203141361
1984-05-02;2.460732984
1984-05-12;1.427616754
1984-05-12;1.735078534
1984-05-13;4.083769634
1984-05-14;2.157068063
1984-05-19;1.465968586
1984-05-20;1.168586387
1984-05-20;1.22513089
1984-05-29;1.151832461
1984-06-01;3.769633508
1984-06-01;1.095052356
1984-06-04;1.204188482
1984-06-07;2.617801047
1984-06-08;1.871204188
1984-06-08;4.397905759
1984-06-08;4.607329843
1984-06-11;18.64648377
1984-06-14;1.047120419
1984-06-18;1.047120419
1984-06-19;1.047120419
1984-06-19;15.81151832
1984-06-22;1.989528796
1984-06-24;1.047120419
1984-06-24;1.256544503
1984-07-01;1.151832461
1984-07-05;1.073298429
1984-07-09;1.194420942
1984-07-12;1.064361257
1984-07-12;1.384293194
1984-07-12;1.130890052
1984-07-15;1.151832461
1984-07-17;1.793717277
1984-07-20;1.141361257
1984-07-23;1.632905759
1984-07-27;2.643979058
1984-08-01;1.286896335
1984-08-01;4.45026178
1984-08-01;1.236649215
1984-08-02;1.959162304
1984-08-04;1.191050262
1984-08-05;1.314433508
1984-08-07;1.989528796
1984-08-09;1.649570681
1984-08-10;2.722513089
1984-08-11;1.132420942
1984-08-16;1.780104712
1984-08-17;1.607329843
1984-08-20;1.204188482
1984-08-20;1.073298429
1984-08-20;1.09947644
1984-08-21;1.406282723
1984-08-21;1.965445026
1984-08-26;3.363190576
1984-08-28;1.570680628
1984-08-28;1.256544503
1984-08-29;2.762440838
1984-08-31;1.066485864
1984-08-31;1.377950785
1984-09-02;1.300253403
1984-09-04;1.319371728
1984-09-05;3.403141361
1984-09-09;1.361256545
1984-09-09;1.178010471
1984-09-10;4.293193717
1984-09-11;4.808376963
1984-09-11;1.09947644
1984-09-14;2.219895288
1984-09-15;2.617801047
1984-09-18;1.434496335
1984-09-23;1.047120419
1984-09-26;2.513089005
1984-09-26;1.621459686
1984-09-28;19.16230366
1984-09-30;1.570680628
1984-10-01;2.303664921
1984-10-03;1.845554974
1984-10-04;1.047120419
1984-10-04;1.989528796
1984-10-06;2.827225131
1984-10-08;1.256544503
1984-10-09;3.979057592
1984-10-10;1.361256545
1984-10-10;1.633507853
1984-10-24;18.84816754
1984-10-28;1.12565445
1984-10-29;5.30557801
1984-11-01;1.727748691
1984-11-02;1.165342408
1984-11-04;1.151832461
1984-11-05;1.256544503
1984-11-07;3.568586387
1984-11-07;7.235602094
1984-11-07;1.570680628
1984-11-10;7.643979058
1984-11-13;2.122003141
1984-11-14;2.931937173
1984-11-15;1.287958115
1984-11-17;1.06800733
1984-11-17;1.27561466
1984-11-23;1.623036649
1984-11-23;2.670157068
1984-12-02;1.256544503
1984-12-03;1.103048168
1984-12-03;1.204188482
1984-12-08;1.151832461
1984-12-08;1.884816754
1984-12-10;7.539267016
1984-12-11;1.09947644
1984-12-12;1.570680628
1984-12-13;2.670157068
1984-12-17;1.151832461
1984-12-19;3.87434555
1984-12-22;5.02617801
1984-12-28;1.780104712
1984-12-29;4.764397906
1984-12-31;1.151832461
1985-01-01;1.5
1985-01-03;1.251
1985-01-04;1.03
1985-01-05;1.05
1985-01-05;1.9
1985-01-05;1.1
1985-01-06;1.88175
1985-01-07;1.007
1985-01-07;1.63
1985-01-07;1.025
1985-01-08;1.007274
1985-01-08;3.5
1985-01-10;2.9
1985-01-11;2.463137
1985-01-11;4.625
1985-01-11;1.03
1985-01-11;1.4
1985-01-12;1.077075
1985-01-12;1.32
1985-01-13;2.6
1985-01-13;1.08
1985-01-14;1.517
1985-01-16;1.07
1985-01-17;2.256823
1985-01-20;1.788413
1985-01-22;1.278896
1985-01-24;4.609074
1985-01-25;3.183
1985-01-28;1.2
1985-01-28;2.743
1985-01-30;3
1985-01-31;1.008938
1985-02-08;1.004084
1985-02-10;1.85
1985-02-11;1.520994
1985-02-11;1.250089
1985-02-11;1
1985-02-12;1.956
1985-02-14;1.05
1985-02-15;2.779
1985-02-16;22.137567
1985-02-17;1.445
1985-02-17;1.0051
1985-02-19;1
1985-02-19;1
1985-02-20;16.3
1985-02-20;1.11
1985-02-21;1.475
1985-02-21;1.049873
1985-02-23;1.753542
1985-02-25;6.143355
1985-02-27;1.23
1985-03-03;1.939
1985-03-04;46.5
1985-03-05;1.241472
1985-03-11;3.4
1985-03-12;1
1985-03-17;6.2
1985-03-19;1.966237
1985-03-20;2.17
1985-03-22;1.296
1985-03-23;1.555
1985-03-27;1.15
1985-03-28;1.33
1985-03-28;4.124285
1985-04-11;1.394239
1985-04-12;4.761228
1985-04-14;4.868852
1985-04-19;4
1985-04-21;1.6
1985-04-24;7.085
1985-04-26;1.765054
1985-04-27;6.306654
1985-04-28;1.25
1985-04-28;1.2
1985-04-29;1.226412
1985-04-30;6.563
1985-04-30;4.17
1985-05-02;2.68
1985-05-02;1.075
1985-05-04;1.932957
1985-05-05;1.375
1985-05-06;1.25
1985-05-07;3.38
1985-05-09;1.3801
1985-05-14;2.283
1985-05-15;2.35
1985-05-26;3.15
1985-05-27;3.35
1985-05-28;4
1985-05-28;10.5
1985-05-29;2.89
1985-05-31;5.5
1985-05-31;2.8
1985-06-01;1.26
1985-06-02;1.1
1985-06-06;2.126759
1985-06-10;2.2
1985-06-11;1.07
1985-06-12;9.2
1985-06-13;1.5
1985-06-15;1.65
1985-06-16;12.225
1985-06-18;1.4
1985-06-19;14.239
1985-06-22;1.085
1985-06-22;1.05
1985-06-27;2.65
1985-06-27;2.123
1985-06-28;5.2
1985-06-28;1.825
1985-06-29;1.1
1985-07-02;1
1985-07-02;2.065
1985-07-06;1.2774
1985-07-06;1.195
1985-07-07;1.2
1985-07-07;1.1
1985-07-08;1.4
1985-07-13;1.585
1985-07-15;3.265042
1985-07-15;1.2
1985-07-16;2.433
1985-07-22;1.6
1985-07-28;2
1985-08-02;4.76
1985-08-03;1.165
1985-08-04;1.372
1985-08-06;1.2
1985-08-06;1.65
1985-08-06;1.7
1985-08-07;1.3
1985-08-14;1.1
1985-08-16;1.1
1985-08-19;1.241012
1985-08-19;1.005
1985-08-20;3.282
1985-08-21;1.05
1985-08-23;57.410636
1985-08-24;1.088
1985-08-24;1.118
1985-08-25;2.67
1985-08-28;1.0749
1985-08-30;2.141
1985-08-31;5.85
1985-09-02;14.3
1985-09-04;1.971
1985-09-07;1.7
1985-09-08;6.167
1985-09-11;1.05
1985-09-12;1.156058
1985-09-13;3.58215
1985-09-15;13.5
1985-09-19;1.2015
1985-09-19;1.65
1985-09-23;1.3776
1985-09-24;3.8
1985-09-25;1.3255
1985-09-25;4.05
1985-09-29;6.7
1985-10-02;1.16
1985-10-03;1.5
1985-10-06;1.06
1985-10-10;1.491287
1985-10-11;1.981813
1985-10-12;1.5
1985-10-12;3.21436
1985-10-12;4.1
1985-10-13;1
1985-10-16;10.7
1985-10-17;19.4
1985-10-17;1.605603
1985-10-18;1.132
1985-10-18;2.255
1985-10-19;2.02
1985-10-20;1.231
1985-10-22;4.1
1985-10-25;7.23
1985-10-26;1.85
1985-10-29;1
1985-10-30;2.56
1985-11-05;1.553
1985-11-05;1.7
1985-11-06;1.045472
1985-11-06;1.054
1985-11-10;1
1985-11-13;8.71
1985-11-16;1.5
1985-11-17;1.5
1985-11-18;1.26106
1985-11-19;1.055
1985-11-27;1.282
1985-11-29;1.3
1985-12-03;1.3
1985-12-04;1.422078
1985-12-06;1
1985-12-07;1.2
1985-12-08;1.85
1985-12-10;1.18
1985-12-11;1.043
1985-12-11;1
1985-12-11;1.6
1985-12-11;5.6
1985-12-16;1.8
1985-12-18;2.5
1985-12-20;1.75
1985-12-29;1.45
1986-01-02;1.460945034
1986-01-03;1.157184185
1986-01-04;1.495756991
1986-01-05;5.207328833
1986-01-07;3.683702989
1986-01-09;1.446480231
1986-01-11;1.038657666
1986-01-12;1.253616201
1986-01-13;1.06075217
1986-01-13;1.398264224
1986-01-14;1.398264224
1986-01-14;2.410800386
1986-01-16;1.441851495
1986-01-16;1.639344262
1986-01-19;1.050626808
1986-01-21;1.755062681
1986-01-24;4.484088717
1986-01-27;1.677917068
1986-01-27;1.06075217
1986-01-30;1
1986-01-31;3.082931533
1986-02-01;1.277724204
1986-02-04;1.207328833
1986-02-04;1.928640309
1986-02-05;1.00289296
1986-02-05;1.089681774
1986-02-07;1.758129219
1986-02-11;1.446480231
1986-02-12;1.591128255
1986-02-12;1.108968177
1986-02-13;1.023109932
1986-02-14;2.00096432
1986-02-15;1.314310511
1986-02-16;2.068466731
1986-02-16;3.085824494
1986-02-18;6.798457088
1986-02-19;1.639344262
1986-02-21;1.639344262
1986-02-28;1.229508197
1986-02-28;1.735776278
1986-02-28;2.823416586
1986-03-01;2.507232401
1986-03-03;1.866739634
1986-03-03;4.43587271
1986-03-04;1.928640309
1986-03-04;1.06075217
1986-03-05;1.741465767
1986-03-07;3.085824494
1986-03-08;12.05400193
1986-03-08;1.157184185
1986-03-09;2.410800386
1986-03-10;1.558341369
1986-03-16;1.350048216
1986-03-19;3.182256509
1986-03-19;1.900663452
1986-03-19;2.31436837
1986-03-22;3.707810993
1986-03-23;3.206364513
1986-03-30;1.06075217
1986-04-01;1.446480231
1986-04-02;1.157184185
1986-04-02;5.207328833
1986-04-02;3.664416586
1986-04-03;1.659228544
1986-04-03;2.507232401
1986-04-07;3.191899711
1986-04-07;16.44165863
1986-04-08;1.082931533
1986-04-08;2.410800386
1986-04-10;3.66924783
1986-04-10;1.181292189
1986-04-10;29.02603664
1986-04-11;4.918032787
1986-04-11;1.148505304
1986-04-16;1.542912247
1986-04-17;1.567020251
1986-04-18;1.253616201
1986-04-19;1.542912247
1986-04-22;1.832208293
1986-04-24;1.663452266
1986-04-26;1.277724204
1986-04-27;2.4435892
1986-04-28;2.892960463
1986-04-30;3.134040501
1986-05-01;2.603664417
1986-05-02;3.789778206
1986-05-03;1.902603664
1986-05-03;3.770438766
1986-05-05;1.166827387
1986-05-06;1.18900675
1986-05-07;1.321118611
1986-05-12;1.735776278
1986-05-12;12.53616201
1986-05-13;1.321118611
1986-05-15;1.157184185
1986-05-16;5.785920926
1986-05-21;1.832208293
1986-05-21;1.388979749
1986-05-22;1.205400193
1986-05-24;1.108968177
1986-05-28;1.729357763
1986-05-30;1.639344262
1986-06-01;1.087648023
1986-06-06;1.542912247
1986-06-09;1.432015429
1986-06-10;2.169720347
1986-06-14;5.400192864
1986-06-20;5.785920926
1986-06-22;1.350048216
1986-06-22;6.075216972
1986-06-26;18.32208293
1986-06-26;1.157184185
1986-06-29;1.591128255
1986-06-30;1.928640309
1986-06-30;1.446480231
1986-06-30;1.677917068
1986-06-30;1.157184185
1986-07-01;1.010998071
1986-07-01;2.844744455
1986-07-02;1.735776278
1986-07-04;1.150433944
1986-07-05;2.507232401
1986-07-06;2.892960463
1986-07-08;2.097396336
1986-07-11;2.086499518
1986-07-13;1.446480231
1986-07-15;2.150289296
1986-07-17;1.122092575
1986-07-18;1.658630665
1986-07-20;1.697203472
1986-07-22;1.591128255
1986-07-22;5.785920926
1986-07-22;1.055930569
1986-07-30;1.446480231
1986-07-31;2.892960463
1986-08-01;1.157184185
1986-08-01;1.120540019
1986-08-03;1.157184185
1986-08-03;1.203375121
1986-08-04;5.593056895
1986-08-04;1.432979749
1986-08-04;1.264320154
1986-08-05;1.399228544
1986-08-07;1.147703954
1986-08-13;1.23823433
1986-08-15;1.759884282
1986-08-16;1.542912247
1986-08-16;2.121504339
1986-08-17;1.542912247
1986-08-18;1.253616201
1986-08-18;1.928640309
1986-08-22;1.330761813
1986-08-28;1.928640309
1986-08-30;1.108968177
1986-09-02;2.025072324
1986-09-03;8.678881389
1986-09-07;2.217936355
1986-09-07;1.301832208
1986-09-08;1.123896818
1986-09-09;1.727579556
1986-09-09;1.37415622
1986-09-10;1.00695757
1986-09-12;8.100289296
1986-09-13;1.00289296
1986-09-13;1.171648987
1986-09-16;10.27000964
1986-09-17;1.271395371
1986-09-17;2.892960463
1986-09-18;3.345232401
1986-09-20;1.06075217
1986-09-20;2.892960463
1986-09-22;1.121504339
1986-09-24;1.697203472
1986-09-24;1.716489875
1986-09-25;1.1024108
1986-09-26;17.06846673
1986-09-27;2.603664417
1986-09-28;1.253616201
1986-09-28;3.567984571
1986-09-30;1.494696239
1986-10-03;1.639344262
1986-10-03;1.722275796
1986-10-03;2.351012536
1986-10-03;1.68756027
1986-10-03;1.470588235
1986-10-06;2.31436837
1986-10-06;1.253616201
1986-10-07;1.144429122
1986-10-11;1.205400193
1986-10-15;2.602700096
1986-10-16;2.941793635
1986-10-17;2.181292189
1986-10-19;1.446480231
1986-10-23;4.821600771
1986-10-26;3.837994214
1986-10-26;1.350048216
1986-10-28;1.542912247
1986-10-28;1.157184185
1986-10-29;1.928640309
1986-10-30;2.242044359
1986-10-30;1.263259402
1986-10-30;1.012536162
1986-10-31;1.928640309
1986-11-03;1.137897782
1986-11-03;1.037608486
1986-11-04;1.253616201
1986-11-06;2.18756027
1986-11-07;4.767295082
1986-11-08;1.542912247
1986-11-09;1.06075217
1986-11-10;2.75216972
1986-11-24;3.182256509
1986-11-24;1.446480231
1986-11-26;1.928640309
1986-11-29;1.591128255
1986-12-01;3.085824494
1986-12-02;4.098360656
1986-12-03;1.880424301
1986-12-04;2.410800386
1986-12-04;1.012536162
1986-12-05;1.928640309
1986-12-07;1.06075217
1986-12-12;1.639344262
1986-12-13;1.128254581
1986-12-13;1.446480231
1986-12-14;1.446480231
1986-12-18;2.892960463
1986-12-18;1.388621022
1986-12-21;1.639344262
1986-12-22;2.022179364
1986-12-23;1.705159113
1986-12-24;1.051108968
1986-12-25;17.74349084
1986-12-27;1.157184185
1986-12-28;3.857280617
1986-12-29;1.705159113
1986-12-29;1.350048216
1986-12-30;5.496624879
1987-01-01;1.023191095
1987-01-01;1.304267161
1987-01-02;1.066790353
1987-01-05;1.80890538
1987-01-07;3.246753247
1987-01-08;1.417439703
1987-01-09;2.490723562
1987-01-09;1.011131725
1987-01-09;2.971243043
1987-01-10;3.004638219
1987-01-11;1.420222635
1987-01-11;2.233766234
1987-01-11;1.397959184
1987-01-11;2.319109462
1987-01-11;2.852504638
1987-01-12;1.994434137
1987-01-12;1.742115028
1987-01-13;1.646567718
1987-01-14;2.97309833
1987-01-14;1.113172542
1987-01-16;1.484230056
1987-01-17;1.113172542
1987-01-18;1.149350649
1987-01-19;3.184601113
1987-01-19;2.226345083
1987-01-19;3.896103896
1987-01-21;1.437847866
1987-01-21;2.368274583
1987-01-22;1.021335807
1987-01-22;1.020408163
1987-01-24;2.736549165
1987-01-24;23.283859
1987-01-25;1.391465677
1987-01-25;1.391465677
1987-01-26;2.040816327
1987-01-26;1.020408163
1987-01-30;2.153061224
1987-02-02;1.066790353
1987-02-06;1.391465677
1987-02-06;1.459183673
1987-02-09;4.990723562
1987-02-09;1.057513915
1987-02-10;4.128014842
1987-02-11;1.076994434
1987-02-12;1.502782931
1987-02-13;1.021335807
1987-02-15;4.5
1987-02-16;3.107606679
1987-02-18;2.254174397
1987-02-19;1.757884972
1987-02-21;1.398886827
1987-02-22;1.252319109
1987-02-25;4.498144712
1987-02-27;2.41187384
1987-03-02;2.105751391
1987-03-02;3.188311688
1987-03-05;3.684601113
1987-03-07;1.576994434
1987-03-08;1.651205937
1987-03-08;2.523191095
1987-03-11;1.669758813
1987-03-12;1.90445269
1987-03-20;1.85528757
1987-03-22;1.623376623
1987-03-26;1.85528757
1987-03-28;2.319109462
1987-03-29;1.437847866
1987-03-30;3.038033395
1987-03-30;1.256957328
1987-04-01;1.244897959
1987-04-01;3.896103896
1987-04-02;1.113172542
1987-04-04;1.280148423
1987-04-05;6.586270872
1987-04-06;1.085343228
1987-04-06;1.606679035
1987-04-07;1.298701299
1987-04-09;1.762523191
1987-04-13;1.113172542
1987-04-17;1.250463822
1987-04-17;1.235621521
1987-04-18;1.113172542
1987-04-24;4.823747681
1987-04-24;2.425788497
1987-04-25;3.147495362
1987-04-26;1.618738404
1987-04-27;1.521335807
1987-04-28;1.85528757
1987-04-29;7.142857143
1987-04-30;1.217068646
1987-05-02;1.113172542
1987-05-04;1.576994434
1987-05-06;1.623376623
1987-05-06;1.762523191
1987-05-13;1.391465677
1987-05-14;1.159554731
1987-05-14;11.13172542
1987-05-16;1.113172542
1987-05-22;1.85528757
1987-05-23;1.669758813
1987-05-23;12.52319109
1987-05-24;2.040816327
1987-05-28;5.751391466
1987-05-28;5.565862709
1987-05-29;5.751391466
1987-05-30;1.113172542
1987-06-01;4.174397032
1987-06-03;8.812615955
1987-06-03;3.780148423
1987-06-05;32.46753247
1987-06-06;2.087198516
1987-06-08;3.293135436
1987-06-08;3.339517625
1987-06-10;1.390538033
1987-06-11;1.623376623
1987-06-13;4.452690167
1987-06-14;1.05380334
1987-06-16;1.391465677
1987-06-24;1.391465677
1987-06-25;1.669758813
1987-06-25;1.690166976
1987-07-01;1.317254174
1987-07-06;4.406307978
1987-07-06;1.391465677
1987-07-06;2.133580705
1987-07-08;1.20593692
1987-07-12;1.363636364
1987-07-15;2.397959184
1987-07-17;3.246753247
1987-07-19;1.069573284
1987-07-28;2.875695733
1987-07-30;1.020408163
1987-07-30;1.113172542
1987-08-04;1.816326531
1987-08-06;1.356215213
1987-08-07;1.484230056
1987-08-07;2.782931354
1987-08-11;1.614100186
1987-08-17;29.03710575
1987-08-18;18.5528757
1987-08-22;2.504638219
1987-08-24;3.06122449
1987-08-25;1.16419295
1987-09-02;1.113172542
1987-09-06;1.363636364
1987-09-09;1.07606679
1987-09-12;1.512059369
1987-09-15;1.847866419
1987-09-15;16.88311688
1987-09-16;1.391465677
1987-09-18;1.901669759
1987-09-18;1.448979592
1987-09-19;1.768089054
1987-09-19;1.020408163
1987-09-21;1.579777365
1987-09-22;1.20593692
1987-09-24;1.516697588
1987-09-24;1.020408163
1987-09-24;1.85528757
1987-09-27;1.20593692
1987-09-28;1.020408163
1987-09-30;1.224489796
1987-10-03;1.004638219
1987-10-03;7.792207792
1987-10-03;1.349721707
1987-10-05;27.82931354
1987-10-05;4.174397032
1987-10-06;5.899814471
1987-10-08;1.006493506
1987-10-11;1.50742115
1987-10-11;1.20593692
1987-10-12;1.113172542
1987-10-12;12.0593692
1987-10-14;2.319109462
1987-10-16;3.339517625
1987-10-17;1.159554731
1987-10-18;2.372912801
1987-10-19;1.096474954
1987-10-20;1.104823748
1987-10-22;1.252319109
1987-10-24;3.650278293
1987-10-25;1.391465677
1987-10-26;1.298701299
1987-10-27;6.307977737
1987-10-30;9.461966605
1987-10-30;2.875695733
1987-10-31;1.683673469
1987-11-01;3.481447124
1987-11-01;7.606679035
1987-11-03;1.391465677
1987-11-05;3.896103896
1987-11-06;1.125231911
1987-11-07;11.59554731
1987-11-08;3.076994434
1987-11-11;2.115027829
1987-11-14;1.85528757
1987-11-15;1.756957328
1987-11-16;1.484230056
1987-11-18;3.06122449
1987-11-21;1.576994434
1987-11-29;1.734693878
1987-12-02;1.762523191
1987-12-02;1.289424861
1987-12-06;1.468460111
1987-12-07;5.194805195
1987-12-07;1.948051948
1987-12-09;4.118738404
1987-12-09;4.962894249
1987-12-12;5.102040816
1987-12-12;1.345083488
1987-12-12;1.075139147
1987-12-13;7.101113173
1987-12-13;2.070500928
1987-12-14;2.41187384
1987-12-14;1.237476809
1987-12-16;2.040816327
1987-12-17;1.298701299
1987-12-17;2.894248609
1987-12-17;1.066790353
1987-12-19;1.391465677
1987-12-19;1.530612245
1987-12-20;1.048237477
1987-12-23;1.178107607
1987-12-29;1.345083488
1987-12-30;2.040816327
1987-12-31;1.669758813
1988-01-01;1.618456078
1988-01-01;1.027506655
1988-01-03;16.41526176
1988-01-04;1.508429459
1988-01-08;1.685891748
1988-01-10;1.330967169
1988-01-15;2.30700976
1988-01-19;1.92014197
1988-01-20;3.771073647
1988-01-21;1.15350488
1988-01-22;5.094055013
1988-01-23;2.956521739
1988-01-23;1.798580302
1988-01-23;1.552795031
1988-01-25;1.330967169
1988-01-26;1.887311446
1988-01-29;1.774622893
1988-01-30;1.330967169
1988-02-01;6.015971606
1988-02-06;3.261756877
1988-02-09;1.166814552
1988-02-10;2.520851819
1988-02-11;1.293700089
1988-02-14;18.42413487
1988-02-17;1.064773736
1988-02-19;1.955634428
1988-02-19;2.040816327
1988-02-21;7.985803017
1988-02-22;3.49689441
1988-02-29;6.511091393
1988-02-29;1.259982254
1988-03-02;1.853593611
1988-03-03;1.552795031
1988-03-07;1.267080745
1988-03-08;2.129547471
1988-03-09;2.706299911
1988-03-12;1.552795031
1988-03-12;1.330967169
1988-03-14;1.467613132
1988-03-14;2.30700976
1988-03-18;1.90771961
1988-03-19;1.242236025
1988-03-21;1.211180124
1988-03-24;1.996450754
1988-03-25;38.15439219
1988-04-06;2.129547471
1988-04-09;2.48447205
1988-04-12;1.690328305
1988-04-13;1.765749778
1988-04-14;1.538598048
1988-04-14;1.685891748
1988-04-16;1.242236025
1988-04-19;1.330967169
1988-04-20;1.982253771
1988-04-20;1.863354037
1988-04-23;1.885536823
1988-04-24;5.210292813
1988-04-24;1.15350488
1988-04-24;1.788819876
1988-04-26;5.767524401
1988-04-26;1.330967169
1988-04-26;6.832298137
1988-04-29;1.36202307
1988-04-29;3.549245785
1988-04-30;1.375332742
1988-04-30;2.30700976
1988-05-08;2.661934339
1988-05-08;7.542147294
1988-05-09;5.681455191
1988-05-09;9.228039042
1988-05-11;1.080745342
1988-05-11;1.612244898
1988-05-12;1.242236025
1988-05-12;1.356699201
1988-05-12;1.508429459
1988-05-13;2.30700976
1988-05-15;1.375332742
1988-05-16;1.552795031
1988-05-17;27.33806566
1988-05-19;1.237799468
1988-05-23;1.192546584
1988-05-25;1.277728483
1988-05-26;1.330967169
1988-05-26;7.542147294
1988-05-27;2.223602484
1988-05-27;1.15350488
1988-05-29;1.787932564
1988-05-29;1.437444543
1988-05-29;6.140195209
1988-05-30;1.616681455
1988-05-31;2.094055013
1988-05-31;11.80124224
1988-06-01;2.972493345
1988-06-03;1.952085182
1988-06-03;2.488021295
1988-06-05;3.992901508
1988-06-05;2.222715173
1988-06-05;25.28837622
1988-06-06;2.440106477
1988-06-06;3.726708075
1988-06-06;3.752440106
1988-06-10;1.641526176
1988-06-13;1.242236025
1988-06-15;1.242236025
1988-06-16;4.436557232
1988-06-21;1.064773736
1988-06-21;1.197870453
1988-06-24;2.395740905
1988-06-24;10.20408163
1988-06-29;1.774622893
1988-06-29;2.320319432
1988-06-29;2.30700976
1988-07-01;1.087843833
1988-07-01;1.142857143
1988-07-01;1.15350488
1988-07-01;1.866903283
1988-07-02;2.48447205
1988-07-04;2.573203194
1988-07-05;1.121561668
1988-07-06;5.989352263
1988-07-08;2.50931677
1988-07-09;1.328305235
1988-07-12;1.045252884
1988-07-14;1.387755102
1988-07-16;1.15350488
1988-07-18;1.286601597
1988-07-18;1.047027507
1988-07-19;4.614019521
1988-07-19;20.45252884
1988-07-19;2.218278616
1988-07-20;5.323868678
1988-07-26;1.216503993
1988-07-30;7.098491571
1988-08-08;1.330967169
1988-08-09;1.774622893
1988-08-10;3.01242236
1988-08-12;47.01952085
1988-08-15;1.100266193
1988-08-18;2.309671695
1988-08-21;1.145519077
1988-08-21;1.376220053
1988-08-22;1.142857143
1988-08-24;2.896184561
1988-08-24;1.774622893
1988-08-29;1.354037267
1988-09-01;24.57852706
1988-09-04;2.261756877
1988-09-05;4.436557232
1988-09-05;1.348713398
1988-09-06;15.88287489
1988-09-06;1.020408163
1988-09-08;1.262644188
1988-09-08;2.661934339
1988-09-09;1.051464064
1988-09-11;1.952085182
1988-09-14;1.357586513
1988-09-17;1.641526176
1988-09-18;7.542147294
1988-09-19;2.218278616
1988-09-19;5.501330967
1988-09-20;2.211180124
1988-09-22;1.477373558
1988-09-27;1.641526176
1988-09-27;1.020408163
1988-10-01;3.283052351
1988-10-04;25.9538598
1988-10-04;1.064773736
1988-10-08;4.081632653
1988-10-08;2.28837622
1988-10-17;1.100266193
1988-10-20;2.838509317
1988-10-20;3.194321207
1988-10-23;1.597160603
1988-10-28;1.774622893
1988-10-29;1.721384206
1988-11-02;2.333629104
1988-11-03;4.494232476
1988-11-05;8.873114463
1988-11-05;2.676131322
1988-11-07;1.1472937
1988-11-07;1.330967169
1988-11-10;1.508429459
1988-11-11;1.242236025
1988-11-14;1.109139308
1988-11-18;6.211180124
1988-11-19;1.73025732
1988-11-19;1.15350488
1988-11-20;1.055900621
1988-11-21;1.879325643
1988-11-23;1.401952085
1988-11-26;1.419698314
1988-11-27;2.715173026
1988-12-02;4.081632653
1988-12-02;1.752440106
1988-12-05;1.088731145
1988-12-06;3.549245785
1988-12-06;1.283052351
1988-12-08;2.173913043
1988-12-09;2.839396628
1988-12-12;3.371783496
1988-12-12;1.330967169
1988-12-14;4.614019521
1988-12-15;10.82519965
1988-12-16;5.767524401
1988-12-17;1.109139308
1988-12-17;31.05590062
1988-12-18;3.105590062
1988-12-18;1.330967169
1988-12-25;1.685891748
1988-12-26;3.992901508
1989-01-02;1.84081287
1989-01-03;1.282811177
1989-01-05;5.376799323
1989-01-09;1.361558002
1989-01-11;1.058425064
1989-01-11;1.00338696
1989-01-14;2.963590178
1989-01-15;1.270956816
1989-01-15;1.905165114
1989-01-17;4.233700254
1989-01-17;1.947502117
1989-01-19;2.911092295
1989-01-20;24.55546147
1989-01-21;1.227773074
1989-01-24;1.219305673
1989-01-24;3.268416596
1989-01-26;4.82641829
1989-01-26;1.6596105
1989-01-29;1.214225233
1989-01-31;1.016088061
1989-02-02;1.523285351
1989-02-02;2.684165961
1989-02-05;1.562235394
1989-02-06;1.121083827
1989-02-13;1.014394581
1989-02-14;42.09144793
1989-02-14;1.693480102
1989-02-14;1.640135478
1989-02-15;1.947502117
1989-02-15;4.657070279
1989-02-15;1.058425064
1989-02-18;1.116003387
1989-02-22;1.524132091
1989-02-23;1.392040644
1989-02-27;1.227773074
1989-03-04;14.39458086
1989-03-06;1.130397968
1989-03-07;1.744284505
1989-03-07;1.947502117
1989-03-08;1.185436071
1989-03-14;2.565622354
1989-03-16;1.148179509
1989-03-17;2.176121931
1989-03-19;1.33107536
1989-03-23;20.86367485
1989-03-23;1.894157494
1989-03-23;2.116850127
1989-03-24;1.651143099
1989-03-27;1.058425064
1989-03-27;9.229466554
1989-04-01;1.143099069
1989-04-03;5.927180356
1989-04-04;1.198137172
1989-04-05;1.774767146
1989-04-06;1.875529213
1989-04-09;5.66469094
1989-04-12;1.100762066
1989-04-14;4.149026249
1989-04-16;1.283657917
1989-04-17;1.058425064
1989-04-19;2.201524132
1989-04-20;1.289585097
1989-04-21;1.354784081
1989-04-23;4.416596105
1989-04-24;1.270110076
1989-04-26;14.39458086
1989-04-28;2.686706181
1989-04-28;1.693480102
1989-04-28;1.624047417
1989-04-30;3.386960203
1989-05-02;4.064352244
1989-05-03;1.301439458
1989-05-04;1.270110076
1989-05-06;1.553767993
1989-05-06;1.476714649
1989-05-07;1.189669771
1989-05-11;1.016088061
1989-05-11;10.13717189
1989-05-13;2.66299746
1989-05-13;1.045723963
1989-05-15;3.810330229
1989-05-18;1.270110076
1989-05-19;1.693480102
1989-05-21;1.481795089
1989-05-22;1.524132091
1989-05-23;2.963590178
1989-05-24;1.181202371
1989-05-24;1.565622354
1989-05-24;3.048264183
1989-05-25;3.33784928
1989-05-25;1.457239627
1989-05-26;1.016088061
1989-05-29;4.301439458
1989-06-02;2.032176122
1989-06-04;4.022015241
1989-06-05;1.121930567
1989-06-08;1.879762913
1989-06-11;2.201524132
1989-06-11;1.270110076
1989-06-12;1.734123624
1989-06-13;1.16850127
1989-06-13;6.773920406
1989-06-16;1.176968671
1989-06-17;4.50042337
1989-06-17;2.213378493
1989-06-21;1.016088061
1989-06-21;1.862828112
1989-06-23;2.201524132
1989-06-27;1.219305673
1989-06-27;5.715495343
1989-06-28;6.435224386
1989-06-28;5.50381033
1989-06-28;2.540220152
1989-06-28;5.080440305
1989-06-29;5.080440305
1989-07-03;2.032176122
1989-07-05;4.091447925
1989-07-06;1.901778154
1989-07-08;4.82641829
1989-07-10;2.132091448
1989-07-10;1.569856054
1989-07-13;1.253175275
1989-07-18;1.270110076
1989-07-18;3.099068586
1989-07-18;1.910245555
1989-07-20;1.295512278
1989-07-22;2.540220152
1989-07-23;2.487722269
1989-07-24;2.286198137
1989-07-24;1.405588484
1989-07-25;1.102455546
1989-07-26;1.016088061
1989-07-28;3.852667231
1989-07-28;12.80186283
1989-07-28;1.608806097
1989-07-30;1.524132091
1989-07-31;1.972904318
1989-08-02;1.270110076
1989-08-03;1.784928027
1989-08-04;16.08806097
1989-08-04;1.439458086
1989-08-04;152.4132091
1989-08-05;1.439458086
1989-08-05;3.130397968
1989-08-07;6.287044877
1989-08-08;2.777307367
1989-08-09;1.033022862
1989-08-10;1.016088061
1989-08-11;14.01354784
1989-08-18;1.270110076
1989-08-22;1.215071973
1989-08-23;8.367485182
1989-08-23;1.058425064
1989-08-23;1.117696867
1989-08-24;3.810330229
1989-08-25;1.100762066
1989-08-26;1.520745131
1989-08-27;1.487722269
1989-08-27;3.386960203
1989-08-28;4.657070279
1989-08-28;2.277730737
1989-08-29;1.041490262
1989-08-30;1.176968671
1989-08-30;1.524132091
1989-08-31;1.288738357
1989-09-04;1.270110076
1989-09-04;3.773920406
1989-09-09;1.198137172
1989-09-10;2.352243861
1989-09-11;1.066892464
1989-09-11;1.066892464
1989-09-11;9.398814564
1989-09-11;1.270110076
1989-09-14;5.770533446
1989-09-14;1.049957663
1989-09-14;1.536833192
1989-09-16;1.083827265
1989-09-18;1.879762913
1989-09-21;1.278577477
1989-09-22;1.354784081
1989-09-24;3.979678239
1989-09-25;5.249788315
1989-09-25;1.565622354
1989-09-25;12.70110076
1989-09-26;4.572396274
1989-09-27;2.921253175
1989-09-28;1.778154107
1989-09-29;1.524132091
1989-09-29;11.6850127
1989-10-01;2.116850127
1989-10-02;1.733276884
1989-10-02;2.540220152
1989-10-07;1.176121931
1989-10-20;6.011854361
1989-10-22;32.38780694
1989-10-23;10.58425064
1989-10-24;1.642675699
1989-10-24;3.386960203
1989-10-26;1.016088061
1989-11-10;4.868755292
1989-11-11;1.528365792
1989-11-12;1.100762066
1989-11-13;1.079593565
1989-11-13;1.693480102
1989-11-14;18.62828112
1989-11-15;1.731583404
1989-11-16;3.810330229
1989-11-16;1.100762066
1989-11-19;1.83742591
1989-11-20;1.016088061
1989-11-29;4.657070279
1989-11-29;1.314987299
1989-11-30;1.524132091
1989-12-03;2.286198137
1989-12-03;1.016088061
1989-12-05;1.885690093
1989-12-06;1.311600339
1989-12-06;1.227773074
1989-12-08;1.100762066
1989-12-09;3.386960203
1989-12-13;1.634208298
1989-12-14;1.013547841
1989-12-15;1.726502964
1989-12-18;3.810330229
1989-12-18;2.456392887
1989-12-19;2.686706181
1989-12-20;1.00338696
1989-12-22;1.015241321
1989-12-25;1.862828112
1989-12-29;1.083827265
1989-12-30;2.116850127
1989-12-30;4.149026249
1989-12-31;1.016088061
1989-12-31;1.016088061
1989-12-31;1.176968671
1990-01-01;1.877062706
1990-01-06;1.268151815
1990-01-08;1.356435644
1990-01-10;7.425742574
1990-01-12;1.134488449
1990-01-13;1.329207921
1990-01-17;1.287128713
1990-01-19;1.565181518
1990-01-20;1.072607261
1990-01-20;2.310231023
1990-01-24;1.094059406
1990-01-25;2.617161716
1990-01-26;1.99009901
1990-01-26;1.987623762
1990-01-30;1.155940594
1990-01-31;3.378712871
1990-02-05;1.2169967
1990-02-07;1.951320132
1990-02-08;4.125412541
1990-02-09;1.402640264
1990-02-09;1.02640264
1990-02-11;1.707920792
1990-02-12;1.237623762
1990-02-12;3.300330033
1990-02-18;1.278877888
1990-02-19;2.981023102
1990-02-20;4.075907591
1990-02-22;3.712871287
1990-02-26;1.237623762
1990-02-27;1.031353135
1990-02-27;1.454620462
1990-03-07;1.689768977
1990-03-10;2.367986799
1990-03-11;3.465346535
1990-03-12;1.237623762
1990-03-15;1.064356436
1990-03-17;1.423267327
1990-03-19;1.485148515
1990-03-20;2.475247525
1990-03-22;1.73679868
1990-03-23;10.99834983
1990-03-25;1.084983498
1990-03-27;1.155115512
1990-03-28;1.258250825
1990-03-29;1.897689769
1990-04-02;1.00660066
1990-04-02;1.108910891
1990-04-02;1.031353135
1990-04-03;1.320132013
1990-04-03;1.902640264
1990-04-04;8.250825083
1990-04-07;1.094884488
1990-04-08;2.887788779
1990-04-08;2.302805281
1990-04-09;1.735973597
1990-04-11;3.217821782
1990-04-13;1.084983498
1990-04-18;1.485148515
1990-04-18;2.499174917
1990-04-18;4.867986799
1990-04-20;1.105610561
1990-04-25;12.37623762
1990-04-25;1.74669967
1990-04-30;3.589108911
1990-05-01;1.021452145
1990-05-02;3.465346535
1990-05-03;4.537953795
1990-05-03;5.198019802
1990-05-04;2.675742574
1990-05-07;1.275577558
1990-05-07;1.650165017
1990-05-09;3.300330033
1990-05-09;1.320132013
1990-05-17;1.485148515
1990-05-18;2.5330033
1990-05-18;3.855610561
1990-05-22;1.208745875
1990-05-25;1.290429043
1990-05-25;2.805280528
1990-05-25;1.265676568
1990-05-26;5.612211221
1990-05-27;1.443894389
1990-05-30;2.103960396
1990-06-03;2.475247525
1990-06-04;1.815181518
1990-06-06;1.495049505
1990-06-06;2.04290429
1990-06-07;1.070957096
1990-06-07;1.237623762
1990-06-11;2.062706271
1990-06-14;1.017326733
1990-06-15;1.650165017
1990-06-15;15.28465347
1990-06-15;2.293729373
1990-06-16;1.072607261
1990-06-18;4.537953795
1990-06-27;1.237623762
1990-07-01;10.18481848
1990-07-01;1.664191419
1990-07-05;2.310231023
1990-07-05;6.372937294
1990-07-09;1.410891089
1990-07-10;1.114686469
1990-07-10;1.870462046
1990-07-13;2.062706271
1990-07-15;1.068481848
1990-07-15;1.670792079
1990-07-15;1.318481848
1990-07-16;1.115511551
1990-07-17;2.062706271
1990-07-18;1.072607261
1990-07-19;4.290429043
1990-07-20;2.982673267
1990-07-20;1.021452145
1990-07-21;8.085808581
1990-07-21;3.176567657
1990-07-22;1.654290429
1990-07-23;1.265676568
1990-07-23;1.081683168
1990-07-23;1.084158416
1990-07-24;2.805280528
1990-07-24;2.163366337
1990-07-27;1.278877888
1990-07-28;1.320957096
1990-07-28;1.339108911
1990-07-28;1.48349835
1990-07-28;1.822607261
1990-07-29;6.20049505
1990-07-31;13.20132013
1990-08-02;4.314356436
1990-08-04;2.407590759
1990-08-06;1.364686469
1990-08-10;1.005775578
1990-08-11;2.145214521
1990-08-13;1.901815182
1990-08-13;1.461221122
1990-08-14;20.82673267
1990-08-14;5.940594059
1990-08-14;2.722772277
1990-08-14;2.762376238
1990-08-15;1.027227723
1990-08-17;1.141914191
1990-08-18;1.646039604
1990-08-19;1.770627063
1990-08-20;4.125412541
1990-08-21;1.98019802
1990-08-22;1.320132013
1990-08-22;1.00660066
1990-08-22;8.250825083
1990-08-26;1.113861386
1990-08-29;1.650165017
1990-08-29;1.26650165
1990-08-30;1.553630363
1990-08-30;4.084158416
1990-08-31;1.448844884
1990-09-08;14.85148515
1990-09-11;1.596534653
1990-09-15;3.877887789
1990-09-19;2.021452145
1990-09-20;1.650165017
1990-09-27;1.010726073
1990-09-27;1.485148515
1990-09-30;1.278877888
1990-10-01;1.02310231
1990-10-01;4.702970297
1990-10-02;3.135313531
1990-10-03;1.864686469
1990-10-03;2.037953795
1990-10-04;2.145214521
1990-10-04;1.155115512
1990-10-07;1.056105611
1990-10-08;144.6575908
1990-10-10;28.63036304
1990-10-12;19.26567657
1990-10-12;5.528052805
1990-10-15;1.54290429
1990-10-16;4.620462046
1990-10-19;1.072607261
1990-10-19;3.712871287
1990-10-23;1.014026403
1990-10-29;1.113861386
1990-11-07;2.339933993
1990-11-10;1.938943894
1990-11-11;1.237623762
1990-11-13;3.052805281
1990-11-13;1.409240924
1990-11-15;2.553630363
1990-11-23;5.775577558
1990-11-27;1.134488449
1990-11-29;3.407590759
1990-11-29;1.072607261
1990-11-30;1.167491749
1990-11-30;1.072607261
1990-12-04;1.270627063
1990-12-05;1.472772277
1990-12-06;1.03630363
1990-12-07;1.650165017
1990-12-08;1.678217822
1990-12-09;2.640264026
1990-12-09;1.601485149
1990-12-10;17.73927393
1990-12-14;4.372937294
1990-12-15;1.361386139
1990-12-16;1.183993399
1990-12-17;2.97029703
1990-12-19;1.02310231
1990-12-20;1.130363036
1990-12-21;3.011551155
1990-12-21;1.402640264
1990-12-22;2.322607261
1990-12-23;1.115511551
1990-12-23;1.691419142
1990-12-24;1.237623762
1990-12-27;1.114686469
1990-12-30;1.402640264
1990-12-30;4.867986799
1990-12-30;1.072607261
1990-12-31;4.125412541
fExtremes/data/bmwRet.csv 0000644 0001762 0000144 00000436725 11645005146 015125 0 ustar ligges users %Y-%m-%d; BMW.RET
1973-01-02; 0.047704097
1973-01-03; 0.007127223
1973-01-04; 0.008883307
1973-01-05;-0.012440569
1973-01-08;-0.003569961
1973-01-09; 0
1973-01-10; 0.001740804
1973-01-11;-0.001740804
1973-01-12; 0.001740804
1973-01-15; 0
1973-01-16;-0.001740804
1973-01-17; 0.033455174
1973-01-18; 0.047370214
1973-01-19; 0.02348919
1973-01-22;-0.005467663
1973-01-23;-0.033019677
1973-01-24; 0.042774239
1973-01-25; 0.0378561
1973-01-26; 0.009224649
1973-01-29;-0.001570845
1973-01-30;-0.015446463
1973-01-31; 0.015446463
1973-02-01;-0.006149984
1973-02-02;-0.023445763
1973-02-05;-0.055259919
1973-02-06;-0.010148006
1973-02-07; 0.033238641
1973-02-08;-0.003853569
1973-02-09;-0.022665543
1973-02-12; 0.006759962
1973-02-13; 0.029494219
1973-02-14;-0.013588638
1973-02-15;-0.027657807
1973-02-16; 0.019990415
1973-02-19;-0.02171768
1973-02-20; 0.026695543
1973-02-21; 0.006543099
1973-02-22; 0.04007255
1973-02-23;-0.015869493
1973-02-26; 0.020517683
1973-02-27; 0.021671206
1973-02-28;-0.001566048
1973-03-01;-0.007077727
1973-03-02;-0.000552595
1973-03-05; 0.007630322
1973-03-06; 0.003051526
1973-03-07; 0.00101511
1973-03-08; 0.00661198
1973-03-09;-0.012718152
1973-03-12; 0.011243969
1973-03-13; 0.00302361
1973-03-14; 0.022428128
1973-03-15;-0.005921669
1973-03-16; 0.020574221
1973-03-19;-0.005835283
1973-03-20;-0.011773721
1973-03-21; 0.00643235
1973-03-22; 0.003914783
1973-03-23;-0.001503873
1973-03-26;-0.023835128
1973-03-27;-0.012095046
1973-03-28; 0.015096087
1973-03-29; 0
1973-03-30;-0.003001041
1973-04-02;-0.003010074
1973-04-03;-0.004493345
1973-04-04;-0.023092449
1973-04-05; 0.009332557
1973-04-06;-0.001575672
1973-04-09;-0.007756885
1973-04-10;-0.003103739
1973-04-11;-0.002793632
1973-04-12; 0.015229929
1973-04-13;-0.006159211
1973-04-16; 0.01836498
1973-04-17; 0
1973-04-18; 0.03289267
1973-04-19; 0.0102565
1973-04-20; 0
1973-04-23; 0
1973-04-24;-0.002909039
1973-04-25;-0.020679982
1973-04-26;-0.016531844
1973-04-27; 0.040120865
1973-04-30; 0.002900601
1973-05-01; 0
1973-05-02; 0.014378128
1973-05-03;-0.033422038
1973-05-04;-0.011878614
1973-05-07;-0.025838424
1973-05-08; 0.016758645
1973-05-09;-0.01213173
1973-05-10;-0.016964939
1973-05-11; 0.007768569
1973-05-14;-0.028188926
1973-05-15;-0.024085666
1973-05-16; 0.003239609
1973-05-17;-0.001660027
1973-05-18;-0.013043663
1973-05-21;-0.035115366
1973-05-22; 0.023518334
1973-05-23; 0.014873933
1973-05-24; 0.004937042
1973-05-25; 0.030498439
1973-05-28; 0
1973-05-29;-0.028913718
1973-05-30;-0.006521762
1973-05-31; 0
1973-06-01;-0.024885568
1973-06-04; 0.011713039
1973-06-05; 0.009306328
1973-06-06; 0.010387963
1973-06-07; 0.001665418
1973-06-08;-0.004920982
1973-06-11; 0
1973-06-12; 0.006500565
1973-06-13; 0.011316356
1973-06-14; 0.003198166
1973-06-15;-0.011280018
1973-06-18; 0.009723214
1973-06-19; 0
1973-06-20; 0.025262456
1973-06-21; 0
1973-06-22; 0.001597827
1973-06-25;-0.03006344
1973-06-26;-0.011334144
1973-06-27; 0.001579582
1973-06-28;-0.013043663
1973-06-29;-0.006586193
1973-07-02; 0.004901556
1973-07-03; 0
1973-07-04;-0.011531415
1973-07-05;-0.010114083
1973-07-06; 0.001721467
1973-07-09;-0.008463648
1973-07-10; 0
1973-07-11; 0.030072316
1973-07-12;-0.009895628
1973-07-13;-0.008364678
1973-07-16; 0.006663274
1973-07-17;-0.018475284
1973-07-18;-0.013622285
1973-07-19; 0
1973-07-20;-0.003434765
1973-07-23;-0.035103923
1973-07-24; 0
1973-07-25;-0.0290171
1973-07-26;-0.050842876
1973-07-27;-0.012849422
1973-07-30; 0.012849422
1973-07-31; 0.057779537
1973-08-01;-0.014111241
1973-08-02; 0.014111241
1973-08-03; 0.039382379
1973-08-06;-0.007753375
1973-08-07; 0.009727177
1973-08-08; 0.01908709
1973-08-09; 0.005612081
1973-08-10; 0.009399547
1973-08-13;-0.039941694
1973-08-14; 0
1973-08-15; 0
1973-08-16; 0.011562895
1973-08-17;-0.019346444
1973-08-20;-0.013722656
1973-08-21;-0.009998232
1973-08-22; 0
1973-08-23; 0
1973-08-24;-0.02011157
1973-08-27; 0
1973-08-28; 0.016102801
1973-08-29;-0.01202909
1973-08-30; 0.016037858
1973-08-31; 0.007969646
1973-09-03; 0.007173764
1973-09-04; 0.031748698
1973-09-05;-0.009544696
1973-09-06;-0.007738027
1973-09-07; 0.001895051
1973-09-10;-0.015628157
1973-09-11; 0.015628157
1973-09-12; 0.009689651
1973-09-13;-0.023305183
1973-09-14;-0.005958128
1973-09-17;-0.021936004
1973-09-18;-0.008114783
1973-09-19; 0.002082151
1973-09-20; 0.008004186
1973-09-21;-0.008004186
1973-09-24;-0.031013959
1973-09-25; 0.006318983
1973-09-26;-0.006318983
1973-09-27; 0.026940248
1973-09-28; 0.004073711
1973-10-01;-0.028870753
1973-10-02;-0.008404232
1973-10-03; 0.004210945
1973-10-04;-0.008439697
1973-10-05;-0.01279462
1973-10-08;-0.039396412
1973-10-09; 0.004454812
1973-10-10;-0.012586633
1973-10-11;-0.019022026
1973-10-12; 0.018184241
1973-10-15;-0.009050788
1973-10-16;-0.018351096
1973-10-17; 0.018351096
1973-10-18; 0.004535634
1973-10-19; 0.01348476
1973-10-22; 0.01248533
1973-10-23;-0.005862103
1973-10-24; 0.01464215
1973-10-25;-0.003563977
1973-10-26; 0.021695014
1973-10-29; 0.014862059
1973-10-30;-0.010578971
1973-10-31;-0.019470707
1973-11-01; 0.023735529
1973-11-02;-0.015057372
1973-11-05;-0.055463643
1973-11-06; 0.004556299
1973-11-07;-0.004556299
1973-11-08; 0.011299555
1973-11-09; 0.011277137
1973-11-12;-0.038743203
1973-11-13;-0.033027304
1973-11-14;-0.066891428
1973-11-15;-0.03125633
1973-11-16;-0.018757149
1973-11-19;-0.008057453
1973-11-20; 0.005420751
1973-11-21; 0
1973-11-22;-0.049878259
1973-11-23;-0.025972009
1973-11-26;-0.050772325
1973-11-27; 0.024247029
1973-11-28; 0.020676133
1973-11-29; 0.057006818
1973-11-30;-0.025185646
1973-12-03; 0.01130104
1973-12-04; 0.042967868
1973-12-05; 0.008972023
1973-12-06;-0.018783422
1973-12-07;-0.016440821
1973-12-10;-0.025245322
1973-12-11; 0.025245322
1973-12-12;-0.011112661
1973-12-13; 0.011112661
1973-12-14;-0.016715647
1973-12-17; 0.002740264
1973-12-18;-0.005619094
1973-12-19; 0.003923625
1973-12-20; 0.001695468
1973-12-21; 0.022165856
1973-12-24; 0
1973-12-25; 0
1973-12-26; 0
1973-12-27; 0.029759243
1973-12-28; 0
1973-12-31;-0.068877999
1974-01-01; 0
1974-01-02;-0.020080996
1974-01-03; 0.005797899
1974-01-04; 0.012027407
1974-01-07; 0.005167285
1974-01-08; 0.01130104
1974-01-09; 0.005602986
1974-01-10; 0.002724974
1974-01-11;-0.048453302
1974-01-14; 0.028824303
1974-01-15; 0.002771364
1974-01-16; 0.019704428
1974-01-17; 0.01653142
1974-01-18; 0.016262571
1974-01-21;-0.043968744
1974-01-22; 0.00832796
1974-01-23;-0.025327776
1974-01-24;-0.026122396
1974-01-25;-0.006432651
1974-01-28; 0.021462383
1974-01-29;-0.006065935
1974-01-30; 0.021137911
1974-01-31; 0.08570879
1974-02-01;-0.008174266
1974-02-04;-0.011210465
1974-02-05;-0.029417583
1974-02-06; 0.006865888
1974-02-07; 0.002783755
1974-02-08;-0.00850205
1974-02-11; 0
1974-02-12; 0.017057713
1974-02-13;-0.008555664
1974-02-14;-0.020037681
1974-02-15;-0.010627368
1974-02-18;-0.015891069
1974-02-19; 0.014717743
1974-02-20;-0.014717743
1974-02-21;-0.007841093
1974-02-22;-0.004144668
1974-02-25; 0.006010838
1974-02-26;-0.008022506
1974-02-27; 0.002011668
1974-02-28;-0.00915215
1974-03-01;-0.012243385
1974-03-04;-0.012533736
1974-03-05; 0
1974-03-06;-0.015644962
1974-03-07; 0.02200033
1974-03-08; 0.033584741
1974-03-11; 0.008883055
1974-03-12; 0.020640837
1974-03-13; 0
1974-03-14;-0.026598358
1974-03-15; 0.008988825
1974-03-18;-0.005939435
1974-03-19;-0.003049389
1974-03-20;-0.018088522
1974-03-21; 0.012095296
1974-03-22;-0.024338681
1974-03-25;-0.009351003
1974-03-26; 0.012357702
1974-03-27;-0.021796973
1974-03-28;-0.00559442
1974-03-29;-0.000701508
1974-04-01; 0
1974-04-02; 0.012552466
1974-04-03;-0.000554554
1974-04-04;-0.005004876
1974-04-05; 0.002505569
1974-04-08;-0.009498605
1974-04-09;-0.038631413
1974-04-10;-0.020038979
1974-04-11; 0.006822928
1974-04-12; 0
1974-04-15; 0
1974-04-16; 0.058143393
1974-04-17;-0.012631747
1974-04-18;-0.022569162
1974-04-19;-0.026348128
1974-04-22; 0
1974-04-23;-0.010137236
1974-04-24; 0.013542881
1974-04-25;-0.023632569
1974-04-26; 0
1974-04-29; 0.010089687
1974-04-30;-0.020435132
1974-05-01; 0
1974-05-02; 0.010345444
1974-05-03; 0.006787868
1974-05-06;-0.016521785
1974-05-07; 0.039996344
1974-05-08; 0.00979039
1974-05-09;-0.046887076
1974-05-10;-0.010416761
1974-05-13;-0.024631019
1974-05-14;-0.021537085
1974-05-15; 0.010746755
1974-05-16; 0.042326924
1974-05-17;-0.017431988
1974-05-20; 0.003572819
1974-05-21;-0.003572819
1974-05-22; 0.010526413
1974-05-23; 0
1974-05-24; 0.006905575
1974-05-27; 0
1974-05-28; 0
1974-05-29;-0.013859169
1974-05-30;-0.010600255
1974-05-31; 0.00484641
1974-06-03; 0
1974-06-04;-0.00124844
1974-06-05; 0.003429466
1974-06-06; 0.006978395
1974-06-07;-0.024561266
1974-06-10;-0.00364935
1974-06-11; 0.007127614
1974-06-12;-0.008400081
1974-06-13; 0
1974-06-14;-0.005906315
1974-06-17; 0
1974-06-18;-0.003689153
1974-06-19; 0.003689153
1974-06-20;-0.005941406
1974-06-21;-0.012315826
1974-06-24;-0.002285342
1974-06-25; 0.00959591
1974-06-26; 0.007257511
1974-06-27;-0.036826025
1974-06-28;-0.011401867
1974-07-01; 0.011401867
1974-07-02; 0.009788548
1974-07-03;-0.024907263
1974-07-04;-0.006963935
1974-07-05;-0.106175195
1974-07-08;-0.034712317
1974-07-09; 0.008791695
1974-07-10; 0.032909034
1974-07-11; 0.001504608
1974-07-12; 0.008607838
1974-07-15; 0.006685262
1974-07-16;-0.002594516
1974-07-17;-0.011759352
1974-07-18; 0.003373949
1974-07-19;-0.012806201
1974-07-22; 0
1974-07-23;-0.017205548
1974-07-24; 0.001733937
1974-07-25; 0
1974-07-26;-0.003277743
1974-07-29; 0
1974-07-30;-0.001933115
1974-07-31; 0.020682468
1974-08-01; 0.025450475
1974-08-02; 0.020483525
1974-08-05; 0
1974-08-06; 0.012234769
1974-08-07; 0.051069736
1974-08-08; 0.01901934
1974-08-09;-0.007530786
1974-08-12; 0.007530786
1974-08-13; 0.033284489
1974-08-14;-0.003715975
1974-08-15;-0.04468723
1974-08-16; 0.033783061
1974-08-19; 0.003593601
1974-08-20;-0.022257946
1974-08-21;-0.007530786
1974-08-22;-0.023110629
1974-08-23;-0.007766024
1974-08-26; 0
1974-08-27;-0.015715357
1974-08-28;-0.003879391
1974-08-29;-0.044066357
1974-08-30; 0.036084053
1974-09-02; 0.023758267
1974-09-03; 0
1974-09-04;-0.02786285
1974-09-05;-0.008079764
1974-09-06; 0.012184347
1974-09-09;-0.004104583
1974-09-10; 0
1974-09-11; 0.004104583
1974-09-12;-0.012184347
1974-09-13;-0.02058173
1974-09-16;-0.025157387
1974-09-17; 0.01275097
1974-09-18; 0
1974-09-19; 0.024842569
1974-09-20; 0.008145579
1974-09-23; 0
1974-09-24; 0.043738236
1974-09-25;-0.011803643
1974-09-26;-0.034461669
1974-09-27; 0.002527077
1974-09-30;-0.058654777
1974-10-01; 0.050509198
1974-10-02; 0.016225342
1974-10-03;-0.0041215
1974-10-04;-0.01775409
1974-10-07; 0.006376992
1974-10-08; 0.0220934
1974-10-09;-0.018829571
1974-10-10; 0.012234769
1974-10-11;-0.008079764
1974-10-14;-0.012334639
1974-10-15; 0.028429407
1974-10-16; 0
1974-10-17;-0.024240347
1974-10-18;-0.008212474
1974-10-21;-0.008280478
1974-10-22; 0
1974-10-23; 0.02391716
1974-10-24;-0.028176031
1974-10-25; 0.008315672
1974-10-28; 0.004223677
1974-10-29; 0
1974-10-30; 0.0285424
1974-10-31; 0
1974-11-01; 0.011861695
1974-11-04;-0.028201048
1974-11-05;-0.020483525
1974-11-06;-0.008349617
1974-11-07; 0.004090746
1974-11-08; 0.032855666
1974-11-11; 0.012136504
1974-11-12; 0.002480512
1974-11-13;-0.022730285
1974-11-14; 0.043916405
1974-11-15; 0.003976836
1974-11-18; 0.034430604
1974-11-19;-0.026695283
1974-11-20; 0
1974-11-21; 0.006315631
1974-11-22; 0.005260937
1974-11-25;-0.007645947
1974-11-26; 0.015233876
1974-11-27; 0.026195132
1974-11-28;-0.033783061
1974-11-29; 0.073563768
1974-12-02; 0
1974-12-03;-0.007101742
1974-12-04;-0.00364935
1974-12-05; 0.00364935
1974-12-06;-0.001426421
1974-12-09;-0.005885645
1974-12-10;-0.021773298
1974-12-11; 0
1974-12-12; 0.00876629
1974-12-13;-0.001455722
1974-12-16;-0.025907335
1974-12-17;-0.026425841
1974-12-18; 0.011362795
1974-12-19; 0.011401867
1974-12-20; 0.007474497
1974-12-23;-0.018876364
1974-12-24; 0
1974-12-25; 0
1974-12-26; 0
1974-12-27; 0.018876364
1974-12-30; 0.012498107
1974-12-31; 0
1975-01-01; 0
1975-01-02; 0.020542574
1975-01-03; 0.035389397
1975-01-06;-0.017459524
1975-01-07;-0.014413808
1975-01-08; 0.021465471
1975-01-09; 0.027719668
1975-01-10; 0.020296871
1975-01-13;-0.020296871
1975-01-14;-0.041873073
1975-01-15;-0.00364935
1975-01-16; 0.024805039
1975-01-17; 0.018588752
1975-01-20;-0.044666259
1975-01-21;-0.024163547
1975-01-22; 0.007310568
1975-01-23;-0.001295757
1975-01-24; 0.001295757
1975-01-27; 0.01446273
1975-01-28;-0.003516066
1975-01-29; 0.066278121
1975-01-30; 0.013542881
1975-01-31;-0.003405645
1975-02-03; 0.016621696
1975-02-04; 0.013043663
1975-02-05; 0.009743593
1975-02-06; 0.040930359
1975-02-07; 0.029269066
1975-02-10; 0.007020361
1975-02-11;-0.007020361
1975-02-12;-0.017025681
1975-02-13; 0.019282868
1975-02-14;-0.005319161
1975-02-17; 0.024887716
1975-02-18; 0.017405197
1975-02-19;-0.002815822
1975-02-20; 0.036866476
1975-02-21; 0.008365161
1975-02-24; 0.002691462
1975-02-25;-0.019492352
1975-02-26; 0.005590424
1975-02-27; 0.008388897
1975-02-28;-0.002829552
1975-03-03; 0.011148661
1975-03-04; 0.013552966
1975-03-05;-0.01087624
1975-03-06; 0.002790756
1975-03-07; 0.008085484
1975-03-10; 0.016213994
1975-03-11; 0.013158085
1975-03-12; 0.015748357
1975-03-13; 0.005156718
1975-03-14;-0.012999895
1975-03-17;-0.00790518
1975-03-18;-0.005265942
1975-03-19;-0.007892143
1975-03-20;-0.013453385
1975-03-21; 0.013453385
1975-03-24; 0.012223942
1975-03-25; 0.000934143
1975-03-26; 0.020905075
1975-03-27; 0.007628844
1975-03-28; 0
1975-03-31; 0
1975-04-01; 0.007683654
1975-04-02; 0.002585578
1975-04-03; 0.017473039
1975-04-04; 0.01728141
1975-04-07; 0.0217738
1975-04-08; 0.007188952
1975-04-09;-0.002425778
1975-04-10; 0.032823886
1975-04-11; 0.013297663
1975-04-14; 0.020658386
1975-04-15; 0.006694256
1975-04-16;-0.013334189
1975-04-17;-0.011299555
1975-04-18; 0.020208741
1975-04-21; 0.012438337
1975-04-22; 0.020329232
1975-04-23; 0.024680982
1975-04-24; 0.023632197
1975-04-25;-0.018620121
1975-04-28;-0.029693058
1975-04-29; 0.012793351
1975-04-30; 0.014768004
1975-05-01; 0
1975-05-02; 0.00416648
1975-05-05;-0.01180366
1975-05-06; 0.02219026
1975-05-07;-0.033567374
1975-05-08; 0
1975-05-09; 0.002172579
1975-05-12;-0.008147842
1975-05-13;-0.026508854
1975-05-14;-0.017739698
1975-05-15;-0.017250453
1975-05-16; 0.012666032
1975-05-19; 0
1975-05-20; 0.013493607
1975-05-21;-0.008909186
1975-05-22; 0.004464515
1975-05-23;-0.004961804
1975-05-26; 0
1975-05-27;-0.040710083
1975-05-28;-0.03329076
1975-05-29; 0
1975-05-30; 0.026219918
1975-06-02; 0.018609035
1975-06-03; 0.047408878
1975-06-04;-0.013275184
1975-06-05;-0.006754098
1975-06-06; 0.017780002
1975-06-09;-0.013305277
1975-06-10;-0.006769563
1975-06-11;-0.009030766
1975-06-12;-0.01370093
1975-06-13;-0.002353063
1975-06-16;-0.002255948
1975-06-17; 0
1975-06-18; 0.004609011
1975-06-19; 0.004587866
1975-06-20; 0.026301456
1975-06-23;-0.001388063
1975-06-24;-0.004474725
1975-06-25;-0.011325603
1975-06-26;-0.002219981
1975-06-27;-0.00648629
1975-06-30; 0.009210125
1975-07-01; 0.013508986
1975-07-02; 0.047743616
1975-07-03;-0.008660535
1975-07-04;-0.009411382
1975-07-07; 0.020154462
1975-07-08; 0.001323002
1975-07-09;-0.018490805
1975-07-10; 0.015085258
1975-07-11; 0.002082545
1975-07-14;-0.004264399
1975-07-15;-0.019466501
1975-07-16; 0.006563097
1975-07-17; 0.004319661
1975-07-18;-0.006534715
1975-07-21; 0.004329219
1975-07-22;-0.004329219
1975-07-23;-0.01310126
1975-07-24;-0.008830513
1975-07-25; 0.019808424
1975-07-28;-0.002224695
1975-07-29; 0.021648355
1975-07-30; 0.019053559
1975-07-31;-0.010561339
1975-08-01; 0.002064953
1975-08-04;-0.006302048
1975-08-05;-0.012055773
1975-08-06;-0.024850203
1975-08-07;-0.004415451
1975-08-08; 0.018994386
1975-08-11;-0.003576438
1975-08-12; 0.008677262
1975-08-13;-0.002114166
1975-08-14;-0.007338065
1975-08-15;-0.012383757
1975-08-18;-0.000883436
1975-08-19; 0.000883436
1975-08-20;-0.008869675
1975-08-21;-0.022625853
1975-08-22; 0.013576917
1975-08-25; 0
1975-08-26;-0.020384157
1975-08-27;-0.00695655
1975-08-28; 0.004609011
1975-08-29; 0.006924671
1975-09-01;-0.013897628
1975-09-02; 0.006972957
1975-09-03;-0.002353063
1975-09-04; 0.009277734
1975-09-05; 0.006776259
1975-09-08; 0.027733998
1975-09-09; 0.005865119
1975-09-10;-0.017798788
1975-09-11;-0.002185142
1975-09-12; 0.017739698
1975-09-15;-0.006664731
1975-09-16;-0.015659388
1975-09-17;-0.008526911
1975-09-18;-0.007280113
1975-09-19; 0.011301836
1975-09-22;-0.002209946
1975-09-23;-0.00909189
1975-09-24; 0
1975-09-25;-0.002336806
1975-09-26;-0.004587866
1975-09-29;-0.000817829
1975-09-30;-0.006155128
1975-10-01; 0.002363946
1975-10-02; 0.00695655
1975-10-03; 0.015878968
1975-10-06; 0.013554124
1975-10-07;-0.018079701
1975-10-08; 0.004525577
1975-10-09; 0
1975-10-10; 0.031215494
1975-10-13; 0
1975-10-14; 0.006591726
1975-10-15;-0.015383421
1975-10-16;-0.002259222
1975-10-17; 0.002259222
1975-10-20; 0.021835988
1975-10-21; 0.003545593
1975-10-22;-0.005659759
1975-10-23;-0.002215054
1975-10-24;-0.006480653
1975-10-27;-0.002234421
1975-10-28; 0.017354851
1975-10-29;-0.002105062
1975-10-30; 0.004301082
1975-10-31;-0.004301082
1975-11-03; 0.008583744
1975-11-04;-0.002091454
1975-11-05;-0.008697785
1975-11-06;-0.008677262
1975-11-07;-0.003492098
1975-11-10; 0.016479918
1975-11-11; 0.017152754
1975-11-12; 0
1975-11-13; 0.008420708
1975-11-14; 0.002140631
1975-11-17; 0.006209761
1975-11-18;-0.002034777
1975-11-19; 0
1975-11-20;-0.004174984
1975-11-21;-0.002140631
1975-11-24; 0.003812717
1975-11-25; 0.036095789
1975-11-26; 0.00330697
1975-11-27;-0.002054398
1975-11-28; 0.02786285
1975-12-01; 0.023206886
1975-12-02;-0.019301478
1975-12-03;-0.009836002
1975-12-04; 0.002009875
1975-12-05; 0.003485842
1975-12-08; 0.002346093
1975-12-09; 0.001994191
1975-12-10;-0.009136457
1975-12-11; 0.00131033
1975-12-12;-0.005953962
1975-12-15;-0.009618428
1975-12-16; 0.007596539
1975-12-17; 0.029394755
1975-12-18; 0.013326174
1975-12-19; 0.02998439
1975-12-22; 0.001880238
1975-12-23; 0.012821729
1975-12-24; 0
1975-12-25; 0
1975-12-26; 0
1975-12-29; 0
1975-12-30;-0.014701966
1975-12-31; 0
1976-01-01; 0
1976-01-02; 0.023372541
1976-01-05; 0.007565236
1976-01-06;-0.012613931
1976-01-07;-0.018323847
1976-01-08;-0.003688982
1976-01-09;-0.009323885
1976-01-12;-0.005569656
1976-01-13;-0.007530786
1976-01-14; 0.011275018
1976-01-15; 0.011149308
1976-01-16; 0
1976-01-19; 0
1976-01-20;-0.007419043
1976-01-21;-0.015005283
1976-01-22;-0.00953634
1976-01-23; 0.027928237
1976-01-26; 0.000329788
1976-01-27;-0.003716402
1976-01-28;-0.001904841
1976-01-29;-0.001825424
1976-01-30; 0.007446667
1976-02-02; 0
1976-02-03;-0.003716402
1976-02-04; 0.007090474
1976-02-05; 0.01135494
1976-02-06; 0.003648603
1976-02-09; 0
1976-02-10;-0.003648603
1976-02-11; 0.003324822
1976-02-12;-0.00511344
1976-02-13;-0.00554877
1976-02-16;-0.003688982
1976-02-17; 0.007364406
1976-02-18; 0.005528469
1976-02-19; 0.001782098
1976-02-20;-0.003648603
1976-02-23; 0.003648603
1976-02-24;-0.003648603
1976-02-25; 0
1976-02-26; 0.003000935
1976-02-27;-0.008458086
1976-03-01;-0.001880238
1976-03-02; 0.00554877
1976-03-03;-0.00554877
1976-03-04;-0.00549745
1976-03-05;-0.009340841
1976-03-08; 0.007446667
1976-03-09; 0.001894174
1976-03-10; 0.015835773
1976-03-11; 0.016943433
1976-03-12;-0.001753268
1976-03-15;-0.011552475
1976-03-16; 0.002498289
1976-03-17;-0.001449859
1976-03-18;-0.016826245
1976-03-19;-0.013036488
1976-03-22; 0.009340841
1976-03-23; 0.001808467
1976-03-24;-0.001808467
1976-03-25;-0.003791943
1976-03-26;-0.011212276
1976-03-29; 0.007488802
1976-03-30;-0.001825424
1976-03-31;-0.003744232
1976-04-01;-0.007530786
1976-04-02; 0
1976-04-05;-0.005727778
1976-04-06;-0.028967661
1976-04-07;-0.015422668
1976-04-08; 0.015422668
1976-04-09; 0.015530942
1976-04-12;-0.019451661
1976-04-13; 0
1976-04-14; 0.011716341
1976-04-15; 0.00773532
1976-04-16; 0
1976-04-19; 0
1976-04-20; 0
1976-04-21;-0.001971119
1976-04-22;-0.02150434
1976-04-23; 0.002013923
1976-04-26;-0.005965977
1976-04-27; 0.003952054
1976-04-28;-0.011903328
1976-04-29;-0.003999472
1976-04-30;-0.015797833
1976-05-03;-0.012747145
1976-05-04; 0.010301381
1976-05-05; 0.022243069
1976-05-06;-0.014113678
1976-05-07;-0.012219005
1976-05-10;-0.012370158
1976-05-11; 0.002486304
1976-05-12;-0.004239638
1976-05-13;-0.008719907
1976-05-14; 0.006315615
1976-05-17; 0.018620121
1976-05-18; 0.006070234
1976-05-19;-0.001989151
1976-05-20;-0.016517235
1976-05-21;-0.004149192
1976-05-24; 0.012487537
1976-05-25;-0.016654017
1976-05-26; 0.006289329
1976-05-27; 0
1976-05-28; 0.004140412
1976-05-31; 0.014403166
1976-06-01; 0.010085633
1976-06-02;-0.004040047
1976-06-03;-0.010126669
1976-06-04; 0.003266198
1976-06-07; 0
1976-06-08; 0.004879381
1976-06-09;-0.012243385
1976-06-10;-0.004206297
1976-06-11; 0.004206297
1976-06-14; 0
1976-06-15;-0.012487537
1976-06-16; 0.0103866
1976-06-17; 0
1976-06-18; 0.008196021
1976-06-21;-0.001997277
1976-06-22; 0
1976-06-23;-0.006198744
1976-06-24; 0.004106407
1976-06-25; 0
1976-06-28;-0.018659487
1976-06-29; 0.01244772
1976-06-30;-0.004132048
1976-07-01;-0.008315672
1976-07-02; 0.003796828
1976-07-05; 0.002492501
1976-07-06; 0.005425051
1976-07-07;-0.005425051
1976-07-08;-0.010473241
1976-07-09;-0.006355756
1976-07-12; 0.004210533
1976-07-13; 0.006329135
1976-07-14; 0
1976-07-15; 0.00416648
1976-07-16; 0.003412815
1976-07-19; 0
1976-07-20; 0.002850446
1976-07-21;-0.006263261
1976-07-22; 0.0103866
1976-07-23; 0.002100937
1976-07-26; 0.005369263
1976-07-27;-0.001271456
1976-07-28;-0.029137226
1976-07-29;-0.004219218
1976-07-30;-0.009345421
1976-08-02;-0.001328652
1976-08-03;-0.015118458
1976-08-04; 0.007874813
1976-08-05; 0.002960984
1976-08-06;-0.002960984
1976-08-09;-0.007874813
1976-08-10;-0.004348043
1976-08-11; 0.007908992
1976-08-12;-0.005684297
1976-08-13; 0.002123348
1976-08-16; 0
1976-08-17; 0.027857484
1976-08-18; 0.029017005
1976-08-19;-0.002188384
1976-08-20;-0.006685925
1976-08-23; 0
1976-08-24;-0.004513017
1976-08-25;-0.018070536
1976-08-26;-0.006885196
1976-08-27; 0.006885196
1976-08-30; 0
1976-08-31; 0.017239396
1976-09-01;-0.004537255
1976-09-02; 0.000927644
1976-09-03; 0
1976-09-06;-0.002320725
1976-09-07;-0.000371816
1976-09-08; 0.002228827
1976-09-09;-0.004089985
1976-09-10;-0.018235302
1976-09-13; 0.006900817
1976-09-14;-0.004626796
1976-09-15;-0.00227402
1976-09-16; 0.003692661
1976-09-17;-0.008732851
1976-09-20; 0.000381279
1976-09-21; 0.011559727
1976-09-22; 0.015888185
1976-09-23; 0.004440751
1976-09-24;-0.004440751
1976-09-27;-0.002320725
1976-09-28;-0.005872226
1976-09-29;-0.00046753
1976-09-30; 0.008660482
1976-10-01; 0.011156817
1976-10-04;-0.031671798
1976-10-05; 0.002268861
1976-10-06;-0.009201791
1976-10-07;-0.000381279
1976-10-08;-0.00190858
1976-10-11;-0.023485013
1976-10-12;-0.041225459
1976-10-13; 0.002036039
1976-10-14; 0.012732589
1976-10-15;-0.00735705
1976-10-18; 0.004843602
1976-10-19;-0.001511107
1976-10-20; 0.004024555
1976-10-21; 0.009195467
1976-10-22;-0.009195467
1976-10-25;-0.012325878
1976-10-26;-0.001933351
1976-10-27; 0.010234674
1976-10-28; 0.004927852
1976-10-29; 0.001503684
1976-11-01; 0.002401202
1976-11-02; 0.008160873
1976-11-03;-0.010562075
1976-11-04; 0.012047739
1976-11-05; 0.04006161
1976-11-08; 0.004648303
1976-11-09;-0.004648303
1976-11-10; 0.004648303
1976-11-11; 0
1976-11-12;-0.018531431
1976-11-15;-0.030940396
1976-11-16; 0.009599757
1976-11-17; 0
1976-11-18;-0.000886831
1976-11-19; 0.010395308
1976-11-22;-0.004693926
1976-11-23; 0.002349717
1976-11-24;-0.007164268
1976-11-25;-0.009599757
1976-11-26; 0.009599757
1976-11-29; 0.014277575
1976-11-30;-0.011916531
1976-12-01;-0.007198887
1976-12-02;-0.002378122
1976-12-03; 0.004849334
1976-12-06; 0.014311164
1976-12-07; 0.004660655
1976-12-08; 0.002322207
1976-12-09; 0.009426772
1976-12-10; 0.003154426
1976-12-13;-0.003154426
1976-12-14;-0.007013527
1976-12-15;-0.004735452
1976-12-16; 0.004735452
1976-12-17;-0.002413245
1976-12-20; 0.004724494
1976-12-21; 0.006997393
1976-12-22; 0.006948769
1976-12-23; 0.015156798
1976-12-24; 0
1976-12-27; 0.000840532
1976-12-28; 0.013445425
1976-12-29; 0.00898594
1976-12-30;-0.007513321
1976-12-31; 0
1977-01-03; 0.00522865
1977-01-04; 0
1977-01-05; 0
1977-01-06; 0.008835509
1977-01-07; 0
1977-01-10; 0.004433795
1977-01-11;-0.007976837
1977-01-12;-0.003007795
1977-01-13; 0.002188384
1977-01-14; 0.004362454
1977-01-17; 0.010195424
1977-01-18;-0.001796946
1977-01-19;-0.006133882
1977-01-20;-0.002264596
1977-01-21;-0.005182536
1977-01-24; 0.003003689
1977-01-25;-0.006656661
1977-01-26; 0.008835509
1977-01-27;-0.004362454
1977-01-28; 0.00798335
1977-01-31; 0.002977401
1977-02-01;-0.006598298
1977-02-02; 0.013153343
1977-02-03; 0
1977-02-04; 0.002235037
1977-02-07; 0.018930242
1977-02-08;-0.008182704
1977-02-09; 0.004319661
1977-02-10;-0.010789881
1977-02-11;-0.006512356
1977-02-14;-0.008719548
1977-02-15;-0.002169198
1977-02-16; 0
1977-02-17; 0.006583421
1977-02-18;-0.026597797
1977-02-21; 0.004513017
1977-02-22; 0.011057915
1977-02-23; 0.004443444
1977-02-24;-0.002264596
1977-02-25;-0.004362454
1977-02-28; 0
1977-03-01;-0.015605237
1977-03-02; 0.008933976
1977-03-03;-0.002203048
1977-03-04; 0.008874309
1977-03-07; 0.00662705
1977-03-08;-0.011100105
1977-03-09; 0.000823083
1977-03-10;-0.003021289
1977-03-11; 0
1977-03-14;-0.004503063
1977-03-15; 0.004503063
1977-03-16; 0.006671261
1977-03-17; 0.004362454
1977-03-18; 0
1977-03-21; 0.011002997
1977-03-22;-0.008738401
1977-03-23; 0.005774105
1977-03-24;-0.007132247
1977-03-25;-0.008279172
1977-03-28;-0.010377062
1977-03-29; 0.002213002
1977-03-30;-0.002213002
1977-03-31; 0.001844509
1977-04-01; 0.000368494
1977-04-04; 0.002300015
1977-04-05;-0.000827396
1977-04-06;-0.001472619
1977-04-07; 0.005877508
1977-04-08; 0
1977-04-11; 0
1977-04-12; 0.011923866
1977-04-13; 0.010888747
1977-04-14; 0.012982576
1977-04-15; 0.002118084
1977-04-18; 0.019123045
1977-04-19; 0.004142937
1977-04-20; 0
1977-04-21; 0.012496953
1977-04-22; 0.004159422
1977-04-25;-0.012444757
1977-04-26; 0
1977-04-27; 0.026742729
1977-04-28; 0.012118342
1977-04-29; 0.018554621
1977-05-02;-0.000729129
1977-05-03; 0.001943163
1977-05-04;-0.001943163
1977-05-05;-0.019890158
1977-05-06; 0.006016915
1977-05-09; 0.005980928
1977-05-10; 0.00358774
1977-05-11; 0.010203344
1977-05-12;-0.005898769
1977-05-13; 0
1977-05-16;-0.021876256
1977-05-17; 0.001986098
1977-05-18; 0.023126669
1977-05-19; 0
1977-05-20;-0.003560739
1977-05-23;-0.009530476
1977-05-24;-0.002048258
1977-05-25;-0.003944454
1977-05-26;-0.001978077
1977-05-27; 0.00469156
1977-05-30; 0
1977-05-31; 0.001230971
1977-06-01;-0.004356231
1977-06-02;-0.023924786
1977-06-03; 0.002106949
1977-06-06; 0.002018504
1977-06-07;-0.004125453
1977-06-08;-0.002026857
1977-06-09; 0
1977-06-10;-0.004150965
1977-06-13;-0.006130809
1977-06-14; 0.00409138
1977-06-15; 0.010324201
1977-06-16;-0.004133806
1977-06-17; 0
1977-06-20;-0.004150965
1977-06-21;-0.002805289
1977-06-22; 0.002805289
1977-06-23;-0.00203943
1977-06-24;-0.00034031
1977-06-27; 0.00034031
1977-06-28; 0.007879727
1977-06-29;-0.003381523
1977-06-30; 0.003719047
1977-07-01; 0.016317671
1977-07-04; 0.015238547
1977-07-05; 0.001470348
1977-07-06; 0.005210465
1977-07-07;-0.003579277
1977-07-08;-0.034657755
1977-07-11;-0.006177822
1977-07-12; 0.001357313
1977-07-13;-0.020036632
1977-07-14; 0
1977-07-15; 0.002073614
1977-07-18;-0.002073614
1977-07-19;-0.008424942
1977-07-20;-0.00218293
1977-07-21; 0.00427407
1977-07-22; 0.001304745
1977-07-25;-0.008467599
1977-07-26;-0.012082874
1977-07-27; 0.005133209
1977-07-28; 0
1977-07-29; 0.015417264
1977-08-01; 0.011322996
1977-08-02; 0.022688656
1977-08-03; 0.007366516
1977-08-04; 0.002748513
1977-08-05; 0
1977-08-08; 0.006053337
1977-08-09; 0.016887031
1977-08-10; 0.006804952
1977-08-11; 0.004511044
1977-08-12; 0.013412304
1977-08-15; 0.001426421
1977-08-16;-0.005877231
1977-08-17;-0.00671358
1977-08-18;-0.00595192
1977-08-19;-0.003070213
1977-08-22;-0.001862877
1977-08-23; 0
1977-08-24;-0.000405433
1977-08-25;-0.004552113
1977-08-26;-0.018418544
1977-08-29;-0.00942184
1977-08-30; 0.016368609
1977-08-31;-0.011604905
1977-09-01; 0.018503749
1977-09-02; 0.002289079
1977-09-05; 0.004562498
1977-09-06; 0.002273466
1977-09-07; 0.004531485
1977-09-08; 0.001371576
1977-09-09;-0.005903062
1977-09-12; 0.004531485
1977-09-13; 0.011239682
1977-09-14; 0
1977-09-15; 0.002232856
1977-09-16; 0
1977-09-19;-0.011214472
1977-09-20;-0.004521241
1977-09-21;-0.001457608
1977-09-22;-0.009935744
1977-09-23;-0.002294331
1977-09-26; 0.007681659
1977-09-27; 0.001464248
1977-09-28;-0.002278647
1977-09-29; 0.013594642
1977-09-30; 0.004490785
1977-10-03;-0.009001829
1977-10-04; 0.009001829
1977-10-05; 0
1977-10-06; 0.00669859
1977-10-07; 0.004440927
1977-10-10; 0.00221309
1977-10-11; 0.002208203
1977-10-12;-0.006639291
1977-10-13;-0.002222929
1977-10-14; 0.001429593
1977-10-17; 0.000396747
1977-10-18; 0.00703588
1977-10-19;-0.004421293
1977-10-20; 0.00221309
1977-10-21; 0.002208203
1977-10-24;-0.004421293
1977-10-25; 0.00221309
1977-10-26;-0.00221309
1977-10-27; 0.000870012
1977-10-28; 0.02967623
1977-10-31;-0.001689838
1977-11-01; 0.016695642
1977-11-02; 0.027147614
1977-11-03; 0
1977-11-04;-0.006199739
1977-11-07;-0.012515994
1977-11-08; 0.005457753
1977-11-09;-0.001268326
1977-11-10;-0.00209252
1977-11-11;-0.004198222
1977-11-14; 0.002101314
1977-11-15; 0.010811722
1977-11-16; 0
1977-11-17; 0.009962079
1977-11-18;-0.012412424
1977-11-21;-0.00626447
1977-11-22;-0.01272368
1977-11-23; 0.002194892
1977-11-24; 0.00249179
1977-11-25;-0.002113846
1977-11-28;-0.013237166
1977-11-29; 0
1977-11-30;-0.004297781
1977-12-01; 0.017157003
1977-12-02; 0.004224827
1977-12-05;-0.017084049
1977-12-06;-0.026068195
1977-12-07; 0.010944449
1977-12-08; 0.005736895
1977-12-09; 0.002933233
1977-12-12;-0.021817914
1977-12-13;-0.002208203
1977-12-14;-0.013352607
1977-12-15; 0
1977-12-16; 0.011139517
1977-12-19;-0.011139517
1977-12-20;-0.004490785
1977-12-21; 0.008961494
1977-12-22; 0.017685602
1977-12-23; 0
1977-12-26; 0
1977-12-27; 0.000860484
1977-12-28;-0.009664188
1977-12-29;-0.00221309
1977-12-30; 0
1978-01-02; 0.00662463
1978-01-03;-0.00441154
1978-01-04;-0.015595478
1978-01-05; 0.017803681
1978-01-06;-0.011090101
1978-01-09; 0.008881898
1978-01-10; 0.002208203
1978-01-11; 0.002203337
1978-01-12; 0.002198493
1978-01-13; 0.004382539
1978-01-16;-0.006581033
1978-01-17;-0.007970685
1978-01-18; 0
1978-01-19;-0.001268533
1978-01-20;-0.010767801
1978-01-23; 0.015595478
1978-01-24; 0.002208203
1978-01-25; 0.002203337
1978-01-26;-0.002203337
1978-01-27; 0
1978-01-30;-0.006639291
1978-01-31;-0.008921518
1978-02-01; 0.00526695
1978-02-02; 0.005476856
1978-02-03;-0.006273098
1978-02-06; 0
1978-02-07; 0.006668808
1978-02-08;-0.001346055
1978-02-09; 0.001346055
1978-02-10; 0.028395043
1978-02-13;-0.004316332
1978-02-14;-0.008299447
1978-02-15; 0.010459941
1978-02-16; 0
1978-02-17; 0.006453618
1978-02-20;-0.004297781
1978-02-21;-0.006481504
1978-02-22; 0.006481504
1978-02-23;-0.004316332
1978-02-24; 0.002160495
1978-02-27;-0.006107715
1978-02-28;-0.013506861
1978-03-01;-0.012895238
1978-03-02; 0.00405261
1978-03-03; 0.004431088
1978-03-06; 0.008803704
1978-03-07; 0.003983291
1978-03-08;-0.006176962
1978-03-09; 0
1978-03-10;-0.002198493
1978-03-13; 0.004392164
1978-03-14;-0.008803704
1978-03-15;-0.006654017
1978-03-16; 0.004440927
1978-03-17; 0
1978-03-20;-0.001821566
1978-03-21;-0.004449042
1978-03-22; 0
1978-03-23;-0.0003982
1978-03-24; 0
1978-03-27; 0
1978-03-28;-0.00671358
1978-03-29; 0.00671358
1978-03-30; 0
1978-03-31; 0.006668808
1978-04-03;-0.001821566
1978-04-04; 0
1978-04-05; 0.013698844
1978-04-06; 0
1978-04-07;-0.009664188
1978-04-10;-0.00221309
1978-04-11;-0.014826896
1978-04-12;-0.023564916
1978-04-13; 0.011445514
1978-04-14; 0
1978-04-17;-0.025355326
1978-04-18; 0.006979091
1978-04-19;-0.008898558
1978-04-20; 0.011214139
1978-04-21; 0
1978-04-24;-0.004636538
1978-04-25; 0
1978-04-26; 0.016134693
1978-04-27; 0.027067868
1978-04-28; 0.01326405
1978-05-01; 0
1978-05-02; 0
1978-05-03; 0.006566628
1978-05-04; 0
1978-05-05;-0.008765121
1978-05-08;-0.00441154
1978-05-09; 0.002208203
1978-05-10;-0.006639291
1978-05-11; 0
1978-05-12;-0.002222929
1978-05-15; 0
1978-05-16; 0
1978-05-17;-0.002227881
1978-05-18; 0.013293438
1978-05-19; 0.002198493
1978-05-22;-0.002198493
1978-05-23;-0.00441154
1978-05-24; 0
1978-05-25; 0
1978-05-26; 0.008803704
1978-05-29; 0.013061918
1978-05-30; 0.004316332
1978-05-31; 0.010710017
1978-06-01; 0.006446987
1978-06-02; 0.004224827
1978-06-05;-0.004224827
1978-06-06; 0
1978-06-07; 0.004977386
1978-06-08; 0.015970489
1978-06-09; 0.006199739
1978-06-12;-0.002873671
1978-06-13;-0.005401219
1978-06-14; 0.009524936
1978-06-15; 0.000808021
1978-06-16; 0.00614891
1978-06-19; 0.020227519
1978-06-20; 0.002785219
1978-06-21;-0.027107808
1978-06-22; 0.002049631
1978-06-23; 0.004086702
1978-06-26;-0.007456175
1978-06-27; 0.005414912
1978-06-28;-0.022733284
1978-06-29; 0.012463994
1978-06-30; 0.011509125
1978-07-03; 0.008130126
1978-07-04; 0.002815581
1978-07-05;-0.005711616
1978-07-06; 0.003690976
1978-07-07; 0.004037205
1978-07-10; 0
1978-07-11;-0.008090776
1978-07-12;-0.010206402
1978-07-13;-0.002053841
1978-07-14; 0
1978-07-17; 0.016313813
1978-07-18; 0.011349066
1978-07-19; 0.016574965
1978-07-20; 0.000772445
1978-07-21; 0.028373642
1978-07-24;-0.009598319
1978-07-25; 0.02476654
1978-07-26; 0.005629287
1978-07-27;-0.005629287
1978-07-28; 0
1978-07-31; 0.007498696
1978-08-01; 0.012132611
1978-08-02; 0.002172268
1978-08-03;-0.008651201
1978-08-04;-0.006587946
1978-08-07;-0.011009778
1978-08-08;-0.004465199
1978-08-09;-0.008922245
1978-08-10; 0.004505127
1978-08-11; 0.004417118
1978-08-14; 0.017675785
1978-08-15;-0.00654995
1978-08-16; 0.004349142
1978-08-17;-0.002138752
1978-08-18;-0.00221039
1978-08-21; 0.00221039
1978-08-22;-0.008871026
1978-08-23; 0.003638573
1978-08-24;-0.001413428
1978-08-25; 0
1978-08-28;-0.002225145
1978-08-29;-0.006637342
1978-08-30;-0.011275617
1978-08-31; 0.01487067
1978-09-01; 0.011913316
1978-09-04; 0.002138752
1978-09-05;-0.006564428
1978-09-06;-0.005796336
1978-09-07; 0.004384049
1978-09-08; 0.003627574
1978-09-11; 0.00221039
1978-09-12; 0
1978-09-13; 0
1978-09-14;-0.006645881
1978-09-15; 0
1978-09-18; 0.017558952
1978-09-19; 0.004292561
1978-09-20;-0.015205631
1978-09-21;-0.00221039
1978-09-22; 0.00654995
1978-09-25;-0.00433956
1978-09-26; 0.006535535
1978-09-27; 0
1978-09-28; 0.004377536
1978-09-29; 0
1978-10-02; 0.007844729
1978-10-03; 0.008565223
1978-10-04;-0.005614691
1978-10-05;-0.009472509
1978-10-06; 0.000858851
1978-10-09;-0.013094673
1978-10-10; 0.002138752
1978-10-11;-0.012360765
1978-10-12;-0.000879121
1978-10-13; 0.015440693
1978-10-16; 0.004387138
1978-10-17;-0.013152374
1978-10-18; 0
1978-10-19; 0.008765236
1978-10-20;-0.00654995
1978-10-23; 0.00221039
1978-10-24;-0.008871026
1978-10-25; 0.001416574
1978-10-26; 0.000808571
1978-10-27;-0.004455252
1978-10-30;-0.013417535
1978-10-31; 0.004515298
1978-11-01;-0.002255101
1978-11-02; 0.011157337
1978-11-03; 0.011101133
1978-11-06;-0.007454452
1978-11-07;-0.010298892
1978-11-08;-0.002250027
1978-11-09;-0.004515298
1978-11-10; 0.0090103
1978-11-13; 0
1978-11-14;-0.006750102
1978-11-15; 0.00586632
1978-11-16; 0.004478835
1978-11-17;-0.001422909
1978-11-20;-0.002172143
1978-11-21;-0.002244975
1978-11-22; 0
1978-11-23;-0.002250027
1978-11-24;-0.004515298
1978-11-27;-0.002265318
1978-11-28;-0.004477054
1978-11-29;-0.00228066
1978-11-30; 0.00228066
1978-12-01; 0.020159906
1978-12-04;-0.004407235
1978-12-05;-0.004495002
1978-12-06; 0.008902237
1978-12-07; 0.002230107
1978-12-08;-0.002230107
1978-12-11; 0.004455252
1978-12-12; 0
1978-12-13; 0
1978-12-14; 0
1978-12-15;-0.008862487
1978-12-18; 0
1978-12-19;-0.002244975
1978-12-20; 0.004417118
1978-12-21; 0
1978-12-22; 0.002640936
1978-12-25; 0
1978-12-26; 0
1978-12-27;-0.000405844
1978-12-28;-0.011157337
1978-12-29; 0
1979-01-01; 0
1979-01-02; 0.020048081
1979-01-03; 0.015305063
1979-01-04;-0.010955921
1979-01-05;-0.012360765
1979-01-08; 0.013228328
1979-01-09; 0.00352922
1979-01-10;-0.002195975
1979-01-11; 0
1979-01-12; 0.005712783
1979-01-15;-0.003516808
1979-01-16; 0.013009924
1979-01-17; 0.019235111
1979-01-18;-0.000837063
1979-01-19; 0.010062575
1979-01-22;-0.000829373
1979-01-23; 0.005473885
1979-01-24; 0.009099014
1979-01-25; 0.002073581
1979-01-26;-0.004151472
1979-01-29; 0.004151472
1979-01-30;-0.009967279
1979-01-31;-0.004575213
1979-02-01;-0.004212414
1979-02-02;-0.004166005
1979-02-05; 0.004166005
1979-02-06; 0.00758231
1979-02-07;-0.010464618
1979-02-08;-0.009797681
1979-02-09; 0.004266053
1979-02-12;-0.021448718
1979-02-13; 0.007876641
1979-02-14;-0.007876641
1979-02-15;-0.021851512
1979-02-16;-0.004455252
1979-02-19;-0.004407235
1979-02-20; 0.004407235
1979-02-21; 0.006675457
1979-02-22;-0.00444535
1979-02-23; 0
1979-02-26; 0
1979-02-27; 0.010208282
1979-02-28;-0.010208282
1979-03-01;-0.006637342
1979-03-02; 0.008862487
1979-03-05; 0.015372579
1979-03-06;-0.004387138
1979-03-07;-0.010985441
1979-03-08; 0.00040404
1979-03-09; 0.004031451
1979-03-12;-0.013773764
1979-03-13;-0.004019216
1979-03-14; 0.004495002
1979-03-15;-0.002244975
1979-03-16;-0.001840554
1979-03-19; 0.006257672
1979-03-20; 0.013336225
1979-03-21;-0.008061309
1979-03-22;-0.018310419
1979-03-23; 0.008618384
1979-03-26; 0.002244975
1979-03-27; 0.004407235
1979-03-28; 0.01464096
1979-03-29;-0.004008289
1979-03-30; 0.007003998
1979-04-02;-0.004396783
1979-04-03; 0.004396783
1979-04-04; 0.002986761
1979-04-05; 0.003572377
1979-04-06; 0.002110958
1979-04-09;-0.004292561
1979-04-10;-0.002186372
1979-04-11;-0.003987511
1979-04-12; 0.003987511
1979-04-13; 0
1979-04-16; 0
1979-04-17; 0
1979-04-18;-0.001393821
1979-04-19; 0.003580193
1979-04-20; 0.01079526
1979-04-23;-0.012981633
1979-04-24; 0.004367975
1979-04-25; 0.002110958
1979-04-26;-0.008670096
1979-04-27;-0.001330318
1979-04-30; 0.001330318
1979-05-01; 0
1979-05-02;-0.006535535
1979-05-03;-0.006645881
1979-05-04;-0.002225145
1979-05-07;-0.004465199
1979-05-08; 0
1979-05-09;-0.001357036
1979-05-10; 0
1979-05-11;-0.005719749
1979-05-14;-0.008572559
1979-05-15; 0.008982199
1979-05-16; 0.003066964
1979-05-17;-0.005322065
1979-05-18; 0.008922245
1979-05-21;-0.004417118
1979-05-22;-0.015373304
1979-05-23; 0.001865608
1979-05-24; 0
1979-05-25;-0.004566534
1979-05-28;-0.001457372
1979-05-29;-0.000833739
1979-05-30;-0.00459803
1979-05-31;-0.016119731
1979-06-01;-0.014150168
1979-06-04; 0
1979-06-05;-0.02389043
1979-06-06;-0.014628069
1979-06-07;-0.019868453
1979-06-08; 0.014919433
1979-06-11;-0.007394028
1979-06-12; 0.012343048
1979-06-13;-0.002471449
1979-06-14; 0
1979-06-15; 0.002471449
1979-06-18;-0.00494902
1979-06-19;-0.017440539
1979-06-20;-0.028002605
1979-06-21;-0.023560466
1979-06-22; 0.011053376
1979-06-25; 0.030438497
1979-06-26;-0.010251721
1979-06-27;-0.020664826
1979-06-28;-0.015824259
1979-06-29;-0.005358025
1979-07-02;-0.021640701
1979-07-03; 0.018950884
1979-07-04;-0.016209677
1979-07-05; 0.008178822
1979-07-06; 0.030866398
1979-07-09;-0.012200167
1979-07-10;-0.013332447
1979-07-11;-0.069554216
1979-07-12; 0.010907137
1979-07-13; 0.003378821
1979-07-16; 0
1979-07-17; 0.002850112
1979-07-18; 0.068411993
1979-07-19;-0.010606957
1979-07-20; 0.010606957
1979-07-23;-0.018698212
1979-07-24; 0.005401437
1979-07-25; 0
1979-07-26; 0.008047842
1979-07-27;-0.002675424
1979-07-30;-0.00806949
1979-07-31;-0.005333784
1979-08-01; 0.005333784
1979-08-02; 0.010744914
1979-08-03; 0
1979-08-06; 0
1979-08-07;-0.017148877
1979-08-08;-0.008852178
1979-08-09;-0.000997672
1979-08-10; 0.008201181
1979-08-13;-0.013706241
1979-08-14;-0.005451433
1979-08-15; 0.002771364
1979-08-16;-0.0166593
1979-08-17; 0.009336343
1979-08-20;-0.001014285
1979-08-21;-0.00559703
1979-08-22;-0.014044934
1979-08-23;-0.00570837
1979-08-24; 0.00570837
1979-08-27;-0.002850112
1979-08-28;-0.002858258
1979-08-29; 0.002858258
1979-08-30; 0.002850112
1979-08-31; 0.001809487
1979-09-03; 0.001032525
1979-09-04; 0.033322322
1979-09-05; 0
1979-09-06; 0.021640701
1979-09-07;-0.010720672
1979-09-10;-0.013668771
1979-09-11; 0.008223662
1979-09-12; 0.005445109
1979-09-13;-0.002718848
1979-09-14; 0
1979-09-17;-0.003719474
1979-09-18;-0.020496807
1979-09-19;-0.00330187
1979-09-20; 0
1979-09-21;-0.011171395
1979-09-24;-0.007402341
1979-09-25; 0.001726371
1979-09-26; 0
1979-09-27;-0.009619208
1979-09-28;-0.001743072
1979-10-01; 0.00565391
1979-10-02;-0.002779468
1979-10-03; 0
1979-10-04;-0.005757169
1979-10-05; 0.011913702
1979-10-08; 0.002848636
1979-10-09;-0.000517331
1979-10-10;-0.002850112
1979-10-11;-0.005637727
1979-10-12; 0.002779468
1979-10-15; 0.001819837
1979-10-16;-0.013247536
1979-10-17; 0.00864823
1979-10-18; 0.001043206
1979-10-19;-0.003917647
1979-10-22;-0.011581109
1979-10-23;-0.014578036
1979-10-24;-0.004756999
1979-10-25;-0.007042283
1979-10-26;-0.015062588
1979-10-29; 0.003030723
1979-10-30; 0
1979-10-31;-0.004135085
1979-11-01;-0.004892242
1979-11-02;-0.002501507
1979-11-05;-0.012790166
1979-11-06; 0.00300216
1979-11-07;-0.021111211
1979-11-08;-0.000669953
1979-11-09; 0
1979-11-12; 0
1979-11-13; 0.006298933
1979-11-14; 0.009374625
1979-11-15; 0
1979-11-16; 0.015338872
1979-11-19;-0.008014207
1979-11-20; 0.001869509
1979-11-21; 0
1979-11-22; 0.017129255
1979-11-23; 0.013132884
1979-11-26;-0.002994422
1979-11-27; 0.03807012
1979-11-28;-0.017384069
1979-11-29; 0
1979-11-30;-0.011819622
1979-12-03;-0.017903873
1979-12-04; 0.017903873
1979-12-05; 0.004852197
1979-12-06;-0.016722042
1979-12-07;-0.012012432
1979-12-10; 0.005978404
1979-12-11; 0.020871901
1979-12-12;-0.020871901
1979-12-13;-0.003030723
1979-12-14;-0.002947681
1979-12-17;-0.015338437
1979-12-18; 0.003086567
1979-12-19;-0.005525135
1979-12-20; 0.008602204
1979-12-21; 0.00306763
1979-12-24; 0
1979-12-25; 0
1979-12-26; 0
1979-12-27;-0.006144699
1979-12-28; 0.029718365
1979-12-31; 0
1980-01-01; 0
1980-01-02;-0.026641296
1980-01-03;-0.014252468
1980-01-04; 0.005650265
1980-01-07; 0.002438568
1980-01-08; 0.001217058
1980-01-09; 0.001869509
1980-01-10;-0.003086567
1980-01-11; 0
1980-01-14;-0.006107606
1980-01-15;-0.008803957
1980-01-16;-0.006869601
1980-01-17;-0.01904083
1980-01-18; 0
1980-01-21;-0.038596396
1980-01-22; 0.002734594
1980-01-23; 0.013162712
1980-01-24; 0.013090231
1980-01-25; 0.006481413
1980-01-28; 0.000587142
1980-01-29; 0.005755271
1980-01-30;-0.009577868
1980-01-31; 0.006362901
1980-02-01; 0.025339763
1980-02-04; 0.027771744
1980-02-05; 0.003048924
1980-02-06;-0.009174801
1980-02-07;-0.006163636
1980-02-08; 0
1980-02-11; 0.012289513
1980-02-12;-0.01839712
1980-02-13; 0.009194173
1980-02-14; 0.024264302
1980-02-15; 0.008983319
1980-02-18;-0.020995751
1980-02-19; 0.015015847
1980-02-20; 0.011834458
1980-02-21; 0
1980-02-22; 0.011784798
1980-02-25; 0.007603927
1980-02-26;-0.01642948
1980-02-27;-0.002959245
1980-02-28;-0.008840036
1980-02-29;-0.005997837
1980-03-03;-0.006034028
1980-03-04; 0.003021565
1980-03-05;-0.003021565
1980-03-06;-0.005978404
1980-03-07;-0.018340597
1980-03-10;-0.012480071
1980-03-11;-0.01254145
1980-03-12; 0.018800955
1980-03-13; 0
1980-03-14; 0
1980-03-17;-0.012558437
1980-03-18;-0.038451263
1980-03-19; 0.013047531
1980-03-20; 0.009577868
1980-03-21;-0.009577868
1980-03-24; 0.006362901
1980-03-25;-0.016132555
1980-03-26; 0.006523696
1980-03-27; 0.01602849
1980-03-28; 0.003194427
1980-03-31; 0.012581198
1980-04-01; 0.003144507
1980-04-02; 0
1980-04-03; 0
1980-04-04; 0
1980-04-07; 0
1980-04-08;-0.009367302
1980-04-09;-0.003174148
1980-04-10; 0
1980-04-11; 0
1980-04-14;-0.000578202
1980-04-15;-0.018583013
1980-04-16;-0.001277453
1980-04-17; 0.026681185
1980-04-18; 0.009433583
1980-04-21; 0.033664422
1980-04-22;-0.018230274
1980-04-23; 0.006144699
1980-04-24; 0.018119604
1980-04-25;-0.024264302
1980-04-28; 0.009202947
1980-04-29;-0.009202947
1980-04-30; 0
1980-05-01; 0
1980-05-02;-0.003086567
1980-05-05;-0.006107606
1980-05-06;-0.006239975
1980-05-07; 0.003124855
1980-05-08; 0.012309293
1980-05-09; 0.01225187
1980-05-12; 0
1980-05-13; 0.002947681
1980-05-14; 0.006052288
1980-05-15; 0
1980-05-16;-0.008999969
1980-05-19; 0.005978404
1980-05-20;-0.012085575
1980-05-21;-0.00306763
1980-05-22; 0.00306763
1980-05-23;-0.007265984
1980-05-26; 0
1980-05-27; 0.004198355
1980-05-28; 0.006125878
1980-05-29; 0.024044674
1980-05-30; 0
1980-06-02;-0.027102922
1980-06-03;-0.037254947
1980-06-04; 0.018800955
1980-06-05; 0
1980-06-06; 0.024561164
1980-06-09;-0.003048924
1980-06-10;-0.015291673
1980-06-11; 0.006088727
1980-06-12; 0
1980-06-13; 0.027267717
1980-06-16; 0.017744217
1980-06-17; 0
1980-06-18; 0
1980-06-19;-0.002950514
1980-06-20;-0.068078687
1980-06-23;-0.005092982
1980-06-24; 0.003174148
1980-06-25;-0.035382894
1980-06-26;-0.023149182
1980-06-27; 0.010029971
1980-06-30; 0.006631191
1980-07-01; 0.003199363
1980-07-02; 0.009833702
1980-07-03; 0.003256528
1980-07-04;-0.009801573
1980-07-07;-0.013119211
1980-07-08;-0.013293615
1980-07-09; 0
1980-07-10; 0
1980-07-11; 0.003263644
1980-07-14;-0.013428524
1980-07-15;-0.006834447
1980-07-16; 0.016999328
1980-07-17; 0
1980-07-18;-0.006765093
1980-07-21;-0.003399787
1980-07-22;-0.010269267
1980-07-23;-0.006800256
1980-07-24;-0.006952519
1980-07-25;-0.00561829
1980-07-28;-0.001382905
1980-07-29;-0.00694336
1980-07-30; 0.013944555
1980-07-31;-0.003494471
1980-08-01; 0
1980-08-04;-0.002761846
1980-08-05; 0.009738618
1980-08-06; 0.003470217
1980-08-07; 0
1980-08-08; 0
1980-08-11; 0.069930216
1980-08-12; 0.002541794
1980-08-13;-0.005188206
1980-08-14; 0.005773858
1980-08-15; 0
1980-08-18;-0.009608859
1980-08-19;-0.009801573
1980-08-20; 0.005951808
1980-08-21;-0.000593589
1980-08-22;-0.002080342
1980-08-25;-0.005868036
1980-08-26;-0.0026969
1980-08-27; 0.001998402
1980-08-28;-0.003199363
1980-08-29;-0.009963349
1980-09-01; 0.015256745
1980-09-02; 0.025860543
1980-09-03; 0.001164144
1980-09-04; 0.018920132
1980-09-05;-0.001142313
1980-09-08;-0.027324896
1980-09-09; 0.012741504
1980-09-10;-0.003194427
1980-09-11;-0.006419631
1980-09-12; 0.009614058
1980-09-15;-0.006399091
1980-09-16; 0.012757494
1980-09-17; 0.009367302
1980-09-18; 0
1980-09-19; 0.021645867
1980-09-22;-0.006163636
1980-09-23;-0.006107606
1980-09-24; 0.003105446
1980-09-25; 0.00300216
1980-09-26; 0
1980-09-29;-0.006107606
1980-09-30; 0.003105446
1980-10-01; 0.018340597
1980-10-02; 0.001106399
1980-10-03; 0.022775877
1980-10-06; 0.017588954
1980-10-07; 0
1980-10-08;-0.02047548
1980-10-09; 0.005854554
1980-10-10; 0.002959245
1980-10-13; 0.008825553
1980-10-14;-0.002933205
1980-10-15;-0.009929858
1980-10-16;-0.00477629
1980-10-17;-0.008983319
1980-10-20;-0.010906033
1980-10-21; 0.001841282
1980-10-22;-0.002394328
1980-10-23;-0.009728154
1980-10-24;-0.009165796
1980-10-27;-0.006220567
1980-10-28;-0.018800955
1980-10-29;-0.012798313
1980-10-30; 0
1980-10-31;-0.009608859
1980-11-03;-0.016289593
1980-11-04; 0.019535551
1980-11-05; 0.006362901
1980-11-06;-0.016132555
1980-11-07;-0.013075996
1980-11-10;-0.003321092
1980-11-11; 0.019664256
1980-11-12; 0.009737942
1980-11-13; 0.009547077
1980-11-14; 0.00955283
1980-11-17;-0.003174148
1980-11-18; 0.009396943
1980-11-19; 0
1980-11-20;-0.006222795
1980-11-21; 0
1980-11-24;-0.003174148
1980-11-25; 0.001155402
1980-11-26;-0.004339657
1980-11-27; 0
1980-11-28; 0.003184255
1980-12-01; 0.005092982
1980-12-02;-0.005092982
1980-12-03; 0.009396943
1980-12-04;-0.008241542
1980-12-05;-0.008698228
1980-12-08;-0.008382932
1980-12-09;-0.013005109
1980-12-10;-0.003277877
1980-12-11;-0.009798119
1980-12-12;-0.00665325
1980-12-15; 0.00665325
1980-12-16;-0.0233798
1980-12-17;-0.010234234
1980-12-18; 0.003423062
1980-12-19;-0.013658139
1980-12-22; 0.040528019
1980-12-23; 0.013119211
1980-12-24; 0
1980-12-25; 0
1980-12-26; 0
1980-12-29;-0.00648802
1980-12-30; 0.032318084
1980-12-31; 0
1981-01-01; 0
1981-01-02;-0.012782532
1981-01-05;-0.009769654
1981-01-06; 0.009769654
1981-01-07;-0.019535551
1981-01-08; 0.003199363
1981-01-09;-0.003199363
1981-01-12;-0.003310099
1981-01-13; 0.003310099
1981-01-14; 0.001200961
1981-01-15;-0.014507609
1981-01-16;-0.002642009
1981-01-19;-0.000712504
1981-01-20; 0.002135992
1981-01-21; 0.001218522
1981-01-22;-0.013383251
1981-01-23; 0
1981-01-26;-0.013669054
1981-01-27;-0.041947815
1981-01-28; 0.035147558
1981-01-29; 0
1981-01-30; 0.013658139
1981-02-02; 0
1981-02-03; 0
1981-02-04;-0.010199922
1981-02-05;-0.003458217
1981-02-06; 0.010235076
1981-02-09;-0.00813776
1981-02-10;-0.002097316
1981-02-11; 0.017069524
1981-02-12; 0.016783038
1981-02-13; 0.006675457
1981-02-16;-0.013293615
1981-02-17; 0.006618158
1981-02-18; 0.029596241
1981-02-19; 0.01602849
1981-02-20; 0.006378682
1981-02-23;-0.009583346
1981-02-24; 0
1981-02-25;-0.006342413
1981-02-26;-0.009737942
1981-02-27;-0.003267168
1981-03-02;-0.011068568
1981-03-03; 0.004502034
1981-03-04; 0.006566534
1981-03-05;-0.009765897
1981-03-06;-0.003310099
1981-03-09; 0.003310099
1981-03-10; 0.013033065
1981-03-11; 0.009737942
1981-03-12;-0.009737942
1981-03-13; 0.019285018
1981-03-16; 0
1981-03-17; 0.006378682
1981-03-18; 0
1981-03-19; 0.006242517
1981-03-20; 0.004394352
1981-03-23;-0.004394352
1981-03-24;-0.017773094
1981-03-25; 0.02092752
1981-03-26; 0.003144507
1981-03-27;-0.015725705
1981-03-30; 0
1981-03-31; 0.003184255
1981-04-01; 0.018800955
1981-04-02; 0.019567165
1981-04-03; 0.040695897
1981-04-06; 0.014493007
1981-04-07; 0
1981-04-08; 0.002891062
1981-04-09;-0.014450864
1981-04-10; 0.013400536
1981-04-13; 0.020971306
1981-04-14;-0.01703825
1981-04-15; 0.029988929
1981-04-16;-0.004581715
1981-04-17; 0
1981-04-20; 0
1981-04-21; 0.009395304
1981-04-22;-0.006592873
1981-04-23;-0.00552746
1981-04-24;-0.005643935
1981-04-27; 0.002825949
1981-04-28; 0
1981-04-29;-0.025637988
1981-04-30; 0.001840733
1981-05-01; 0
1981-05-04;-0.010564408
1981-05-05;-0.014620926
1981-05-06; 0.002959245
1981-05-07; 0.005892348
1981-05-08; 0.014493007
1981-05-11; 0.002891062
1981-05-12; 0.001049226
1981-05-13; 0.013195781
1981-05-14;-0.009619208
1981-05-15; 0.015295178
1981-05-18; 0
1981-05-19;-0.01703825
1981-05-20;-0.008673233
1981-05-21; 0.002899444
1981-05-22;-0.002899444
1981-05-25; 0.002899444
1981-05-26; 0.019978081
1981-05-27; 0
1981-05-28; 0
1981-05-29; 0.005659907
1981-06-01; 0.002817986
1981-06-02; 0
1981-06-03; 0.005018511
1981-06-04; 0.008869425
1981-06-05; 0.002771364
1981-06-08; 0
1981-06-09; 0.01638631
1981-06-10; 0
1981-06-11; 0.031988439
1981-06-12; 0.022829697
1981-06-15; 0.003041294
1981-06-16;-0.018070888
1981-06-17; 0
1981-06-18; 0
1981-06-19; 0
1981-06-22; 0.007818401
1981-06-23; 0.020478
1981-06-24; 0.015979544
1981-06-25;-0.010445751
1981-06-26;-0.049572259
1981-06-29; 0.005301643
1981-06-30; 0.007900133
1981-07-01; 0.015537203
1981-07-02;-0.002585904
1981-07-03; 0.025409997
1981-07-06; 0.010046511
1981-07-07;-0.02779663
1981-07-08;-0.0025728
1981-07-09; 0.020322919
1981-07-10; 0
1981-07-13;-0.004523334
1981-07-14;-0.015253286
1981-07-15; 0
1981-07-16;-0.004692274
1981-07-17;-0.00518706
1981-07-20;-0.013965156
1981-07-21;-0.016922241
1981-07-22; 0.022182056
1981-07-23;-0.007900133
1981-07-24;-0.010550575
1981-07-27; 0.015824259
1981-07-28;-0.002633365
1981-07-29;-0.013190893
1981-07-30; 0
1981-07-31; 0.013190893
1981-08-03; 0.005259814
1981-08-04;-0.013201776
1981-08-05;-0.001612124
1981-08-06;-0.001049276
1981-08-07; 0.00314453
1981-08-10;-0.005732063
1981-08-11;-0.005358025
1981-08-12; 0
1981-08-13; 0.015908601
1981-08-14; 0.005273684
1981-08-17;-0.010575327
1981-08-18;-0.002661399
1981-08-19;-0.00096954
1981-08-20;-0.001617992
1981-08-21;-0.008047842
1981-08-24; 0.021238736
1981-08-25;-0.037448413
1981-08-26; 0.005459974
1981-08-27;-0.002726261
1981-08-28; 0.018848382
1981-08-31;-0.018848382
1981-09-01; 0.016165781
1981-09-02;-0.016165781
1981-09-03; 0.016165781
1981-09-04; 0.007945558
1981-09-07;-0.005262957
1981-09-08; 0.002675424
1981-09-09;-0.016078698
1981-09-10; 0.023981965
1981-09-11; 0.005287626
1981-09-14; 0.012072262
1981-09-15;-0.004272158
1981-09-16;-0.007800103
1981-09-17; 0.010413035
1981-09-18;-0.00515322
1981-09-21;-0.023808733
1981-09-22;-0.00973383
1981-09-23; 0.012416431
1981-09-24;-0.029828363
1981-09-25;-0.019339369
1981-09-28;-0.031355418
1981-09-29; 0.045243354
1981-09-30;-0.005565877
1981-10-01;-0.008322059
1981-10-02; 0.024844429
1981-10-05; 0.021640701
1981-10-06;-0.020643029
1981-10-07;-0.014733232
1981-10-08; 0.032686444
1981-10-09; 0
1981-10-12;-0.021699626
1981-10-13;-0.008207751
1981-10-14;-0.011162907
1981-10-15; 0
1981-10-16;-0.014044934
1981-10-19;-0.00570837
1981-10-20;-0.001736262
1981-10-21; 0.001736262
1981-10-22; 0.01421029
1981-10-23; 0
1981-10-26;-0.016989758
1981-10-27; 0.005637727
1981-10-28; 0.039014446
1981-10-29;-0.01652237
1981-10-30; 0.008337241
1981-11-02; 0.011921278
1981-11-03;-0.016460245
1981-11-04;-0.001011463
1981-11-05; 0.023585409
1981-11-06; 0.003699597
1981-11-09;-0.01080824
1981-11-10; 0.002733713
1981-11-11;-0.018199016
1981-11-12; 0.012724096
1981-11-13; 0.008201181
1981-11-16; 0.009115983
1981-11-17;-0.006397135
1981-11-18; 0
1981-11-19;-0.002718848
1981-11-20; 0.010749703
1981-11-23;-0.002697072
1981-11-24;-0.00098256
1981-11-25; 0.019630741
1981-11-26; 0.01308773
1981-11-27; 0.020637085
1981-11-30; 0
1981-12-01; 0.012656443
1981-12-02; 0.008476245
1981-12-03;-0.005948767
1981-12-04;-0.002527478
1981-12-07; 0.00756335
1981-12-08; 0
1981-12-09;-0.00909827
1981-12-10;-0.005082016
1981-12-11; 0.001619808
1981-12-14;-0.010225513
1981-12-15; 0.007678921
1981-12-16; 0.00754372
1981-12-17;-0.00754372
1981-12-18;-0.010251721
1981-12-21;-0.002501174
1981-12-22; 0.007640171
1981-12-23; 0.002559629
1981-12-24; 0
1981-12-25; 0
1981-12-28;-0.017977661
1981-12-29;-0.005219053
1981-12-30;-0.007800103
1981-12-31; 0
1982-01-01; 0
1982-01-04; 0.013019157
1982-01-05;-0.010385791
1982-01-06; 0.004214886
1982-01-07;-0.005251444
1982-01-08; 0.004616372
1982-01-11; 0.004199856
1982-01-12;-0.014737193
1982-01-13; 0.004324158
1982-01-14; 0
1982-01-15;-0.002640318
1982-01-18; 0.002640318
1982-01-19; 0.005259814
1982-01-20;-0.002626449
1982-01-21; 0.007779669
1982-01-22;-0.003564784
1982-01-25; 0.003564784
1982-01-26; 0.007798078
1982-01-27;-0.018211113
1982-01-28; 0.007800103
1982-01-29; 0.012996914
1982-02-01; 0.007640171
1982-02-02;-0.002566198
1982-02-03;-0.0025728
1982-02-04; 0.005604872
1982-02-05; 0.002093754
1982-02-08; 0.006639926
1982-02-09; 0.005984366
1982-02-10; 0.044288785
1982-02-11;-0.002417849
1982-02-12;-0.006402495
1982-02-15; 0.001549187
1982-02-16; 0
1982-02-17; 0.018260678
1982-02-18;-0.007118502
1982-02-19; 0.010442444
1982-02-22; 0.008547982
1982-02-23;-0.010931429
1982-02-24; 0.014144914
1982-02-25; 0.003771575
1982-02-26;-0.007628999
1982-03-01;-0.005598235
1982-03-02; 0.015568407
1982-03-03;-0.003762739
1982-03-04; 0.004612718
1982-03-05; 0.008881429
1982-03-08; 0.002733104
1982-03-09;-0.00231214
1982-03-10; 0.00231214
1982-03-11;-0.01388275
1982-03-12;-0.006192852
1982-03-15; 0.007611091
1982-03-16; 0
1982-03-17; 0.003183702
1982-03-18;-0.006946441
1982-03-19; 0.006946441
1982-03-22;-0.004601941
1982-03-23; 0
1982-03-24;-0.007907995
1982-03-25;-0.006242173
1982-03-26;-0.006208958
1982-03-29;-0.003264302
1982-03-30; 0.004784004
1982-03-31; 0
1982-04-01; 0.011789368
1982-04-02; 0.003780453
1982-04-05;-0.008508256
1982-04-06;-0.009450707
1982-04-07;-0.004795475
1982-04-08; 0.005664915
1982-04-09; 0
1982-04-12; 0
1982-04-13;-0.003264302
1982-04-14;-0.007146013
1982-04-15;-0.01943387
1982-04-16; 0.009727198
1982-04-19; 0.004865114
1982-04-20; 0.014382434
1982-04-21; 0.002389141
1982-04-22; 0.004689256
1982-04-23; 0.000935218
1982-04-26;-0.005624474
1982-04-27;-0.026525588
1982-04-28; 0.014595571
1982-04-29;-0.004841559
1982-04-30;-0.002429598
1982-05-03; 0
1982-05-04;-0.02108164
1982-05-05;-0.015935988
1982-05-06; 0.00754433
1982-05-07; 0.011473556
1982-05-10;-0.001577347
1982-05-11; 0.017141573
1982-05-12; 0.002435515
1982-05-13;-0.006359557
1982-05-14; 0.00148258
1982-05-17; 0.002441462
1982-05-18;-0.008832209
1982-05-19; 0.001564304
1982-05-20; 0
1982-05-21; 0.003343863
1982-05-24; 0.00148258
1982-05-25; 0.009730285
1982-05-26;-0.007288823
1982-05-27;-0.008832209
1982-05-28; 0.013697323
1982-05-31; 0
1982-06-01; 0.00432917
1982-06-02;-0.010081398
1982-06-03;-0.004001784
1982-06-04; 0.002447437
1982-06-07;-0.009751091
1982-06-08; 0.014628069
1982-06-09;-0.002435515
1982-06-10; 0
1982-06-11; 0.008754884
1982-06-14;-0.018482081
1982-06-15;-0.000970475
1982-06-16; 0.000970475
1982-06-17; 0
1982-06-18;-0.010802806
1982-06-21;-0.009016237
1982-06-22; 0
1982-06-23; 0.002508458
1982-06-24; 0.004922574
1982-06-25; 0.007451207
1982-06-28;-0.000900225
1982-06-29; 0.000900225
1982-06-30; 0.002471449
1982-07-01;-0.019868453
1982-07-02; 0
1982-07-05; 0
1982-07-06;-0.002521106
1982-07-07; 0.001605075
1982-07-08;-0.009129681
1982-07-09; 0.010045712
1982-07-12; 0.028136965
1982-07-13;-0.008268511
1982-07-14;-0.002471449
1982-07-15; 0
1982-07-16;-0.004961297
1982-07-19; 0.004961297
1982-07-20; 0
1982-07-21; 0.002471449
1982-07-22;-0.002471449
1982-07-23; 0
1982-07-26; 0.01318504
1982-07-27;-0.0009625
1982-07-28;-0.002447437
1982-07-29;-0.004838299
1982-07-30; 0
1982-08-02;-0.003213635
1982-08-03; 0.003735808
1982-08-04;-0.00104462
1982-08-05;-0.001643754
1982-08-06;-0.0065269
1982-08-09;-0.013793322
1982-08-10; 0.008283666
1982-08-11; 0
1982-08-12;-0.002728308
1982-08-13; 0
1982-08-16; 0.002198386
1982-08-17;-0.030210991
1982-08-18; 0.021388299
1982-08-19;-0.009055391
1982-08-20; 0.004537946
1982-08-23; 0.016666418
1982-08-24;-0.008336539
1982-08-25; 0.008336539
1982-08-26; 0.002713297
1982-08-27;-0.002713297
1982-08-30;-0.013831059
1982-08-31; 0.022023821
1982-09-01; 0.021549207
1982-09-02;-0.010753584
1982-09-03; 0.013387475
1982-09-06;-0.002633891
1982-09-07; 0.010639173
1982-09-08; 0.010455444
1982-09-09; 0.00164845
1982-09-10; 0.001002076
1982-09-13;-0.005236177
1982-09-14; 0.010373908
1982-09-15; 0.019593269
1982-09-16; 0.015100377
1982-09-17; 0.003431477
1982-09-20;-0.002469476
1982-09-21;-0.005026347
1982-09-22; 0.022388485
1982-09-23;-0.017362138
1982-09-24;-0.008483687
1982-09-27;-0.045415661
1982-09-28; 0.018243701
1982-09-29; 0.010337839
1982-09-30; 0
1982-10-01; 0.005129117
1982-10-04; 0.005102944
1982-10-05; 0
1982-10-06; 0.002506965
1982-10-07; 0.006654676
1982-10-08; 0.010925316
1982-10-11; 0.017276267
1982-10-12; 0.007294662
1982-10-13;-0.009782978
1982-10-14;-0.00736664
1982-10-15;-0.009953044
1982-10-18;-0.002469476
1982-10-19; 0.002469476
1982-10-20;-0.002469476
1982-10-21; 0.007458381
1982-10-22;-0.007458381
1982-10-25;-0.010078086
1982-10-26; 0.010078086
1982-10-27; 0
1982-10-28;-0.010078086
1982-10-29;-0.00759083
1982-11-01; 0.005090134
1982-11-02; 0.012578782
1982-11-03;-0.005026347
1982-11-04; 0.010027557
1982-11-05;-0.005001209
1982-11-08;-0.005026347
1982-11-09; 0.002550758
1982-11-10; 0.01245312
1982-11-11;-0.00251915
1982-11-12; 0.014819096
1982-11-15; 0.009692265
1982-11-16; 0.023924901
1982-11-17; 0
1982-11-18; 0.027986842
1982-11-19; 0.020503281
1982-11-22;-0.002291945
1982-11-23;-0.011351001
1982-11-24;-0.016123773
1982-11-25;-0.002297385
1982-11-26; 0.004653098
1982-11-29; 0
1982-11-30;-0.006955773
1982-12-01; 0.016134505
1982-12-02; 0.009157688
1982-12-03; 0.012718476
1982-12-06; 0.019414529
1982-12-07;-0.011860371
1982-12-08; 0.002200221
1982-12-09; 0.016289076
1982-12-10;-0.007415256
1982-12-13;-0.00887382
1982-12-14; 0.00887382
1982-12-15;-0.00887382
1982-12-16;-0.013398271
1982-12-17;-0.008200841
1982-12-20;-0.001748252
1982-12-21; 0.005422094
1982-12-22; 0.028975106
1982-12-23;-0.017726532
1982-12-24; 0
1982-12-27; 0.012520394
1982-12-28; 0.002182613
1982-12-29;-0.012492926
1982-12-30; 0.015516451
1982-12-31; 0
1983-01-03; 0.010929071
1983-01-04; 0.004350294
1983-01-05; 0.009410302
1983-01-06;-0.007271899
1983-01-07;-0.006488697
1983-01-10;-0.008697533
1983-01-11; 0.002166457
1983-01-12;-0.008815418
1983-01-13;-0.011099028
1983-01-14; 0.000429171
1983-01-17; 0
1983-01-18;-0.002639253
1983-01-19;-0.002214977
1983-01-20;-0.002281628
1983-01-21;-0.001791949
1983-01-24;-0.02695412
1983-01-25; 0.006017818
1983-01-26; 0.018211336
1983-01-27; 0.011223601
1983-01-28; 0.008913368
1983-01-31; 0.01238275
1983-02-01; 0.009499698
1983-02-02;-0.004350294
1983-02-03; 0.01646664
1983-02-04; 0.011390643
1983-02-07; 0.010515466
1983-02-08; 0.020704909
1983-02-09;-0.006155256
1983-02-10; 0.010648888
1983-02-11; 0.01181138
1983-02-14; 0.011235454
1983-02-15; 0.014624992
1983-02-16; 0.005865751
1983-02-17; 0.001233343
1983-02-18; 0.02576385
1983-02-21; 0.028117197
1983-02-22; 0.003649454
1983-02-23; 0.003686594
1983-02-24; 0.02646394
1983-02-25; 0.006020134
1983-02-28;-0.003519581
1983-03-01;-0.02163183
1983-03-02; 0.015590406
1983-03-03; 0.007802763
1983-03-04;-0.001761339
1983-03-07; 0.038427474
1983-03-08;-0.012041484
1983-03-09;-0.003487737
1983-03-10; 0.010379563
1983-03-11;-0.012151976
1983-03-14;-0.001727531
1983-03-15;-0.021211813
1983-03-16; 0.008888947
1983-03-17;-0.001751996
1983-03-18; 0.003549465
1983-03-21;-0.001797469
1983-03-22; 0
1983-03-23; 0.00881063
1983-03-24; 0.010499917
1983-03-25; 0.005185179
1983-03-28; 0.01880108
1983-03-29;-0.011944775
1983-03-30; 0.015338154
1983-03-31; 0.009468237
1983-04-01; 0
1983-04-04; 0
1983-04-05; 0.003304271
1983-04-06; 0.020452836
1983-04-07;-0.008203418
1983-04-08;-0.008271271
1983-04-11; 0.027234921
1983-04-12; 0.012840206
1983-04-13;-0.000964997
1983-04-14; 0.022091474
1983-04-15; 0.02471774
1983-04-18; 0.032953268
1983-04-19; 0.001498128
1983-04-20;-0.003526197
1983-04-21; 0.0093757
1983-04-22;-0.005849503
1983-04-25;-0.000566595
1983-04-26;-0.0098042
1983-04-27; 0.020635139
1983-04-28; 0
1983-04-29; 0.00869224
1983-05-02;-0.011619912
1983-05-03; 0
1983-05-04; 0.008199882
1983-05-05;-0.017034681
1983-05-06;-0.005892769
1983-05-09; 0
1983-05-10;-0.014947716
1983-05-11;-0.017655988
1983-05-12; 0
1983-05-13; 0.005543205
1983-05-16;-0.010736267
1983-05-17; 0.00460334
1983-05-18; 0.015801683
1983-05-19; 0.005995842
1983-05-20;-0.000536094
1983-05-23; 0
1983-05-24;-0.003015721
1983-05-25; 0.004499584
1983-05-26; 0
1983-05-27;-0.006031581
1983-05-30;-0.015197988
1983-05-31;-0.004596352
1983-06-01;-0.017050711
1983-06-02; 0
1983-06-03; 0.017050711
1983-06-06; 0.010720019
1983-06-07; 0.012094659
1983-06-08;-0.005468116
1983-06-09;-0.000540148
1983-06-10; 0.001495079
1983-06-13; 0.012003857
1983-06-14; 0.014289738
1983-06-15;-0.016711891
1983-06-16; 0.011361901
1983-06-17; 0
1983-06-20; 0.016684517
1983-06-21; 0.016764487
1983-06-22; 0.011371974
1983-06-23; 0.012664751
1983-06-24; 0.030233191
1983-06-27; 0.037267309
1983-06-28;-0.013140509
1983-06-29;-0.004005249
1983-06-30; 0.018436034
1983-07-01; 0.025741265
1983-07-04; 0.013866482
1983-07-05; 0
1983-07-06;-0.001240139
1983-07-07; 0.034521814
1983-07-08;-0.008057684
1983-07-11;-0.023951003
1983-07-12;-0.03051167
1983-07-13;-0.005973139
1983-07-14; 0.009829571
1983-07-15; 0
1983-07-18;-0.015515773
1983-07-19;-0.001327855
1983-07-20; 0.003906745
1983-07-21; 0.0193431
1983-07-22;-0.003831759
1983-07-25; 0.003831759
1983-07-26; 0.003852085
1983-07-27; 0
1983-07-28;-0.002554727
1983-07-29;-0.010249275
1983-08-01;-0.015591589
1983-08-02; 0.014280857
1983-08-03; 0
1983-08-04;-0.000815646
1983-08-05;-0.018223005
1983-08-08;-0.019076682
1983-08-09;-0.005131908
1983-08-10;-0.011091788
1983-08-11; 0.017548541
1983-08-12; 0.030317974
1983-08-15; 0.003881426
1983-08-16;-0.002562188
1983-08-17;-0.006506064
1983-08-18; 0.007787979
1983-08-19;-0.007787979
1983-08-22;-0.005249922
1983-08-23;-0.002635333
1983-08-24; 0.001336585
1983-08-25;-0.003978881
1983-08-26;-0.001305625
1983-08-29;-0.006626881
1983-08-30; 0.005319549
1983-08-31;-0.006635579
1983-09-01; 0.01582323
1983-09-02;-0.013192899
1983-09-05; 0
1983-09-06;-0.003472035
1983-09-07; 0.000329447
1983-09-08; 0.001828288
1983-09-09;-0.002670424
1983-09-12; 0.002670424
1983-09-13;-0.002670424
1983-09-14;-0.002677574
1983-09-15; 0.014620623
1983-09-16;-0.002645744
1983-09-19; 0.011833177
1983-09-20;-0.001327855
1983-09-21;-0.001293661
1983-09-22; 0.002621516
1983-09-23; 0.001290277
1983-09-26;-0.001290277
1983-09-27;-0.001327855
1983-09-28; 0.001327855
1983-09-29;-0.002621516
1983-09-30;-0.005263739
1983-10-03; 0
1983-10-04; 0
1983-10-05; 0.003932397
1983-10-06; 0.007854429
1983-10-07; 0.006480812
1983-10-10; 0.000816022
1983-10-11; 0.005623059
1983-10-12;-0.005162123
1983-10-13; 0.017917219
1983-10-14; 0.010081324
1983-10-17; 0
1983-10-18; 0.007486299
1983-10-19;-0.003736144
1983-10-20;-0.013831479
1983-10-21; 0.007561866
1983-10-24; 0.008773344
1983-10-25; 0.040316266
1983-10-26;-0.013247859
1983-10-27;-0.001234342
1983-10-28; 0.009237174
1983-10-31; 0.00405988
1983-11-01;-0.001219532
1983-11-02;-0.001188001
1983-11-03;-0.006027706
1983-11-04;-0.010955719
1983-11-07; 0.000470083
1983-11-08; 0.009289027
1983-11-09; 0.001960361
1983-11-10; 0.012239732
1983-11-11; 0.007122816
1983-11-14; 0.029418132
1983-11-15; 0.003439954
1983-11-16; 0
1983-11-17;-0.003439954
1983-11-18;-0.020924273
1983-11-21;-0.015419954
1983-11-22; 0.004774996
1983-11-23; 0.007087617
1983-11-24;-0.001166975
1983-11-25; 0.003529168
1983-11-28; 0.003516757
1983-11-29;-0.00587895
1983-11-30; 0.007069905
1983-12-01;-0.003512563
1983-12-02; 0.002321608
1983-12-05;-0.00116013
1983-12-06; 0.004696657
1983-12-07; 0
1983-12-08; 0.010439875
1983-12-09;-0.006532118
1983-12-12; 0.003064256
1983-12-13;-0.001147996
1983-12-14; 0
1983-12-15;-0.012877299
1983-12-16;-0.00944981
1983-12-19; 0.01765779
1983-12-20;-0.00189312
1983-12-21; 0.00189312
1983-12-22; 0.011600984
1983-12-23;-0.011600984
1983-12-26; 0
1983-12-27;-0.002342861
1983-12-28;-0.002348363
1983-12-29; 0.007028609
1983-12-30; 0
1984-01-02; 0.01040367
1984-01-03;-0.00114007
1984-01-04;-0.008112925
1984-01-05; 0.009252995
1984-01-06;-0.002281442
1984-01-09;-0.001174436
1984-01-10;-0.013976401
1984-01-11;-0.002321608
1984-01-12;-0.003557342
1984-01-13;-0.014225826
1984-01-16;-0.008414919
1984-01-17; 0.008414919
1984-01-18; 0.004753562
1984-01-19; 0.005934736
1984-01-20;-0.002376187
1984-01-23; 0.012533156
1984-01-24;-0.004257247
1984-01-25; 0.003516757
1984-01-26; 0.012832381
1984-01-27; 0.021733491
1984-01-30; 0.006790618
1984-01-31;-0.001144041
1984-02-01; 0.015655056
1984-02-02; 0.004436888
1984-02-03;-0.002215983
1984-02-06;-0.029201181
1984-02-07;-0.009147124
1984-02-08; 0
1984-02-09;-0.039844882
1984-02-10;-0.004809285
1984-02-13; 0.011947495
1984-02-14;-0.009539961
1984-02-15; 0.010290112
1984-02-16; 0.020395699
1984-02-17; 0.002329256
1984-02-20;-0.014025295
1984-02-21;-0.014224806
1984-02-22;-0.009585843
1984-02-23; 0.004820878
1984-02-24; 0
1984-02-27; 0.003584056
1984-02-28;-0.00599159
1984-02-29;-0.015741543
1984-03-01; 0
1984-03-02; 0.007285885
1984-03-05;-0.003636307
1984-03-06;-0.003649578
1984-03-07;-0.002451681
1984-03-08;-0.010614663
1984-03-09;-0.006683286
1984-03-12;-0.026486105
1984-03-13; 0.017758127
1984-03-14; 0
1984-03-15; 0.004991834
1984-03-16; 0.021034092
1984-03-19;-0.001211265
1984-03-20; 0.00443415
1984-03-21;-0.001543003
1984-03-22; 0.006858164
1984-03-23;-0.008538046
1984-03-26; 0
1984-03-27; 0.003222885
1984-03-28; 0.007746024
1984-03-29;-0.001231343
1984-03-30; 0.005280738
1984-04-02;-0.012566623
1984-04-03; 0.005619496
1984-04-04;-0.016682749
1984-04-05; 0
1984-04-06;-0.002478989
1984-04-09;-0.017457957
1984-04-10;-0.001281008
1984-04-11; 0.0162879
1984-04-12;-0.006222668
1984-04-13; 0.013625581
1984-04-16;-0.011159235
1984-04-17;-0.003736144
1984-04-18;-0.007514426
1984-04-19; 0
1984-04-20; 0
1984-04-23; 0
1984-04-24;-0.011413583
1984-04-25; 0
1984-04-26;-0.005087463
1984-04-27;-0.007733226
1984-04-30; 0.003856432
1984-05-01; 0
1984-05-02; 0.026655237
1984-05-03; 0.013218534
1984-05-04;-0.003262757
1984-05-07;-0.013710583
1984-05-08;-0.010128776
1984-05-09;-0.014043695
1984-05-10;-0.011664843
1984-05-11;-0.003906745
1984-05-14;-0.011812654
1984-05-15; 0.003953076
1984-05-16; 0.005234575
1984-05-17;-0.003932397
1984-05-18;-0.002642296
1984-05-21; 0.010527552
1984-05-22; 0.005186826
1984-05-23; 0.001319238
1984-05-24; 0.002562188
1984-05-25;-0.0017786
1984-05-28;-0.007289652
1984-05-29; 0
1984-05-30;-0.010527552
1984-05-31; 0
1984-06-01;-0.007932506
1984-06-04; 0.019750335
1984-06-05; 0.002111026
1984-06-06; 0.003104761
1984-06-07; 0.005153277
1984-06-08; 0.016628088
1984-06-11; 0
1984-06-12;-0.008894862
1984-06-13; 0.005087463
1984-06-14;-0.008964256
1984-06-15;-0.013402024
1984-06-18;-0.002113749
1984-06-19; 0.004722897
1984-06-20; 0.000463929
1984-06-21; 0
1984-06-22; 0.001319238
1984-06-25;-0.010458923
1984-06-26; 0.015612199
1984-06-27; 0.025479085
1984-06-28; 0.013284784
1984-06-29;-0.012007005
1984-07-02; 0.006261632
1984-07-03;-0.036889858
1984-07-04;-0.005209088
1984-07-05;-0.045258579
1984-07-06;-0.001385794
1984-07-09;-0.002702197
1984-07-10; 0.016252641
1984-07-11;-0.01216465
1984-07-12;-0.019272788
1984-07-13; 0.015184797
1984-07-16; 0.010876782
1984-07-17;-0.009524771
1984-07-18;-0.008215301
1984-07-19;-0.00691072
1984-07-20;-0.001410787
1984-07-23;-0.011165584
1984-07-24; 0.004196914
1984-07-25;-0.007017573
1984-07-26; 0.009818534
1984-07-27; 0.002793138
1984-07-30; 0.003623261
1984-07-31;-0.000837904
1984-08-01; 0.030026651
1984-08-02; 0.0160291
1984-08-03; 0.013158085
1984-08-06; 0.003906745
1984-08-07;-0.019724648
1984-08-08; 0.011895835
1984-08-09; 0.002628406
1984-08-10; 0.020711747
1984-08-13;-0.002574458
1984-08-14; 0.002327879
1984-08-15;-0.001022189
1984-08-16;-0.011634637
1984-08-17; 0.005195556
1984-08-20;-0.002594404
1984-08-21; 0.011604588
1984-08-22;-0.002571103
1984-08-23; 0.002571103
1984-08-24;-0.001302336
1984-08-27;-0.007707849
1984-08-28;-0.010382383
1984-08-29; 0.012970073
1984-08-30;-0.012970073
1984-08-31;-0.009187433
1984-09-03;-0.001340119
1984-09-04; 0.005782243
1984-09-05;-0.0083952
1984-09-06; 0
1984-09-07;-0.005319549
1984-09-10; 0.002663312
1984-09-11; 0.009248076
1984-09-12; 0.00654867
1984-09-13; 0.001290277
1984-09-14; 0.009092106
1984-09-17;-0.006480812
1984-09-18; 0.02946307
1984-09-19; 0.005051564
1984-09-20;-0.010128776
1984-09-21;-0.017905046
1984-09-24;-0.009092106
1984-09-25;-0.002618131
1984-09-26; 0.024547203
1984-09-27;-0.008975615
1984-09-28; 0.003846498
1984-10-01; 0.001302336
1984-10-02;-0.011604588
1984-10-03;-0.020928488
1984-10-04; 0.005255254
1984-10-05; 0.010464146
1984-10-08; 0.005209088
1984-10-09;-0.006497702
1984-10-10;-0.001290277
1984-10-11; 0.001290277
1984-10-12;-0.003911792
1984-10-15; 0.007808342
1984-10-16; 0.004130177
1984-10-17;-0.014566926
1984-10-18; 0.007363671
1984-10-19;-0.039381058
1984-10-22; 0.054088773
1984-10-23;-0.011634637
1984-10-24; 0.005195556
1984-10-25; 0.001276958
1984-10-26;-0.016404649
1984-10-29;-0.011051438
1984-10-30; 0.015294522
1984-10-31;-0.007853066
1984-11-01; 0.021325364
1984-11-02;-0.010391183
1984-11-05;-0.00257889
1984-11-06;-0.009187433
1984-11-07;-0.009272625
1984-11-08;-0.002670424
1984-11-09; 0.009297305
1984-11-12;-0.014622816
1984-11-13; 0.001324845
1984-11-14; 0.00535506
1984-11-15;-0.004509549
1984-11-16; 0.000477581
1984-11-19;-0.002647937
1984-11-20; 0.002647937
1984-11-21; 0
1984-11-22; 0.004507401
1984-11-23;-0.000987691
1984-11-26; 0.000512258
1984-11-27;-0.009371795
1984-11-28; 0.001586511
1984-11-29;-0.008329525
1984-11-30;-0.001376412
1984-12-03; 0.008119425
1984-12-04; 0.008017402
1984-12-05; 0.002670424
1984-12-06;-0.00131603
1984-12-07;-0.006679904
1984-12-10;-0.000515692
1984-12-11;-0.000847786
1984-12-12; 0
1984-12-13;-0.003176365
1984-12-14;-0.025401283
1984-12-17; 0.00548693
1984-12-18; 0.013642879
1984-12-19; 0
1984-12-20; 0
1984-12-21;-0.00406588
1984-12-24; 0
1984-12-25; 0
1984-12-26; 0
1984-12-27; 0.018883156
1984-12-28;-0.001358023
1984-12-31; 0
1985-01-01; 0
1985-01-02; 0.004031968
1985-01-03;-0.00535506
1985-01-04;-0.009422354
1985-01-07; 0.012103469
1985-01-08;-0.002681114
1985-01-09; 0.030317974
1985-01-10; 0.006472515
1985-01-11;-0.00775777
1985-01-14;-0.011786826
1985-01-15; 0.013072082
1985-01-16;-0.009139685
1985-01-17;-0.006574693
1985-01-18; 0.013106442
1985-01-21;-0.003906745
1985-01-22; 0.001327855
1985-01-23;-0.023808056
1985-01-24; 0.005347998
1985-01-25;-0.007995935
1985-01-28;-0.004059046
1985-01-29;-0.00266578
1985-01-30;-0.01223485
1985-01-31; 0.013568628
1985-02-01;-0.021783929
1985-02-04;-0.019487091
1985-02-05; 0.011165584
1985-02-06; 0.004150411
1985-02-07; 0.001404948
1985-02-08;-0.005555358
1985-02-11;-0.013986242
1985-02-12;-0.002828637
1985-02-13; 0.014025583
1985-02-14; 0.024267898
1985-02-15;-0.006293806
1985-02-18; 0.004087991
1985-02-19; 0.050467667
1985-02-20; 0.005182094
1985-02-21;-0.012970073
1985-02-22; 0
1985-02-25;-0.002621516
1985-02-26;-0.005263739
1985-02-27; 0.000253004
1985-02-28; 0.008922527
1985-03-01; 0.010369064
1985-03-04;-0.006472515
1985-03-05; 0
1985-03-06; 0.011634637
1985-03-07;-0.005162123
1985-03-08; 0
1985-03-11;-0.001276958
1985-03-12;-0.002594404
1985-03-13;-0.003065082
1985-03-14;-0.012608152
1985-03-15; 0.002635333
1985-03-18; 0.006540199
1985-03-19; 0.016799955
1985-03-20; 0.005129117
1985-03-21; 0.002554727
1985-03-22;-0.001294046
1985-03-25;-0.032365285
1985-03-26; 0.005263739
1985-03-27;-0.010518993
1985-03-28; 0.001307332
1985-03-29;-0.001307332
1985-04-01;-0.016007375
1985-04-02; 0.004016736
1985-04-03;-0.009422354
1985-04-04; 0.002706462
1985-04-05; 0
1985-04-08; 0
1985-04-09;-0.001333778
1985-04-10; 0.011537384
1985-04-11;-0.003745185
1985-04-12;-0.001067373
1985-04-15; 0.005325511
1985-04-16;-0.002677574
1985-04-17; 0
1985-04-18; 0.006844704
1985-04-19;-0.00416713
1985-04-22; 0.002670424
1985-04-23;-0.005347998
1985-04-24;-0.009372762
1985-04-25; 0
1985-04-26;-0.00949887
1985-04-29;-0.009589965
1985-04-30;-0.011057394
1985-05-01; 0
1985-05-02;-0.015440308
1985-05-03; 0.003988775
1985-05-06; 0.025263698
1985-05-07; 0.002747203
1985-05-08; 0.01894821
1985-05-09; 0.001363477
1985-05-10;-0.00809751
1985-05-13; 0.006734032
1985-05-14; 0
1985-05-15;-0.012131704
1985-05-16; 0
1985-05-17;-0.010959014
1985-05-20; 0.002751033
1985-05-21; 0.029699096
1985-05-22; 0.018460058
1985-05-23; 0.012970073
1985-05-24; 0.025446132
1985-05-27; 0
1985-05-28;-0.013131572
1985-05-29;-0.020097807
1985-05-30;-0.007808342
1985-05-31; 0.006523087
1985-06-03; 0.000821326
1985-06-04;-0.012608152
1985-06-05;-0.003947922
1985-06-06; 0
1985-06-07; 0.011833177
1985-06-10; 0.009068252
1985-06-11; 0.066342789
1985-06-12; 0.033329332
1985-06-13;-0.01654217
1985-06-14;-0.010752261
1985-06-17; 0
1985-06-18; 0.022586719
1985-06-19; 0.026692913
1985-06-20; 0.014806293
1985-06-21; 0.02891046
1985-06-24;-0.008804498
1985-06-25;-0.015620054
1985-06-26;-0.051884835
1985-06-27; 0.024567315
1985-06-28; 0.018294343
1985-07-01;-0.007974399
1985-07-02; 0.010245607
1985-07-03; 0.012354225
1985-07-04; 0.016620881
1985-07-05; 0.019581212
1985-07-08;-0.010834407
1985-07-09;-0.013133906
1985-07-10;-0.05561317
1985-07-11; 0.019648619
1985-07-12;-0.040869145
1985-07-15;-0.035189556
1985-07-16;-0.009918789
1985-07-17;-0.002503731
1985-07-18; 0.01242252
1985-07-19; 0.012270093
1985-07-22; 0.003444877
1985-07-23;-0.001002138
1985-07-24; 0.002436787
1985-07-25;-0.015895487
1985-07-26;-0.006184186
1985-07-29; 0
1985-07-30;-0.010002481
1985-07-31;-0.006285419
1985-08-01; 0.041995046
1985-08-02; 0
1985-08-05; 0.022727505
1985-08-06; 0.004697506
1985-08-07;-0.011834458
1985-08-08; 0.051285118
1985-08-09; 0.002048545
1985-08-12;-0.011350647
1985-08-13;-0.002291959
1985-08-14; 0.002291959
1985-08-15; 0.006813378
1985-08-16;-0.00455795
1985-08-19;-0.03004736
1985-08-20; 0.002351086
1985-08-21; 0.011641426
1985-08-22; 0.021733491
1985-08-23;-0.019415036
1985-08-26; 0.020565551
1985-08-27; 0.028975106
1985-08-28;-0.002206272
1985-08-29; 0.028249876
1985-08-30; 0.020120934
1985-09-02;-0.002077743
1985-09-03; 0.004179945
1985-09-04;-0.022223137
1985-09-05; 0.016973781
1985-09-06; 0.041242959
1985-09-09; 0.008042828
1985-09-10; 0.02961733
1985-09-11;-0.009775301
1985-09-12; 0
1985-09-13;-0.031916728
1985-09-16; 0.006055574
1985-09-17; 0.008026633
1985-09-18; 0
1985-09-19;-0.012078142
1985-09-20; 0.008086671
1985-09-23;-0.026467736
1985-09-24;-0.029284964
1985-09-25; 0.018922177
1985-09-26;-0.009401889
1985-09-27;-0.01165152
1985-09-30; 0.01165152
1985-10-01; 0.006277738
1985-10-02; 0.009371765
1985-10-03; 0.002045513
1985-10-04; 0.008253064
1985-10-07; 0.016249171
1985-10-08;-0.022432575
1985-10-09; 0.004126514
1985-10-10;-0.020747396
1985-10-11; 0.017668254
1985-10-14; 0.015329628
1985-10-15; 0.014082207
1985-10-16;-0.008026633
1985-10-17; 0.012029599
1985-10-18; 0.007931034
1985-10-21;-0.009930514
1985-10-22;-0.014081629
1985-10-23; 0.018076599
1985-10-24; 0.017728801
1985-10-25;-0.019724292
1985-10-28;-0.00199948
1985-10-29; 0.007946845
1985-10-30; 0.033119684
1985-10-31; 0.017089081
1985-11-01; 0.0260186
1985-11-04; 0.018182319
1985-11-05;-0.046091107
1985-11-06; 0.047896229
1985-11-07; 0.007163548
1985-11-08;-0.019843346
1985-11-11;-0.012817299
1985-11-12; 0.014642139
1985-11-13; 0.090348294
1985-11-14;-0.03896884
1985-11-15; 0.008598546
1985-11-18; 0.010226258
1985-11-19; 0.021808328
1985-11-20; 0
1985-11-21; 0.001638785
1985-11-22;-0.003303077
1985-11-25;-0.006662036
1985-11-26;-0.018570356
1985-11-27;-0.02240957
1985-11-28;-0.008749004
1985-11-29;-0.012363979
1985-12-02;-0.03808727
1985-12-03; 0.00919965
1985-12-04; 0.027101795
1985-12-05; 0.008873129
1985-12-06;-0.023226027
1985-12-09;-0.010914058
1985-12-10; 0.00363459
1985-12-11;-0.009149241
1985-12-12; 0.009149241
1985-12-13; 0.028732294
1985-12-16; 0.014074369
1985-12-17; 0.003469941
1985-12-18;-0.001745431
1985-12-19;-0.014025678
1985-12-20;-0.007087305
1985-12-23; 0.012363979
1985-12-24; 0
1985-12-25; 0
1985-12-26; 0
1985-12-27; 0.003518415
1985-12-30;-0.00175766
1985-12-31; 0
1986-01-01; 0
1986-01-02; 0.003512236
1986-01-03; 0.019052726
1986-01-06; 0.038683196
1986-01-07;-0.018323114
1986-01-08; 0.088410957
1986-01-09;-0.015504187
1986-01-10;-0.001568021
1986-01-13;-0.004697272
1986-01-14; 0.00783086
1986-01-15; 0.010869672
1986-01-16; 0.013788966
1986-01-17;-0.009178519
1986-01-20; 0.003075888
1986-01-21;-0.012339434
1986-01-22;-0.017205696
1986-01-23;-0.046816163
1986-01-24; 0.02933129
1986-01-27; 0.001586218
1986-01-28;-0.034215101
1986-01-29;-0.005001209
1986-01-30;-0.039077866
1986-01-31; 0.006903696
1986-02-03; 0.015367052
1986-02-04; 0.025105921
1986-02-05; 0.022872376
1986-02-06; 0.004848092
1986-02-07;-0.004848092
1986-02-10;-0.014641877
1986-02-11;-0.004921114
1986-02-12;-0.001653323
1986-02-13;-0.047296392
1986-02-14;-0.005218087
1986-02-17;-0.01932066
1986-02-18; 0.01058698
1986-02-19; 0.017391743
1986-02-20;-0.042254868
1986-02-21;-0.00540033
1986-02-24;-0.00363311
1986-02-25;-0.018315438
1986-02-26;-0.033827134
1986-02-27;-0.065191831
1986-02-28; 0.030153038
1986-03-03;-0.017976964
1986-03-04; 0.033710445
1986-03-05; 0.032585096
1986-03-06; 0.024247491
1986-03-07;-0.005555358
1986-03-10; 0.014721187
1986-03-11; 0.02700394
1986-03-12;-0.008920535
1986-03-13; 0.001770826
1986-03-14;-0.010771653
1986-03-17;-0.034982211
1986-03-18;-0.007513688
1986-03-19;-0.003765114
1986-03-20;-0.013356578
1986-03-21;-0.015463404
1986-03-24;-0.001956554
1986-03-25; 0.003882564
1986-03-26; 0.017379302
1986-03-27; 0.055775683
1986-03-28; 0
1986-03-31; 0
1986-04-01;-0.005454627
1986-04-02;-0.01279378
1986-04-03; 0.003661297
1986-04-04; 0
1986-04-07; 0.009132484
1986-04-08; 0.046194152
1986-04-09; 0.003475697
1986-04-10;-0.015712522
1986-04-11; 0.012236824
1986-04-14; 0.012088893
1986-04-15; 0.006832857
1986-04-16; 0.003387339
1986-04-17; 0.035037438
1986-04-18; 0.004919424
1986-04-21;-0.026452064
1986-04-22; 0.001678219
1986-04-23;-0.01178387
1986-04-24;-0.003399147
1986-04-25;-0.010220196
1986-04-28;-0.036689697
1986-04-29; 0.008857368
1986-04-30; 0.003506612
1986-05-01; 0
1986-05-02; 0.003518415
1986-05-05;-0.01056829
1986-05-06; 0.015798879
1986-05-07; 0.025796909
1986-05-08; 0
1986-05-09;-0.02056973
1986-05-12;-0.017482795
1986-05-13; 0.001766935
1986-05-14; 0.003500432
1986-05-15;-0.012342094
1986-05-16;-0.00178264
1986-05-19; 0
1986-05-20;-0.008936522
1986-05-21; 0.008936522
1986-05-22; 0.028076501
1986-05-23; 0.01202372
1986-05-26; 0
1986-05-27;-0.018987237
1986-05-28;-0.005230589
1986-05-29; 0
1986-05-30; 0.012194107
1986-06-02;-0.005218087
1986-06-03;-0.035401927
1986-06-04;-0.007228319
1986-06-05; 0.016196989
1986-06-06; 0.015938822
1986-06-09; 0.003518415
1986-06-10;-0.003518415
1986-06-11;-0.007049875
1986-06-12; 0.00881063
1986-06-13; 0.00873368
1986-06-16; 0.034191365
1986-06-17; 0
1986-06-18; 0.018323114
1986-06-19;-0.006617947
1986-06-20;-0.020144035
1986-06-23; 0.003393379
1986-06-24; 0
1986-06-25;-0.010191438
1986-06-26;-0.006844589
1986-06-27; 0.025446428
1986-06-30; 0
1986-07-01;-0.016892137
1986-07-02; 0.006786486
1986-07-03; 0.00169525
1986-07-04;-0.044916984
1986-07-07;-0.021439204
1986-07-08;-0.012700881
1986-07-09; 0.005459431
1986-07-10; 0.014455454
1986-07-11; 0.028250878
1986-07-14; 0
1986-07-15;-0.012255616
1986-07-16;-0.026810994
1986-07-17; 0.017953627
1986-07-18;-0.001785824
1986-07-21;-0.019807524
1986-07-22;-0.01279378
1986-07-23; 0.003661297
1986-07-24; 0.01458711
1986-07-25; 0.044215223
1986-07-28;-0.011400561
1986-07-29;-0.028675101
1986-07-30; 0.002075715
1986-07-31;-0.004155747
1986-08-01;-0.010465559
1986-08-04;-0.021291135
1986-08-05; 0.021291135
1986-08-06; 0.004199376
1986-08-07; 0.016623348
1986-08-08; 0.058067072
1986-08-11; 0.032544118
1986-08-12; 0.016798155
1986-08-13; 0.066280459
1986-08-14;-0.006952807
1986-08-15;-0.0105207
1986-08-18; 0.039762131
1986-08-19; 0.033338073
1986-08-20;-0.01654003
1986-08-21;-0.003337111
1986-08-22; 0.024780446
1986-08-25; 0.02256947
1986-08-26;-0.016068905
1986-08-27; 0.033470136
1986-08-28; 0.003128203
1986-08-29; 0.003118448
1986-09-01; 0.007753837
1986-09-02; 0.001543579
1986-09-03;-0.018682086
1986-09-04;-0.009473577
1986-09-05;-0.04880244
1986-09-08; 0.044012805
1986-09-09; 0.00159278
1986-09-10; 0
1986-09-11;-0.00159278
1986-09-12;-0.02256947
1986-09-15; 0.001629107
1986-09-16; 0.001626457
1986-09-17;-0.014753871
1986-09-18; 0
1986-09-19;-0.03013681
1986-09-22; 0.01182803
1986-09-23; 0.037926211
1986-09-24;-0.00161856
1986-09-25;-0.00813233
1986-09-26;-0.001634432
1986-09-29;-0.00988276
1986-09-30; 0.013148958
1986-10-01; 0.027359104
1986-10-02; 0
1986-10-03;-0.001587692
1986-10-06;-0.006395133
1986-10-07;-0.001600427
1986-10-08;-0.004816707
1986-10-09;-0.01459091
1986-10-10;-0.001634432
1986-10-13;-0.008232109
1986-10-14; 0.008232109
1986-10-15;-0.001637108
1986-10-16;-0.014875642
1986-10-17;-0.018462432
1986-10-20; 0.001692559
1986-10-21; 0.010095633
1986-10-22;-0.018587223
1986-10-23;-0.010306529
1986-10-24; 0.008599524
1986-10-27;-0.008599524
1986-10-28;-0.006916739
1986-10-29;-0.005219132
1986-10-30; 0.001742739
1986-10-31; 0.006940743
1986-11-03;-0.005201035
1986-11-04; 0.005201035
1986-11-05;-0.006940743
1986-11-06; 0.001739707
1986-11-07; 0
1986-11-10; 0.005201035
1986-11-11;-0.017443027
1986-11-12;-0.010634926
1986-11-13; 0.012392984
1986-11-14;-0.005283474
1986-11-17;-0.00176738
1986-11-18;-0.007122131
1986-11-19; 0
1986-11-20; 0.005351622
1986-11-21; 0.017565589
1986-11-24; 0.034251807
1986-11-25; 0.006707817
1986-11-26;-0.006707817
1986-11-27; 0.010044928
1986-11-28;-0.003337111
1986-12-01; 0.001669947
1986-12-02;-0.008377764
1986-12-03; 0.010044928
1986-12-04;-0.001667163
1986-12-05; 0.004993174
1986-12-08;-0.003326011
1986-12-09;-0.003337111
1986-12-10; 0.001669947
1986-12-11; 0.001667163
1986-12-12;-0.02019178
1986-12-15;-0.005112299
1986-12-16; 0.011888294
1986-12-17; 0
1986-12-18;-0.017047307
1986-12-19; 0.006866018
1986-12-22;-0.010306529
1986-12-23; 0.008599524
1986-12-24; 0
1986-12-25; 0
1986-12-26; 0
1986-12-29; 0.001707005
1986-12-30;-0.001707005
1986-12-31; 0
1987-01-01; 0
1987-01-02;-0.041909867
1987-01-05; 0.010653772
1987-01-06; 0.017473507
1987-01-07;-0.008698589
1987-01-08;-0.01230656
1987-01-09;-0.036041675
1987-01-12;-0.022274406
1987-01-13;-0.040198064
1987-01-14; 0.003896561
1987-01-15; 0.011622284
1987-01-16; 0.007658681
1987-01-19;-0.019280965
1987-01-20;-0.001946382
1987-01-21;-0.015708965
1987-01-22; 0.003950437
1987-01-23; 0.003934892
1987-01-26;-0.011851433
1987-01-27;-0.026194627
1987-01-28;-0.04167528
1987-01-29; 0.035537302
1987-01-30; 0.034317623
1987-02-02;-0.003973985
1987-02-03;-0.018105128
1987-02-04;-0.045651541
1987-02-05; 0.031358639
1987-02-06; 0.026407284
1987-02-09; 0.009964732
1987-02-10;-0.012973617
1987-02-11;-0.007080228
1987-02-12; 0.008084196
1987-02-13; 0.001002961
1987-02-16;-0.004041859
1987-02-17;-0.033779256
1987-02-18;-0.008363667
1987-02-19; 0.043172876
1987-02-20; 0
1987-02-23;-0.020339028
1987-02-24;-0.008243018
1987-02-25;-0.010400252
1987-02-26;-0.004190577
1987-02-27;-0.008459417
1987-03-02; 0.006357524
1987-03-03; 0.002101892
1987-03-04; 0.024884029
1987-03-05; 0.006125445
1987-03-06;-0.012288641
1987-03-09; 0.005138632
1987-03-10;-0.001025616
1987-03-11;-0.008243018
1987-03-12;-0.002071415
1987-03-13;-0.008328837
1987-03-16;-0.012649994
1987-03-17; 0.006357524
1987-03-18;-0.014863689
1987-03-19;-0.021587455
1987-03-20; 0.004354933
1987-03-23; 0.021494648
1987-03-24; 0.021067122
1987-03-25; 0.004155747
1987-03-26; 0.030653462
1987-03-27; 0.043313442
1987-03-30; 0.00192387
1987-03-31;-0.003874419
1987-04-01; 0.032296957
1987-04-02; 0.022192098
1987-04-03;-0.007335477
1987-04-06; 0.021846949
1987-04-07;-0.034837152
1987-04-08;-0.007486666
1987-04-09; 0.003750339
1987-04-10;-0.0284765
1987-04-13;-0.025376592
1987-04-14; 0.009827629
1987-04-15; 0.040275125
1987-04-16; 0.005620248
1987-04-17; 0
1987-04-20; 0
1987-04-21; 0.013014314
1987-04-22; 0.045090089
1987-04-23; 0.017473507
1987-04-24;-0.019237769
1987-04-27;-0.041483519
1987-04-28; 0.046766994
1987-04-29; 0.001754973
1987-04-30;-0.007038447
1987-05-01; 0
1987-05-04;-0.005311538
1987-05-05; 0.015850718
1987-05-06; 0.029291783
1987-05-07; 0.001695429
1987-05-08;-0.008506036
1987-05-11; 0.003411102
1987-05-12;-0.017193689
1987-05-13; 0.005183064
1987-05-14; 0
1987-05-15;-0.008653425
1987-05-18; 0.001736686
1987-05-19;-0.008713748
1987-05-20;-0.017679856
1987-05-21; 0.005351622
1987-05-22; 0.01582285
1987-05-25; 0
1987-05-26; 0.010411166
1987-05-27; 0.018830265
1987-05-28; 0
1987-05-29; 0.020124055
1987-06-01; 0.027852393
1987-06-02;-0.026193527
1987-06-03; 0.016458458
1987-06-04; 0.003255564
1987-06-05;-0.00488733
1987-06-08; 0
1987-06-09;-0.004911333
1987-06-10; 0.004911333
1987-06-11; 0.01459091
1987-06-12;-0.00484002
1987-06-15; 0.033416901
1987-06-16; 0.001562878
1987-06-17; 0
1987-06-18; 0
1987-06-19; 0.013957064
1987-06-22; 0.013783025
1987-06-23; 0.018063065
1987-06-24;-0.018063065
1987-06-25; 0.010576399
1987-06-26; 0.023780126
1987-06-29; 0.001466558
1987-06-30; 0.00146441
1987-07-01;-0.023709698
1987-07-02; 0.03679377
1987-07-03;-0.004342364
1987-07-06;-0.001451655
1987-07-07; 0.001451655
1987-07-08; 0.012987975
1987-07-09;-0.01443963
1987-07-10; 0.007237293
1987-07-13; 0.008633196
1987-07-14; 0.002855591
1987-07-15; 0.011341511
1987-07-16;-0.004238007
1987-07-17; 0.004238007
1987-07-20; 0.001408687
1987-07-21;-0.019904523
1987-07-22;-0.002893268
1987-07-23;-0.005777282
1987-07-24; 0.004336087
1987-07-27; 0.005769428
1987-07-28; 0.015650196
1987-07-29; 0.007033555
1987-07-30; 0.00839203
1987-07-31; 0.012432939
1987-08-03; 0.029772202
1987-08-04; 0.009285059
1987-08-05; 0.01182817
1987-08-06;-0.01579693
1987-08-07;-0.016034448
1987-08-10;-0.005418586
1987-08-11;-0.00952527
1987-08-12; 0
1987-08-13;-0.009616874
1987-08-14; 0.017786934
1987-08-17; 0.017491944
1987-08-18; 0
1987-08-19;-0.00937208
1987-08-20; 0.004027366
1987-08-21; 0.006676441
1987-08-24; 0
1987-08-25; 0.026284181
1987-08-26; 0.021813163
1987-08-27;-0.011496038
1987-08-28; 0
1987-08-31; 0.003841644
1987-09-01; 0.006385243
1987-09-02;-0.005107968
1987-09-03;-0.005118919
1987-09-04;-0.014213656
1987-09-07;-0.02505288
1987-09-08;-0.006694319
1987-09-09; 0.008027822
1987-09-10; 0.007963889
1987-09-11;-0.003974016
1987-09-14; 0.005295187
1987-09-15; 0
1987-09-16;-0.018657139
1987-09-17; 0
1987-09-18;-0.008119864
1987-09-21;-0.004076686
1987-09-22;-0.0095774
1987-09-23; 0.016362673
1987-09-24;-0.00542453
1987-09-25;-0.001360743
1987-09-28; 0
1987-09-29; 0.006785273
1987-09-30;-0.00542453
1987-10-01; 0.002715943
1987-10-02; 0.009464123
1987-10-05; 0.001342454
1987-10-06;-0.010806576
1987-10-07;-0.00817006
1987-10-08; 0.004093373
1987-10-09;-0.019247415
1987-10-12;-0.006981497
1987-10-13; 0.012518664
1987-10-14; 0.004132847
1987-10-15;-0.016651511
1987-10-16;-0.012660517
1987-10-19;-0.085731355
1987-10-20;-0.057146533
1987-10-21; 0.041602466
1987-10-22;-0.07821208
1987-10-23;-0.043293772
1987-10-26;-0.065845022
1987-10-27; 0.007528941
1987-10-28;-0.07801705
1987-10-29;-0.016351525
1987-10-30; 0.071609532
1987-11-02;-0.023312479
1987-11-03;-0.023845009
1987-11-04;-0.055876331
1987-11-05;-0.025849581
1987-11-06;-0.002184599
1987-11-09;-0.108521596
1987-11-10;-0.08127924
1987-11-11; 0.117191789
1987-11-12; 0.06158756
1987-11-13; 0.011021487
1987-11-16; 0.015192913
1987-11-17;-0.053107494
1987-11-18; 0
1987-11-19; 0.004532708
1987-11-20;-0.041581633
1987-11-23;-0.002360016
1987-11-24; 0.077323522
1987-11-25;-0.004383569
1987-11-26;-0.033531013
1987-11-27; 0.006791381
1987-11-30;-0.046200321
1987-12-01; 0.004714475
1987-12-02; 0.02097175
1987-12-03;-0.013941452
1987-12-04;-0.023629127
1987-12-07; 0.004770703
1987-12-08; 0.011828125
1987-12-09; 0.00936279
1987-12-10; 0.016204154
1987-12-11;-0.01387709
1987-12-14; 0.011582132
1987-12-15; 0.038315574
1987-12-16; 0.053856606
1987-12-17;-0.023343436
1987-12-18;-0.026074264
1987-12-21; 0.028216739
1987-12-22; 0.027467144
1987-12-23; 0
1987-12-24; 0
1987-12-25; 0
1987-12-28;-0.04256177
1987-12-29;-0.01756102
1987-12-30; 0.006637918
1987-12-31; 0
1988-01-01; 0
1988-01-04;-0.033531013
1988-01-05; 0.043367157
1988-01-06; 0.005423007
1988-01-07; 0.008616101
1988-01-08; 0.01914406
1988-01-11;-0.03209621
1988-01-12;-0.002175096
1988-01-13;-0.02650362
1988-01-14; 0.048044571
1988-01-15;-0.015029805
1988-01-18; 0.085028505
1988-01-19;-0.016047652
1988-01-20;-0.024527971
1988-01-21;-0.015641224
1988-01-22; 0.038148019
1988-01-25; 0.004038273
1988-01-26; 0.004045923
1988-01-27;-0.021322358
1988-01-28;-0.017580165
1988-01-29;-0.002088722
1988-02-01; 0.01864327
1988-02-02; 0
1988-02-03; 0.006137977
1988-02-04; 0.028179646
1988-02-05;-0.012973617
1988-02-08; 0.014954703
1988-02-09;-0.007948002
1988-02-10; 0.004974899
1988-02-11; 0.008892921
1988-02-12; 0.009789147
1988-02-15; 0.011644796
1988-02-16; 0.007673373
1988-02-17; 0
1988-02-18; 0
1988-02-19;-0.000955958
1988-02-22; 0.009518701
1988-02-23; 0.000946906
1988-02-24; 0.003778682
1988-02-25; 0.026080246
1988-02-26;-0.017630058
1988-02-29;-0.008450188
1988-03-01; 0.005641385
1988-03-02;-0.007528941
1988-03-03; 0
1988-03-04;-0.01044573
1988-03-07;-0.000955045
1988-03-08;-0.005749502
1988-03-09; 0
1988-03-10; 0.004793545
1988-03-11;-0.00963317
1988-03-14; 0
1988-03-15; 0.017820178
1988-03-16; 0.015441986
1988-03-17; 0.005588837
1988-03-18; 0.003356004
1988-03-21;-0.012688161
1988-03-22;-0.007528941
1988-03-23;-0.003785835
1988-03-24;-0.023044126
1988-03-25;-0.029542861
1988-03-28;-0.014115288
1988-03-29; 0.018105128
1988-03-30; 0.003973985
1988-03-31;-0.003973985
1988-04-01; 0
1988-04-04; 0
1988-04-05;-0.000995969
1988-04-06; 0.004969954
1988-04-07; 0.007900904
1988-04-08;-0.001969381
1988-04-11; 0.010783915
1988-04-12; 0.024107501
1988-04-13;-0.002859674
1988-04-14; 0.002859674
1988-04-15;-0.017305069
1988-04-18; 0.007740848
1988-04-19; 0
1988-04-20;-0.005805765
1988-04-21;-0.011667069
1988-04-22; 0
1988-04-25; 0
1988-04-26;-0.004901742
1988-04-27;-0.001967444
1988-04-28; 0.008823175
1988-04-29;-0.00980835
1988-05-02; 0.005896547
1988-05-03;-0.013813088
1988-05-04; 0.009885923
1988-05-05;-0.001969381
1988-05-06;-0.005931523
1988-05-09;-0.013978594
1988-05-10;-0.01726533
1988-05-11;-0.032251678
1988-05-12; 0
1988-05-13; 0.01053471
1988-05-16; 0.040991244
1988-05-17; 0.00818526
1988-05-18; 0.017570273
1988-05-19;-0.02174971
1988-05-20; 0.007963826
1988-05-23; 0
1988-05-24;-0.002979007
1988-05-25; 0.007924383
1988-05-26;-0.005937392
1988-05-27; 0
1988-05-30; 0.008892921
1988-05-31; 0.011735529
1988-06-01; 0.026881436
1988-06-02; 0
1988-06-03; 0.002835349
1988-06-06; 0.00470779
1988-06-07;-0.009437848
1988-06-08;-0.00761494
1988-06-09; 0.013288331
1988-06-10;-0.001887556
1988-06-13; 0.001887556
1988-06-14;-0.005673391
1988-06-15; 0.018787455
1988-06-16;-0.017839652
1988-06-17; 0
1988-06-20;-0.014312246
1988-06-21; 0.009564221
1988-06-22; 0.009473613
1988-06-23;-0.005673391
1988-06-24; 0.001894709
1988-06-27;-0.017183022
1988-06-28;-0.017506778
1988-06-29; 0.003911803
1988-06-30;-0.00980835
1988-07-01; 0.013704911
1988-07-04; 0.011622284
1988-07-05; 0.001920176
1988-07-06; 0.024632454
1988-07-07;-0.004690126
1988-07-08;-0.010396367
1988-07-11;-0.001901916
1988-07-12;-0.00190554
1988-07-13;-0.0115331
1988-07-14; 0.009623921
1988-07-15; 0.001909178
1988-07-18; 0.000953224
1988-07-19;-0.011522048
1988-07-20; 0.000986273
1988-07-21;-0.007755813
1988-07-22;-0.023564053
1988-07-25; 0.007916541
1988-07-26; 0.005896547
1988-07-27;-0.003927166
1988-07-28;-0.01386782
1988-07-29; 0.01583333
1988-08-01; 0.005873458
1988-08-02;-0.005873458
1988-08-03;-0.00590816
1988-08-04;-0.017936849
1988-08-05; 0.005014816
1988-08-08;-0.005014816
1988-08-09;-0.002036978
1988-08-10;-0.006063541
1988-08-11;-0.012238509
1988-08-12; 0.009192895
1988-08-15;-0.005096727
1988-08-16;-0.008209184
1988-08-17; 0.012288641
1988-08-18; 0.003048709
1988-08-19;-0.012251004
1988-08-22;-0.003086347
1988-08-23;-0.006201418
1988-08-24; 0.010314433
1988-08-25;-0.004113016
1988-08-26;-0.016623348
1988-08-29;-0.001048192
1988-08-30; 0.008354932
1988-08-31;-0.001040557
1988-09-01;-0.012596981
1988-09-02; 0.002131422
1988-09-05; 0.010465559
1988-09-06; 0.024679312
1988-09-07; 0.018141576
1988-09-08; 0.004974899
1988-09-09;-0.002981968
1988-09-12; 0.01344293
1988-09-13;-0.005510689
1988-09-14; 0.00590816
1988-09-15;-0.006896256
1988-09-16;-0.000989073
1988-09-19; 0.007885329
1988-09-20;-0.007885329
1988-09-21; 0.01862712
1988-09-22;-0.001156979
1988-09-23;-0.006643771
1988-09-26;-0.002941041
1988-09-27;-0.00590816
1988-09-28;-0.003958255
1988-09-29; 0.004945376
1988-09-30; 0.008840508
1988-10-03;-0.013384633
1988-10-04; 0.002568908
1988-10-05; 0.000988096
1988-10-06; 0.003942649
1988-10-07; 0.020447671
1988-10-10; 0.004830319
1988-10-11;-0.008693014
1988-10-12;-0.011678424
1988-10-13; 0.006828978
1988-10-14; 0.003881436
1988-10-17;-0.007777997
1988-10-18; 0.023177526
1988-10-19; 0.028208721
1988-10-20;-0.007444863
1988-10-21;-0.006560034
1988-10-24;-0.011346873
1988-10-25; 0.00757887
1988-10-26; 0.024263929
1988-10-27; 0.014630903
1988-10-28; 0.006334317
1988-10-31;-0.01362301
1988-11-01; 0.005471495
1988-11-02;-0.010054054
1988-11-03;-0.016695541
1988-11-04; 0.00465953
1988-11-07;-0.016876907
1988-11-08; 0.013151022
1988-11-09;-0.01031835
1988-11-10;-0.012333286
1988-11-11;-0.012510312
1988-11-14; 0.011555267
1988-11-15;-0.007673373
1988-11-16; 0
1988-11-17;-0.001950548
1988-11-18; 0.0115331
1988-11-21; 0.003807456
1988-11-22;-0.005716635
1988-11-23;-0.000955958
1988-11-24;-0.002873369
1988-11-25;-0.003844046
1988-11-28;-0.016527392
1988-11-29; 0.002932417
1988-11-30; 0.007777997
1988-12-01;-0.002909664
1988-12-02; 0.001940716
1988-12-05; 0.016368476
1988-12-06;-0.000954134
1988-12-07; 0.01327573
1988-12-08;-0.00851414
1988-12-09; 0.001898306
1988-12-12; 0
1988-12-13;-0.002848812
1988-12-14;-0.010515631
1988-12-15; 0
1988-12-16;-0.008709795
1988-12-19; 0.002904031
1988-12-20; 0.015369986
1988-12-21;-0.014403847
1988-12-22; 0.006759802
1988-12-23; 0.000958707
1988-12-26; 0
1988-12-27; 0.012380268
1988-12-28;-0.012380268
1988-12-29; 0.002870619
1988-12-30; 0
1989-01-02; 0.003814719
1989-01-03; 0.01323807
1989-01-04; 0.018634561
1989-01-05; 0.003681228
1989-01-06;-0.011106704
1989-01-09; 0.005579769
1989-01-10;-0.013038514
1989-01-11; 0.003736327
1989-01-12; 0.002793112
1989-01-13;-0.014044235
1989-01-16;-0.007571697
1989-01-17;-0.023088421
1989-01-18; 0.007747865
1989-01-19; 0.009623921
1989-01-20;-0.005749502
1989-01-23;-0.013568667
1989-01-24;-0.001950178
1989-01-25; 0.004868333
1989-01-26;-0.012707302
1989-01-27; 0.001965511
1989-01-30;-0.01583333
1989-01-31;-0.010048657
1989-02-01; 0.010048657
1989-02-02; 0.021706789
1989-02-03; 0.002923843
1989-02-06; 0.006789237
1989-02-07; 0.002895622
1989-02-08; 0.013425774
1989-02-09;-0.008595455
1989-02-10; 0
1989-02-13;-0.01354246
1989-02-14;-0.011735529
1989-02-15;-0.018867592
1989-02-16; 0.008981669
1989-02-17; 0
1989-02-20; 0.005943274
1989-02-21;-0.008928209
1989-02-22;-0.001994918
1989-02-23;-0.01005874
1989-02-24; 0.015038594
1989-02-27;-0.005978807
1989-02-28; 0.004582209
1989-03-01; 0.010298315
1989-03-02; 0.004911371
1989-03-03; 0.0116898
1989-03-06; 0.007740848
1989-03-07;-0.005805765
1989-03-08;-0.003873918
1989-03-09;-0.000369728
1989-03-10; 0.007139268
1989-03-13;-0.00676954
1989-03-14; 0.01504236
1989-03-15; 0.007053063
1989-03-16;-0.007622196
1989-03-17;-0.008667964
1989-03-20;-0.015556229
1989-03-21;-0.000980346
1989-03-22;-0.000981308
1989-03-23; 0
1989-03-24; 0
1989-03-27; 0
1989-03-28;-0.00590816
1989-03-29; 0.00590816
1989-03-30; 0.008797301
1989-03-31;-0.002923843
1989-04-03; 0.012608702
1989-04-04;-0.00676954
1989-04-05; 0.001938835
1989-04-06; 0
1989-04-07;-0.001938835
1989-04-10; 0.002906845
1989-04-11; 0.010609511
1989-04-12; 0.00952777
1989-04-13; 0
1989-04-14;-0.002848812
1989-04-17; 0.00474352
1989-04-18;-0.001894709
1989-04-19;-0.001898306
1989-04-20;-0.00476159
1989-04-21;-0.00766602
1989-04-24;-0.005811366
1989-04-25;-0.002906845
1989-04-26; 0.004840057
1989-04-27;-0.000966139
1989-04-28;-0.00581652
1989-05-01; 0
1989-05-02;-0.003896561
1989-05-03;-0.000976517
1989-05-04; 0
1989-05-05; 0.004873078
1989-05-08; 0.000971772
1989-05-09;-0.00780075
1989-05-10; 0.00585626
1989-05-11;-0.00390036
1989-05-12;-0.022727182
1989-05-15; 0
1989-05-16;-0.006014769
1989-05-17; 0.004013863
1989-05-18;-0.002004917
1989-05-19; 0.011969649
1989-05-22; 0.015739873
1989-05-23; 0
1989-05-24; 0.015518845
1989-05-25; 0
1989-05-26; 0.001920176
1989-05-29; 0.006691729
1989-05-30; 0.017940725
1989-05-31; 0.013961794
1989-06-01; 0.010100213
1989-06-02; 0.029723723
1989-06-05; 0.016709281
1989-06-06;-0.002619816
1989-06-07; 0.002619816
1989-06-08;-0.00087251
1989-06-09;-0.002622106
1989-06-12;-0.000875566
1989-06-13;-0.021268204
1989-06-14; 0.000894378
1989-06-15;-0.008979984
1989-06-16;-0.004520414
1989-06-19; 0.019738748
1989-06-20; 0.002682807
1989-06-21; 0.004420408
1989-06-22; 0.016621574
1989-06-23;-0.008713748
1989-06-26;-0.013214665
1989-06-27; 0.000886431
1989-06-28; 0.00794272
1989-06-29; 0.004385514
1989-06-30;-0.015899855
1989-07-03; 0.00622621
1989-07-04; 0.002647561
1989-07-05;-0.009763376
1989-07-06;-0.013439916
1989-07-07;-0.01362301
1989-07-10; 0.01362301
1989-07-11; 0.015218334
1989-07-12; 0.001796376
1989-07-13; 0.00442432
1989-07-14; 0.036431458
1989-07-17; 0.013529227
1989-07-18;-0.002522827
1989-07-19; 0.014212588
1989-07-20; 0.008286552
1989-07-21; 0.003287674
1989-07-24;-0.004130902
1989-07-25; 0.005770695
1989-07-26; 0.008971108
1989-07-27;-0.005699568
1989-07-28;-0.006553819
1989-07-31;-0.010267798
1989-08-01; 0.007779382
1989-08-02; 0.005770695
1989-08-03;-0.019041818
1989-08-04;-0.002508063
1989-08-07; 0.009382849
1989-08-08; 0.022606229
1989-08-09; 0.026984661
1989-08-10;-0.004859316
1989-08-11;-0.006497035
1989-08-14;-0.0114868
1989-08-15;-0.003311835
1989-08-16;-0.003303489
1989-08-17;-0.000832422
1989-08-18; 0
1989-08-21; 0.015660598
1989-08-22; 0.003273948
1989-08-23;-0.020601472
1989-08-24; 0.00083381
1989-08-25; 0.01075756
1989-08-28;-0.004959546
1989-08-29;-0.003300747
1989-08-30;-0.009187296
1989-08-31; 0.002514009
1989-09-01; 0.00417602
1989-09-04; 0.017313206
1989-09-05; 0.006531875
1989-09-06; 0.014505262
1989-09-07; 0.005599025
1989-09-08; 0.007926212
1989-09-11; 0.010671796
1989-09-12;-0.007529826
1989-09-13;-0.011068182
1989-09-14;-0.001596525
1989-09-15;-0.019321916
1989-09-18; 0.00323377
1989-09-19; 0.006473854
1989-09-20;-0.001614539
1989-09-21; 0.008829254
1989-09-22; 0.005571562
1989-09-25; 0.011856464
1989-09-26;-0.019833375
1989-09-27;-0.007232153
1989-09-28;-0.004051068
1989-09-29;-0.007314518
1989-10-02;-0.00491898
1989-10-03; 0.008999728
1989-10-04; 0.00566638
1989-10-05;-0.007296681
1989-10-06;-0.004906912
1989-10-09; 0.004906912
1989-10-10;-0.01146795
1989-10-11;-0.016622704
1989-10-12; 0
1989-10-13;-0.01688385
1989-10-16;-0.140615651
1989-10-17; 0.057152069
1989-10-18; 0.009233478
1989-10-19; 0.013650133
1989-10-20; 0.006326408
1989-10-23;-0.003610188
1989-10-24;-0.019127455
1989-10-25;-0.02704717
1989-10-26;-0.009491957
1989-10-27;-0.011515069
1989-10-30; 0
1989-10-31;-0.005818953
1989-11-01; 0.003883062
1989-11-02;-0.006805285
1989-11-03;-0.024643272
1989-11-06; 0.013877727
1989-11-07;-0.007896626
1989-11-08; 0.0128148
1989-11-09; 0.01842672
1989-11-10; 0.024693705
1989-11-13; 0
1989-11-14;-0.018930516
1989-11-15;-0.015420316
1989-11-16; 0.015420316
1989-11-17; 0.011405663
1989-11-20;-0.00379482
1989-11-21;-0.014315378
1989-11-22; 0
1989-11-23; 0.000941345
1989-11-24; 0
1989-11-27;-0.003838173
1989-11-28; 0
1989-11-29;-0.005818953
1989-11-30; 0.005818953
1989-12-01; 0.028531879
1989-12-04; 0.004688037
1989-12-05;-0.002810184
1989-12-06; 0.020405566
1989-12-07; 0.01455636
1989-12-08;-0.010908005
1989-12-11; 0
1989-12-12;-0.01471719
1989-12-13;-0.012132957
1989-12-14;-0.016098436
1989-12-15;-0.017334021
1989-12-18;-0.000973126
1989-12-19;-0.000974074
1989-12-20; 0.005830261
1989-12-21; 0.011537254
1989-12-22; 0.007610843
1989-12-25; 0
1989-12-26; 0
1989-12-27; 0.057176834
1989-12-28; 0.015988081
1989-12-29; 0
1990-01-01; 0
1990-01-02;-0.001768456
1990-01-03; 0.051660609
1990-01-04;-0.028951321
1990-01-05;-0.012165526
1990-01-08; 0.006981398
1990-01-09; 0.006912911
1990-01-10;-0.027075996
1990-01-11; 0.003522545
1990-01-12;-0.000884619
1990-01-15;-0.019620291
1990-01-16;-0.020012964
1990-01-17; 0
1990-01-18;-0.014820519
1990-01-19;-0.013147866
1990-01-22; 0.003780474
1990-01-23; 0
1990-01-24;-0.025754976
1990-01-25; 0.016299006
1990-01-26; 0.000929718
1990-01-29; 0.012270632
1990-01-30;-0.00563283
1990-01-31; 0.00563283
1990-02-01; 0.031411239
1990-02-02; 0.039209308
1990-02-05; 0.030999976
1990-02-06; 0.041497805
1990-02-07; 0.00323377
1990-02-08; 0.027192289
1990-02-09;-0.022332973
1990-02-12; 0
1990-02-13; 0.006423905
1990-02-14; 0.007180224
1990-02-15; 0.012653151
1990-02-16; 0.02711847
1990-02-19;-0.016957779
1990-02-20;-0.015666403
1990-02-21;-0.012723454
1990-02-22; 0.026830586
1990-02-23;-0.025228947
1990-02-26;-0.028348474
1990-02-27; 0.021926468
1990-02-28;-0.004824896
1990-03-01;-0.020399753
1990-03-02; 0.013923817
1990-03-05; 0.00323377
1990-03-06;-0.004048589
1990-03-07; 0.008907904
1990-03-08; 0.006423905
1990-03-09;-0.004809366
1990-03-12;-0.004851457
1990-03-13; 0.001619769
1990-03-14; 0
1990-03-15; 0.00161715
1990-03-16;-0.004047788
1990-03-19; 0.000810869
1990-03-20; 0.003236919
1990-03-21; 0.010912936
1990-03-22;-0.015772252
1990-03-23;-0.001625033
1990-03-26; 0.008905181
1990-03-27;-0.00565775
1990-03-28;-0.00324743
1990-03-29; 0.008905181
1990-03-30; 0
1990-04-02;-0.033544844
1990-04-03; 0.020584477
1990-04-04; 0.001631631
1990-04-05;-0.007363397
1990-04-06; 0
1990-04-09;-0.009883684
1990-04-10;-0.018374498
1990-04-11;-0.005061407
1990-04-12; 0.006749403
1990-04-13; 0
1990-04-16; 0
1990-04-17;-0.01356455
1990-04-18;-0.019815748
1990-04-19;-0.006122074
1990-04-20; 0.006993604
1990-04-23;-0.0336012
1990-04-24;-0.001803465
1990-04-25; 0.026675428
1990-04-26; 0.002612513
1990-04-27; 0.015633693
1990-04-30;-0.009516968
1990-05-01; 0
1990-05-02; 0.019798655
1990-05-03; 0.029396614
1990-05-04; 0.019670637
1990-05-07; 0.001304015
1990-05-08;-0.024278141
1990-05-09; 0.002473814
1990-05-10;-0.01082938
1990-05-11;-0.022017066
1990-05-14;-0.012909104
1990-05-15;-0.006975311
1990-05-16; 0
1990-05-17; 0.000874579
1990-05-18; 0.017312873
1990-05-21;-0.020815788
1990-05-22; 0.006122074
1990-05-23; 0.019815748
1990-05-24; 0
1990-05-25;-0.001711069
1990-05-28; 0.015275618
1990-05-29; 0.010049159
1990-05-30;-0.006681691
1990-05-31;-0.01949972
1990-06-01;-0.007722819
1990-06-04; 0
1990-06-05; 0.006027311
1990-06-06;-0.012070965
1990-06-07; 0.002583094
1990-06-08; 0
1990-06-11;-0.01043375
1990-06-12;-0.003488625
1990-06-13;-0.007055137
1990-06-14; 0
1990-06-15; 0
1990-06-18;-0.007976238
1990-06-19; 0.013272251
1990-06-20; 0.019142057
1990-06-21; 0.006865451
1990-06-22;-0.001696963
1990-06-25; 0.006830179
1990-06-26;-0.011998667
1990-06-27; 0.006865451
1990-06-28; 0.000857368
1990-06-29;-0.003413892
1990-07-02; 0.011097304
1990-07-03; 0.008448841
1990-07-04; 0.02165015
1990-07-05;-0.006623688
1990-07-06; 0.00166004
1990-07-09;-0.00166004
1990-07-10;-0.005812505
1990-07-11;-0.002509802
1990-07-12;-0.000838002
1990-07-13; 0.003347805
1990-07-16; 0.000835203
1990-07-17;-0.02020033
1990-07-18; 0.005078611
1990-07-19; 0
1990-07-20; 0.00507256
1990-07-23; 0
1990-07-24;-0.010151171
1990-07-25;-0.003413379
1990-07-26; 0.005115709
1990-07-27;-0.003407563
1990-07-30;-0.013727449
1990-07-31;-0.002598791
1990-08-01;-0.019225878
1990-08-02;-0.018701445
1990-08-03;-0.016328187
1990-08-06;-0.066112864
1990-08-07; 0.015487385
1990-08-08;-0.020391088
1990-08-09; 0.001964368
1990-08-10; 0.003917197
1990-08-13;-0.02071542
1990-08-14; 0.009928963
1990-08-15; 0.03105917
1990-08-16;-0.009601363
1990-08-17;-0.023435729
1990-08-20;-0.011927097
1990-08-21;-0.049208452
1990-08-22; 0.004200558
1990-08-23;-0.049303298
1990-08-24; 0.010923505
1990-08-27; 0.05909805
1990-08-28;-0.018624576
1990-08-29; 0.016569568
1990-08-30; 0.008171089
1990-08-31;-0.012293818
1990-09-03;-0.002067756
1990-09-04;-0.008289777
1990-09-05;-0.036075561
1990-09-06;-0.002140924
1990-09-07; 0.012901789
1990-09-10; 0.039794958
1990-09-11;-0.010338867
1990-09-12; 0.010338867
1990-09-13;-0.010338867
1990-09-14;-0.01460733
1990-09-17;-0.002111311
1990-09-18;-0.021336858
1990-09-19; 0
1990-09-20;-0.035078767
1990-09-21;-0.018025124
1990-09-24;-0.045331853
1990-09-25;-0.075291383
1990-09-26; 0.017792325
1990-09-27;-0.033294645
1990-09-28;-0.014422152
1990-10-01; 0.067674756
1990-10-02; 0.023171231
1990-10-03; 0
1990-10-04;-0.003632016
1990-10-05;-0.019539215
1990-10-08; 0.036349154
1990-10-09;-0.020455195
1990-10-10;-0.018370633
1990-10-11; 0.014740453
1990-10-12; 0.028844653
1990-10-15; 0.019950923
1990-10-16;-0.021138621
1990-10-17;-0.015541757
1990-10-18; 0.037816219
1990-10-19; 0.01839828
1990-10-22;-0.002284683
1990-10-23; 0.01810684
1990-10-24;-0.011268391
1990-10-25; 0.006765765
1990-10-26;-0.030853653
1990-10-29;-0.010527129
1990-10-30;-0.021336796
1990-10-31;-0.002405326
1990-11-01;-0.014526325
1990-11-02;-0.006127383
1990-11-05; 0.006127383
1990-11-06;-0.015981094
1990-11-07;-0.03430183
1990-11-08;-0.001016351
1990-11-09; 0.019077538
1990-11-12; 0.001260942
1990-11-13; 0.011248516
1990-11-14;-0.00499667
1990-11-15; 0.009968497
1990-11-16; 0.002476674
1990-11-19; 0.02919543
1990-11-20;-0.004816452
1990-11-21; 0
1990-11-22; 0.024976697
1990-11-23;-0.011814576
1990-11-26;-0.02164714
1990-11-27;-0.02334246
1990-11-28;-0.002495214
1990-11-29; 0
1990-11-30; 0.033114946
1990-12-03; 0.026184444
1990-12-04;-0.010153768
1990-12-05; 0.004277698
1990-12-06; 0.016415527
1990-12-07; 0.003461615
1990-12-10;-0.00116155
1990-12-11;-0.008141599
1990-12-12; 0.00234071
1990-12-13; 0.002335244
1990-12-14;-0.010551814
1990-12-17;-0.02379876
1990-12-18;-0.002416954
1990-12-19;-0.009698245
1990-12-20;-0.034748401
1990-12-21; 0.007531723
1990-12-24; 0
1990-12-25; 0
1990-12-26; 0
1990-12-27;-0.020231904
1990-12-28; 0.005081659
1990-12-31; 0
1991-01-01; 0
1991-01-02;-0.037571611
1991-01-03;-0.001324279
1991-01-04; 0.015746431
1991-01-07;-0.042575442
1991-01-08; 0.005429992
1991-01-09; 0.018745188
1991-01-10; 0.005300638
1991-01-11; 0.009178587
1991-01-14;-0.043286834
1991-01-15;-0.003536331
1991-01-16;-0.009652925
1991-01-17; 0.088632045
1991-01-18;-0.01788339
1991-01-21; 0.001290187
1991-01-22;-0.010338112
1991-01-23;-0.029048132
1991-01-24; 0.014644905
1991-01-25; 0.009178587
1991-01-28;-0.003936472
1991-01-29; 0.010463019
1991-01-30; 0.003865439
1991-01-31; 0.019224473
1991-02-01; 0.00507256
1991-02-04; 0.023691936
1991-02-05;-0.006166811
1991-02-06; 0.006166811
1991-02-07; 0.007384543
1991-02-08; 0.02297526
1991-02-11; 0.027162435
1991-02-12;-0.009127507
1991-02-13; 0.007960567
1991-02-14; 0.00881325
1991-02-15; 0.062040653
1991-02-18; 0.032037986
1991-02-19; 0.008805257
1991-02-20;-0.02150251
1991-02-21; 0.012697253
1991-02-22; 0.014616552
1991-02-25; 0.021543704
1991-02-26;-0.034055559
1991-02-27; 0.00733175
1991-02-28;-0.025314697
1991-03-01;-0.017248083
1991-03-04; 0.016177193
1991-03-05; 0.012751011
1991-03-06; 0.04238841
1991-03-07;-0.001014498
1991-03-08; 0.028941675
1991-03-11;-0.009886354
1991-03-12; 0.00889981
1991-03-13;-0.004924305
1991-03-14; 0.013768358
1991-03-15;-0.010797067
1991-03-18;-0.002971291
1991-03-19; 0.009847321
1991-03-20;-0.013822826
1991-03-21;-0.022105005
1991-03-22;-0.007152307
1991-03-25; 0.032240422
1991-03-26;-0.000993381
1991-03-27; 0.005347976
1991-03-28; 0.029739359
1991-03-29; 0
1991-04-01; 0
1991-04-02; 0.029270597
1991-04-03; 0.040997961
1991-04-04;-0.012580889
1991-04-05; 0
1991-04-08;-0.01455636
1991-04-09;-0.014793074
1991-04-10;-0.00840872
1991-04-11; 0.001857741
1991-04-12; 0.025907738
1991-04-15; 0.009086447
1991-04-16;-0.00361198
1991-04-17; 0.01353559
1991-04-18; 0.010693957
1991-04-19; 0.011459207
1991-04-22;-0.004399749
1991-04-23; 0.014860627
1991-04-24;-0.000869258
1991-04-25; 0.003452352
1991-04-26;-0.017443721
1991-04-29;-0.018651503
1991-04-30; 0.005355686
1991-05-01; 0
1991-05-02; 0.005864512
1991-05-03;-0.000516684
1991-05-06; 0.002828155
1991-05-07; 0.000700641
1991-05-08;-0.000886187
1991-05-09; 0
1991-05-10;-0.000515586
1991-05-13;-0.003016344
1991-05-14;-0.004458507
1991-05-15;-0.005355686
1991-05-16; 0.018651503
1991-05-17;-0.026770798
1991-05-20; 0
1991-05-21; 0.015260769
1991-05-22; 0.003562039
1991-05-23;-0.000889321
1991-05-24; 0
1991-05-27; 0.001777852
1991-05-28;-0.007130451
1991-05-29; 0.004110363
1991-05-30; 0
1991-05-31; 0.013600893
1991-06-03; 0.01305536
1991-06-04; 0.006053372
1991-06-05; 0.018750425
1991-06-06;-0.013610774
1991-06-07; 0.013177771
1991-06-10; 0.000944492
1991-06-11; 0.004748272
1991-06-12;-0.009499437
1991-06-13;-0.003821219
1991-06-14; 0.005716505
1991-06-17;-0.000947194
1991-06-18;-0.004769311
1991-06-19;-0.011572125
1991-06-20;-0.011687304
1991-06-21; 0.006839225
1991-06-24;-0.016694335
1991-06-25;-0.005964151
1991-06-26;-0.02010631
1991-06-27;-0.006122167
1991-06-28;-0.032213305
1991-07-01; 0.008405973
1991-07-02;-0.015825121
1991-07-03; 0.002112816
1991-07-04;-0.002112816
1991-07-05;-0.00963004
1991-07-08;-0.002784493
1991-07-09; 0.01665765
1991-07-10; 0.004225189
1991-07-11; 0.005272803
1991-07-12; 0.01870823
1991-07-15; 0.0153237
1991-07-16; 0.006072681
1991-07-17;-0.01319735
1991-07-18;-0.01129643
1991-07-19; 0.008224361
1991-07-22;-0.001019043
1991-07-23; 0.019290632
1991-07-24; 0.016960939
1991-07-25;-0.001968464
1991-07-26;-0.005970044
1991-07-29;-0.002998441
1991-07-30;-0.003007459
1991-07-31; 0.003007459
1991-08-01; 0.003989051
1991-08-02;-0.00099061
1991-08-05; 0.004963812
1991-08-06;-0.001974334
1991-08-07; 0.009894074
1991-08-08; 0.017558312
1991-08-09; 0.019163071
1991-08-12;-0.007633098
1991-08-13; 0.017059197
1991-08-14;-0.012279224
1991-08-15; 0.010408899
1991-08-16;-0.005671278
1991-08-19;-0.105774626
1991-08-20; 0.03107813
1991-08-21; 0.026196543
1991-08-22; 0.044707716
1991-08-23;-0.004755665
1991-08-26; 0.001897084
1991-08-27; 0
1991-08-28; 0.000947194
1991-08-29; 0.006644543
1991-08-30;-0.004733156
1991-09-02; 0.001907741
1991-09-03; 0.005662407
1991-09-04;-0.008515532
1991-09-05; 0.002656619
1991-09-06;-0.002656619
1991-09-09;-0.002861289
1991-09-10;-0.008633318
1991-09-11; 0
1991-09-12; 0
1991-09-13; 0.001931598
1991-09-16;-0.008691624
1991-09-17;-0.011687304
1991-09-18;-0.014809025
1991-09-19;-0.002992439
1991-09-20;-0.011035598
1991-09-23;-0.001024515
1991-09-24; 0.003028691
1991-09-25;-0.001001586
1991-09-26;-0.007081381
1991-09-27;-0.006115969
1991-09-30;-0.005111195
1991-10-01; 0.002039126
1991-10-02;-0.004103726
1991-10-03; 0
1991-10-04;-0.008258321
1991-10-07;-0.012538536
1991-10-08;-0.011618751
1991-10-09;-0.009597597
1991-10-10; 0.007482546
1991-10-11;-0.006416519
1991-10-14; 0.000643508
1991-10-15; 0.007888062
1991-10-16;-0.005318164
1991-10-17;-0.002569898
1991-10-18;-0.001709535
1991-10-21; 0
1991-10-22;-0.00539193
1991-10-23; 0.001071788
1991-10-24;-0.01300572
1991-10-25;-0.012078073
1991-10-28; 0.003312661
1991-10-29; 0.00985006
1991-10-30; 0.008702257
1991-10-31; 0
1991-11-01;-0.006513949
1991-11-04; 0.000428077
1991-11-05; 0.006085872
1991-11-06; 0
1991-11-07; 0.009248492
1991-11-08; 0.04132586
1991-11-11; 0.002678288
1991-11-12; 0.010599985
1991-11-13;-0.008140585
1991-11-14; 0.002242106
1991-11-15; 0.00183647
1991-11-18;-0.01435909
1991-11-19;-0.012486438
1991-11-20; 0
1991-11-21; 0
1991-11-22;-0.003754793
1991-11-25;-0.004642402
1991-11-26; 0.006315352
1991-11-27;-0.009488048
1991-11-28; 0.003172696
1991-11-29;-0.002099417
1991-12-02;-0.016844595
1991-12-03;-0.001292134
1991-12-04; 0.013462849
1991-12-05;-0.005956207
1991-12-06; 0
1991-12-09;-0.001084755
1991-12-10;-0.001063759
1991-12-11; 0.007466678
1991-12-12; 0.003186151
1991-12-13; 0.012622384
1991-12-16; 0.001060939
1991-12-17; 0.007287813
1991-12-18; 0.006210801
1991-12-19;-0.022956749
1991-12-20;-0.012729503
1991-12-23;-0.009671363
1991-12-24; 0
1991-12-25; 0
1991-12-26; 0
1991-12-27; 0.016045377
1991-12-30; 0.003182794
1991-12-31; 0
1992-01-01; 0
1992-01-02; 0.013669027
1992-01-03; 0.012460417
1992-01-06;-0.005802704
1992-01-07;-0.004562975
1992-01-08; 0.004154877
1992-01-09; 0.017483968
1992-01-10; 0.02016724
1992-01-13;-0.004001042
1992-01-14; 0.003007459
1992-01-15; 0.016859927
1992-01-16; 0.008819204
1992-01-17; 0.003888116
1992-01-20; 0
1992-01-21; 0.00291121
1992-01-22; 0
1992-01-23;-0.009730427
1992-01-24; 0
1992-01-27; 0.014550388
1992-01-28; 0.002888822
1992-01-29;-0.005786014
1992-01-30; 0.011538743
1992-01-31; 0.023593976
1992-02-03; 0.010206033
1992-02-04;-0.004638423
1992-02-05; 0.014741345
1992-02-06;-0.000909074
1992-02-07;-0.003663599
1992-02-10;-0.006448558
1992-02-11; 0.000918309
1992-02-12; 0.009193848
1992-02-13; 0
1992-02-14;-0.00550997
1992-02-17; 0.001846371
1992-02-18; 0.007313825
1992-02-19;-0.009160196
1992-02-20; 0.01462006
1992-02-21; 0.008115683
1992-02-24; 0.000893555
1992-02-25; 0
1992-02-26; 0.00360334
1992-02-27; 0.014211793
1992-02-28;-0.00708065
1992-03-02;-0.000884011
1992-03-03; 0.002649691
1992-03-04;-0.002649691
1992-03-05;-0.003580859
1992-03-06;-0.007163168
1992-03-09; 0
1992-03-10;-0.001248591
1992-03-11;-0.010516251
1992-03-12;-0.010056808
1992-03-13; 0.01097976
1992-03-16;-0.004566563
1992-03-17; 0.002738667
1992-03-18; 0.008171285
1992-03-19; 0.001794359
1992-03-20; 0.011308578
1992-03-23; 0.001955323
1992-03-24; 0.016068787
1992-03-25; 0.007839636
1992-03-26; 0.003466644
1992-03-27;-0.006079046
1992-03-30;-0.001733353
1992-03-31; 0.002616928
1992-04-01;-0.003484733
1992-04-02; 0.018174172
1992-04-03;-0.003451654
1992-04-06; 0.008924908
1992-04-07;-0.004621072
1992-04-08;-0.014676834
1992-04-09; 0.004330684
1992-04-10; 0.012048339
1992-04-13;-0.006861883
1992-04-14; 0.003436827
1992-04-15; 0.006856076
1992-04-16; 0.00135854
1992-04-17; 0
1992-04-20; 0
1992-04-21;-0.005640293
1992-04-22; 0.003416265
1992-04-23;-0.003416265
1992-04-24;-0.003427976
1992-04-27;-0.002583175
1992-04-28; 0.001728794
1992-04-29;-0.005177474
1992-04-30;-0.002078519
1992-05-01; 0
1992-05-04;-0.012726148
1992-05-05;-0.000872378
1992-05-06; 0.007860223
1992-05-07; 0.006079046
1992-05-08; 0.014613872
1992-05-11; 0.008498709
1992-05-12;-0.000666024
1992-05-13;-0.027642028
1992-05-14;-0.00927123
1992-05-15;-0.014512926
1992-05-18; 0.031576216
1992-05-19;-0.00259659
1992-05-20; 0.021429138
1992-05-21; 0.004727479
1992-05-22; 0.035958313
1992-05-25; 0.005679447
1992-05-26;-0.005679447
1992-05-27;-0.012292145
1992-05-28; 0
1992-05-29; 0.006732773
1992-06-01; 0.003113001
1992-06-02;-0.000828059
1992-06-03;-0.002437457
1992-06-04;-0.001645253
1992-06-05; 0.001645253
1992-06-08; 0
1992-06-09; 0.000813146
1992-06-10;-0.000813146
1992-06-11;-0.001645253
1992-06-12; 0.00735714
1992-06-15;-0.004086256
1992-06-16; 0.001639885
1992-06-17;-0.00245237
1992-06-18;-0.000813146
1992-06-19; 0.004565369
1992-06-22;-0.003261267
1992-06-23;-0.00213487
1992-06-24;-0.001629633
1992-06-25;-0.003284299
1992-06-26;-0.02080538
1992-06-29; 0.000852404
1992-06-30;-0.009276229
1992-07-01;-0.012805855
1992-07-02; 0.005990589
1992-07-03; 0.01187458
1992-07-06;-0.004217237
1992-07-07;-0.004252708
1992-07-08;-0.015421915
1992-07-09; 0.004995104
1992-07-10;-0.002405239
1992-07-13;-0.016492735
1992-07-14;-0.00350613
1992-07-15; 0.00087314
1992-07-16; 0.01653586
1992-07-17;-0.019175801
1992-07-20;-0.043177266
1992-07-21; 0
1992-07-22;-0.010158975
1992-07-23;-0.005592101
1992-07-24;-0.01789124
1992-07-27; 0.004733156
1992-07-28;-0.002825415
1992-07-29; 0.024359967
1992-07-30; 0.005545583
1992-07-31; 0.01823506
1992-08-03; 0.006848639
1992-08-04; 0.006635798
1992-08-05; 0.006224927
1992-08-06;-0.009796855
1992-08-07;-0.001800047
1992-08-10;-0.026347522
1992-08-11;-0.002768948
1992-08-12;-0.009839043
1992-08-13;-0.007871461
1992-08-14;-0.002806801
1992-08-17; 0.004693062
1992-08-18;-0.009427863
1992-08-19;-0.009517595
1992-08-20;-0.001902535
1992-08-21;-0.007306787
1992-08-24;-0.008145949
1992-08-25;-0.029605139
1992-08-26;-0.012108707
1992-08-27; 0.02503579
1992-08-28;-0.003961377
1992-08-31; 0.010861335
1992-09-01;-0.01982704
1992-09-02;-0.007038616
1992-09-03; 0.015407731
1992-09-04; 0.007523842
1992-09-07; 0
1992-09-08; 0.011776308
1992-09-09;-0.009797139
1992-09-10; 0.004900426
1992-09-11; 0.010713199
1992-09-14; 0.055598597
1992-09-15; 0.006395602
1992-09-16;-0.003646915
1992-09-17;-0.004572673
1992-09-18; 0.012773689
1992-09-21;-0.026657083
1992-09-22;-0.021636584
1992-09-23;-0.022135244
1992-09-24;-0.05806183
1992-09-25;-0.003100579
1992-09-28;-0.036865106
1992-09-29; 0.008540631
1992-09-30;-0.00963004
1992-10-01; 0.011742857
1992-10-02; 0.008472308
1992-10-05;-0.04743187
1992-10-06; 0.015334314
1992-10-07;-0.017531162
1992-10-08; 0.012091275
1992-10-09;-0.013214445
1992-10-12;-0.004436228
1992-10-13; 0.020927179
1992-10-14;-0.00765437
1992-10-15;-0.003301723
1992-10-16; 0.00985006
1992-10-19; 0.016241215
1992-10-20; 0.035407724
1992-10-21;-0.007491801
1992-10-22;-0.000410655
1992-10-23; 0.012460417
1992-10-26; 0.014329565
1992-10-27;-0.001031807
1992-10-28;-0.020540285
1992-10-29;-0.003123152
1992-10-30; 0.010365678
1992-11-02;-0.024005906
1992-11-03; 0.009446353
1992-11-04;-0.008812355
1992-11-05; 0.004622572
1992-11-06; 0.005250723
1992-11-09; 0.018630817
1992-11-10; 0.013251096
1992-11-11;-0.002035314
1992-11-12; 0.017097281
1992-11-13; 0.006954761
1992-11-16;-0.005964151
1992-11-17; 0.005964151
1992-11-18; 0
1992-11-19; 0.00592879
1992-11-20;-0.010882704
1992-11-23;-0.012837573
1992-11-24;-0.012370339
1992-11-25; 0.002047775
1992-11-26;-0.00306266
1992-11-27;-0.002032865
1992-11-30; 0.017232385
1992-12-01; 0.002018962
1992-12-02;-0.014155822
1992-12-03;-0.008173855
1992-12-04;-0.012408965
1992-12-07;-0.004163572
1992-12-08;-0.00628892
1992-12-09;-0.005256569
1992-12-10;-0.001050259
1992-12-11;-0.014909519
1992-12-14;-0.002157738
1992-12-15; 0.010698369
1992-12-16;-0.01176784
1992-12-17; 0.003227209
1992-12-18; 0
1992-12-21; 0.013836241
1992-12-22; 0.008445498
1992-12-23;-0.001065391
1992-12-24; 0
1992-12-25; 0
1992-12-28; 0.018749337
1992-12-29; 0.007783795
1992-12-30;-0.00163255
1992-12-31; 0
1993-01-01; 0
1993-01-04;-0.012362047
1993-01-05; 0.016449001
1993-01-06; 0.006109784
1993-01-07;-0.012235864
1993-01-08;-0.005158826
1993-01-11; 0.007197953
1993-01-12;-0.005126962
1993-01-13;-0.013484701
1993-01-14; 0.00312969
1993-01-15; 0.017538126
1993-01-18; 0.020249293
1993-01-19; 0.02082339
1993-01-20; 0.003914773
1993-01-21; 0.003899507
1993-01-22; 0.00639211
1993-01-25;-0.030041206
1993-01-26;-0.00902243
1993-01-27;-0.006039536
1993-01-28; 0.008058499
1993-01-29; 0.002014894
1993-02-01; 0.011553667
1993-02-02;-0.011553667
1993-02-03; 0.003996982
1993-02-04; 0.006961636
1993-02-05; 0.010839827
1993-02-08;-0.000406157
1993-02-09;-0.008465206
1993-02-10; 0.009845468
1993-02-11; 0.007799122
1993-02-12;-0.002902409
1993-02-15; 0
1993-02-16;-0.002931101
1993-02-17;-0.006866038
1993-02-18; 0.009797139
1993-02-19;-0.000989549
1993-02-22;-0.018104839
1993-02-23;-0.008574876
1993-02-24;-0.026409171
1993-02-25; 0.007175795
1993-02-26; 0.010563404
1993-03-01; 0.016442139
1993-03-02;-0.010785626
1993-03-03;-0.008087565
1993-03-04;-0.003026102
1993-03-05;-0.020540366
1993-03-08;-0.002086045
1993-03-09; 0.020582821
1993-03-10;-0.006134729
1993-03-11; 0.002056153
1993-03-12; 0.002030801
1993-03-15;-0.003259745
1993-03-16;-0.002866335
1993-03-17;-0.018671673
1993-03-18; 0
1993-03-19;-0.008397195
1993-03-22;-0.013172118
1993-03-23;-0.012473433
1993-03-24; 0.012916048
1993-03-25; 0.007450712
1993-03-26; 0.003179374
1993-03-29; 0.005262078
1993-03-30; 0.003152691
1993-03-31;-0.003152691
1993-04-01;-0.001045843
1993-04-02; 0.001045843
1993-04-05;-0.003162661
1993-04-06; 0.029107995
1993-04-07;-0.022792643
1993-04-08; 0.01559469
1993-04-09; 0
1993-04-12; 0
1993-04-13;-0.001026409
1993-04-14; 0.001026409
1993-04-15;-0.005164094
1993-04-16; 0
1993-04-19; 0.006210801
1993-04-20;-0.006834008
1993-04-21;-0.008765925
1993-04-22; 0.005234255
1993-04-23;-0.005863343
1993-04-26;-0.015196033
1993-04-27;-0.002779863
1993-04-28;-0.01008091
1993-04-29;-0.006470486
1993-04-30; 0.006470486
1993-05-03; 0.012860773
1993-05-04; 0.001056966
1993-05-05;-0.002115051
1993-05-06; 0.007426973
1993-05-07;-0.001073279
1993-05-10; 0.003806029
1993-05-11;-0.000633333
1993-05-12;-0.000633734
1993-05-13; 0.002750553
1993-05-14;-0.039735321
1993-05-17;-0.008130959
1993-05-18;-0.000228713
1993-05-19;-0.009307096
1993-05-20; 0
1993-05-21;-0.002242024
1993-05-24;-0.004475941
1993-05-25; 0.010037087
1993-05-26; 0.001126916
1993-05-27; 0.004426359
1993-05-28; 0.002194437
1993-05-31; 0
1993-06-01;-0.005518108
1993-06-02; 0.002224644
1993-06-03; 0.005938667
1993-06-04; 0.002206577
1993-06-07; 0.019130509
1993-06-08;-0.00216472
1993-06-09; 0.001071788
1993-06-10; 0
1993-06-11; 0.019229662
1993-06-14; 0.021955587
1993-06-15;-0.008322718
1993-06-16; 0.003126451
1993-06-17; 0.015487295
1993-06-18; 0.001016949
1993-06-21; 0.012186161
1993-06-22; 0.013051706
1993-06-23; 0.007938508
1993-06-24; 0.005922978
1993-06-25; 0.003334082
1993-06-28; 0.014787328
1993-06-29;-0.006399797
1993-06-30;-0.00583351
1993-07-01; 0.001355439
1993-07-02;-0.002347894
1993-07-05;-0.005873583
1993-07-06; 0.002544712
1993-07-07; 0.022715001
1993-07-08; 0.068605893
1993-07-09; 0.001798445
1993-07-12; 0.003568758
1993-07-13;-0.007150297
1993-07-14;-0.002699258
1993-07-15;-0.001809786
1993-07-16; 0.006292139
1993-07-19; 0.031761456
1993-07-20; 0.000862534
1993-07-21;-0.009583441
1993-07-22; 0
1993-07-23; 0.002626076
1993-07-26; 0.010417979
1993-07-27;-0.028928575
1993-07-28;-0.016159641
1993-07-29; 0
1993-07-30;-0.01732013
1993-08-02; 0.000914094
1993-08-03; 0.01097976
1993-08-04; 0.004527062
1993-08-05;-0.010910947
1993-08-06; 0.008189652
1993-08-09;-0.001805768
1993-08-10; 0.003627039
1993-08-11; 0.001799236
1993-08-12; 0.016159641
1993-08-13; 0.00176724
1993-08-16; 0.005319649
1993-08-17;-0.001776183
1993-08-18; 0.007067683
1993-08-19; 0.008733363
1993-08-20;-0.009625481
1993-08-23;-0.017733405
1993-08-24; 0.008014373
1993-08-25; 0.005319649
1993-08-26;-0.019620427
1993-08-27; 0.002683065
1993-08-30; 0.014281074
1993-08-31; 0.013193332
1993-09-01;-0.011415587
1993-09-02;-0.004441108
1993-09-03; 0.003543466
1993-09-06;-0.012466736
1993-09-07;-0.01262412
1993-09-08; 0.010841025
1993-09-09; 0.003581539
1993-09-10;-0.010802057
1993-09-13; 0.000917114
1993-09-14;-0.00037423
1993-09-15;-0.012353043
1993-09-16;-0.001839613
1993-09-17; 0.009314872
1993-09-20; 0.004709334
1993-09-21; 0.007738028
1993-09-22;-0.01173297
1993-09-23; 0.01262412
1993-09-24;-0.015899478
1993-09-27; 0.014116384
1993-09-28; 0.002691992
1993-09-29;-0.000908897
1993-09-30; 0.006252795
1993-10-01; 0.003552925
1993-10-04; 0.004437199
1993-10-05; 0.037276749
1993-10-06; 0.009315612
1993-10-07; 0.010077052
1993-10-08;-0.002509759
1993-10-11;-0.002516074
1993-10-12;-0.011814395
1993-10-13; 0
1993-10-14; 0.003387305
1993-10-15; 0.005068257
1993-10-18; 0.011715499
1993-10-19; 0.019772222
1993-10-20; 0.018576696
1993-10-21;-0.010450879
1993-10-22; 0.016039703
1993-10-25; 0.004770374
1993-10-26;-0.010359197
1993-10-27;-0.008843646
1993-10-28; 0
1993-10-29; 0.015240098
1993-11-01;-0.000807628
1993-11-02; 0.014227134
1993-11-03;-0.001561789
1993-11-04;-0.015059093
1993-11-05;-0.020151437
1993-11-08;-0.000320483
1993-11-09; 0.009235847
1993-11-10; 0.005633818
1993-11-11;-0.004815111
1993-11-12;-0.002424649
1993-11-15; 0.017623795
1993-11-16; 0.002382342
1993-11-17; 0
1993-11-18; 0.011032344
1993-11-19; 0.004695757
1993-11-22;-0.026883515
1993-11-23;-0.017780478
1993-11-24; 0.003254887
1993-11-25; 0.007280812
1993-11-26;-0.007280812
1993-11-29;-0.00031996
1993-11-30;-0.007845697
1993-12-01; 0.012215232
1993-12-02; 0.0184592
1993-12-03; 0.004762774
1993-12-06; 0.004723891
1993-12-07; 0.014071398
1993-12-08; 0.019994299
1993-12-09; 0.00379119
1993-12-10; 0.005293006
1993-12-13; 0.011259719
1993-12-14; 0.00223681
1993-12-15;-0.007470397
1993-12-16; 0.022974346
1993-12-17; 0.00072799
1993-12-20; 0.013806822
1993-12-21;-0.005066945
1993-12-22; 0.005799376
1993-12-23; 0.011469276
1993-12-24; 0
1993-12-27; 0.021178345
1993-12-28; 0.001387404
1993-12-29;-0.016880066
1993-12-30; 0.023831384
1993-12-31; 0
1994-01-03; 0.006903331
1994-01-04;-0.004139138
1994-01-05;-0.003452849
1994-01-06; 0.00690807
1994-01-07;-0.01246332
1994-01-10; 0.009708675
1994-01-11; 0.000685802
1994-01-12; 0
1994-01-13;-0.023731495
1994-01-14;-0.019972007
1994-01-17; 0.002875556
1994-01-18;-0.008651594
1994-01-19; 0.013667707
1994-01-20;-0.006445407
1994-01-21;-0.024768601
1994-01-24;-0.009637593
1994-01-25; 0.024283317
1994-01-26;-0.004374262
1994-01-27; 0.001465246
1994-01-28;-0.004387034
1994-01-31; 0.079474594
1994-02-01; 0.066689116
1994-02-02;-0.003161923
1994-02-03;-0.013414319
1994-02-04;-0.014244949
1994-02-07;-0.008520042
1994-02-08; 0.019536773
1994-02-09; 0.002588739
1994-02-10; 0.032902879
1994-02-11;-0.003733734
1994-02-14; 0.020409525
1994-02-15; 0.012777714
1994-02-16; 0.000600834
1994-02-17; 0.037371804
1994-02-18; 0.009836224
1994-02-21;-0.022733053
1994-02-22;-0.01066811
1994-02-23;-0.010783147
1994-02-24;-0.017011193
1994-02-25; 0.006715721
1994-02-28; 0.011492435
1994-03-01; 0.004810779
1994-03-02;-0.012051796
1994-03-03; 0.018023661
1994-03-04; 0.0165291
1994-03-07; 0.023143827
1994-03-08; 0.012503842
1994-03-09;-0.021692414
1994-03-10; 0.003449658
1994-03-11;-0.022108402
1994-03-14; 0.008201541
1994-03-15; 0.015062043
1994-03-16; 0.004583732
1994-03-17;-0.003441772
1994-03-18;-0.010384955
1994-03-21;-0.014020589
1994-03-22;-0.00117019
1994-03-23;-0.011851882
1994-03-24;-0.007780983
1994-03-25;-0.017567205
1994-03-28; 0.024150295
1994-03-29;-0.010796142
1994-03-30;-0.006051399
1994-03-31; 0.005451654
1994-04-01; 0
1994-04-04; 0
1994-04-05; 0.01379024
1994-04-06; 0.014186198
1994-04-07; 0.004680328
1994-04-08;-0.003514261
1994-04-11; 0.010493935
1994-04-12;-0.002899268
1994-04-13;-0.001748431
1994-04-14; 0.001748431
1994-04-15; 0.002899268
1994-04-18; 0.018389544
1994-04-19;-0.014911906
1994-04-20; 0.002307744
1994-04-21;-0.001147228
1994-04-22; 0.003449658
1994-04-25;-0.011565533
1994-04-26; 0.017872979
1994-04-27; 0.006279678
1994-04-28; 0.016894974
1994-04-29; 0.006688063
1994-05-02; 0.016504432
1994-05-03;-0.003283703
1994-05-04; 0.011984157
1994-05-05; 0.001623641
1994-05-06; 0.003228242
1994-05-09;-0.003776625
1994-05-10;-0.001624532
1994-05-11; 0.008096396
1994-05-12; 0
1994-05-13; 0.008549806
1994-05-16; 0.01585277
1994-05-17; 0.003142782
1994-05-18;-0.018455342
1994-05-19;-0.007478573
1994-05-20;-0.014586062
1994-05-23; 0
1994-05-24;-0.019777388
1994-05-25;-0.021314596
1994-05-26;-0.029923051
1994-05-27; 0.008144231
1994-05-30;-0.015185146
1994-05-31;-0.001048231
1994-06-01; 0
1994-06-02; 0
1994-06-03; 0.00365186
1994-06-06;-0.001215806
1994-06-07;-0.0061013
1994-06-08;-0.00122474
1994-06-09;-0.008615438
1994-06-10; 0.001235331
1994-06-13;-0.026267927
1994-06-14;-0.018548661
1994-06-15; 0.010915036
1994-06-16;-0.008980176
1994-06-17; 0.001931124
1994-06-20;-0.040018459
1994-06-21; 0.019881371
1994-06-22; 0.002621233
1994-06-23; 0.011711259
1994-06-24; 0
1994-06-27;-0.007792247
1994-06-28; 0.018088348
1994-06-29; 0.011457796
1994-06-30;-0.012739026
1994-07-01; 0.005115101
1994-07-04; 0.015190165
1994-07-05;-0.005037794
1994-07-06;-0.006968669
1994-07-07; 0.004440223
1994-07-08; 0.011328
1994-07-11; 0.012437971
1994-07-12; 0
1994-07-13; 0.007389196
1994-07-14;-0.002457004
1994-07-15; 0.014046032
1994-07-18; 0.003027553
1994-07-19; 0.00962703
1994-07-20; 0.016627461
1994-07-21;-0.008279172
1994-07-22; 0.03500941
1994-07-25;-0.010374733
1994-07-26; 0.012665685
1994-07-27;-0.004587164
1994-07-28;-0.008078521
1994-07-29; 0.004624286
1994-08-01;-0.006363921
1994-08-02; 0.009818156
1994-08-03; 0.007443493
1994-08-04;-0.008593579
1994-08-05;-0.008087855
1994-08-08; 0.00115942
1994-08-09;-0.003482302
1994-08-10; 0.001742667
1994-08-11; 0.005209853
1994-08-12;-0.01278344
1994-08-15;-0.001170275
1994-08-16;-0.001171646
1994-08-17; 0.001171646
1994-08-18;-0.012371292
1994-08-19;-0.01312668
1994-08-22;-0.018794127
1994-08-23;-0.017284381
1994-08-24; 0.001244555
1994-08-25; 0.012361097
1994-08-26; 0.018259789
1994-08-29; 0.004813487
1994-08-30;-0.001201201
1994-08-31;-0.004215604
1994-09-01;-0.003022063
1994-09-02;-0.00851069
1994-09-05;-0.014760416
1994-09-06; 0.004327673
1994-09-07; 0.005536772
1994-09-08; 0.005506285
1994-09-09; 0.005476132
1994-09-12;-0.017136282
1994-09-13;-0.010549276
1994-09-14;-0.00124844
1994-09-15;-0.001875587
1994-09-16; 0.002500001
1994-09-19;-0.011299555
1994-09-20;-0.015267472
1994-09-21;-0.003853569
1994-09-22;-0.00128783
1994-09-23; 0.009618542
1994-09-26;-0.003195912
1994-09-27;-0.00964948
1994-09-28; 0.001937359
1994-09-29;-0.030126705
1994-09-30; 0.002656044
1994-10-03; 0
1994-10-04;-0.010666768
1994-10-05; 0.002008705
1994-10-06;-0.00873368
1994-10-07; 0.005383593
1994-10-10; 0.030405515
1994-10-11; 0.024438515
1994-10-12; 0.006964257
1994-10-13; 0.00252048
1994-10-14; 0.023018124
1994-10-17;-0.007407441
1994-10-18;-0.018762276
1994-10-19;-0.024282343
1994-10-20; 0.011575692
1994-10-21;-0.025252232
1994-10-24;-0.004600731
1994-10-25;-0.029413885
1994-10-26; 0.022804476
1994-10-27;-0.00798939
1994-10-28; 0.015915455
1994-10-31; 0.019544596
1994-11-01; 0.001289491
1994-11-02;-0.002580647
1994-11-03; 0
1994-11-04; 0.009643276
1994-11-07;-0.018728348
1994-11-08; 0.009730858
1994-11-09; 0.014739133
1994-11-10;-0.003824096
1994-11-11;-0.00512165
1994-11-14;-0.003858526
1994-11-15; 0.016613801
1994-11-16; 0
1994-11-17;-0.0063573
1994-11-18; 0.003819228
1994-11-21;-0.004457187
1994-11-22;-0.010908032
1994-11-23;-0.034124046
1994-11-24; 0.002000668
1994-11-25;-0.002668447
1994-11-28; 0.003334448
1994-11-29;-0.004002674
1994-11-30; 0.009314771
1994-12-01;-0.008646545
1994-12-02; 0.00066778
1994-12-05; 0.017207572
1994-12-06;-0.00790518
1994-12-07;-0.001323627
1994-12-08;-0.008646545
1994-12-09;-0.014127379
1994-12-12;-0.005434796
1994-12-13;-0.005464494
1994-12-14;-0.005494519
1994-12-15; 0.017747906
1994-12-16; 0.012105057
1994-12-19; 0.015915455
1994-12-20; 0.0104713
1994-12-21; 0.001301236
1994-12-22; 0
1994-12-23;-0.000650407
1994-12-26; 0
1994-12-27; 0.005838486
1994-12-28;-0.001942377
1994-12-29;-0.015018239
1994-12-30; 0.013072082
1995-01-02;-0.005208345
1995-01-03;-0.001306336
1995-01-04;-0.011834458
1995-01-05;-0.001323627
1995-01-06;-0.002652521
1995-01-09; 0.013192803
1995-01-10;-0.004597709
1995-01-11; 0.011780241
1995-01-12; 0.00906742
1995-01-13;-0.009718249
1995-01-16; 0.00778214
1995-01-17;-0.001292825
1995-01-18;-0.010403215
1995-01-19; 0.005865119
1995-01-20;-0.0163777
1995-01-23;-0.018667209
1995-01-24;-0.013550343
1995-01-25;-0.006844654
1995-01-26; 0
1995-01-27; 0.006844654
1995-01-30; 0.00544219
1995-01-31;-0.00544219
1995-02-01; 0.012877169
1995-02-02;-0.00472495
1995-02-03; 0.004051322
1995-02-06; 0.014051753
1995-02-07;-0.001329787
1995-02-08;-0.004000005
1995-02-09; 0.030913346
1995-02-10; 0.0064558
1995-02-13;-0.011650617
1995-02-14; 0.010362787
1995-02-15;-0.001289491
1995-02-16;-0.012987196
1995-02-17; 0.002610968
1995-02-20;-0.00522877
1995-02-21; 0
1995-02-22; 0.005880448
1995-02-23; 0.010369503
1995-02-24;-0.005819609
1995-02-27;-0.00781254
1995-02-28;-0.009192448
1995-03-01; 0.011151313
1995-03-02;-0.001305483
1995-03-03;-0.003271184
1995-03-06;-0.018519048
1995-03-07;-0.018868484
1995-03-08;-0.016461277
1995-03-09;-0.032328887
1995-03-10; 0.008534902
1995-03-13;-0.004258346
1995-03-14; 0.009908078
1995-03-15; 0
1995-03-16;-0.015614228
1995-03-17; 0.004282662
1995-03-20;-0.005714301
1995-03-21;-0.007189104
1995-03-22;-0.004338402
1995-03-23;-0.020498522
1995-03-24;-0.001480385
1995-03-27; 0.019076147
1995-03-28;-0.010667157
1995-03-29;-0.001028882
1995-03-30;-0.001471671
1995-03-31; 0.01316771
1995-04-03; 0.009403324
1995-04-04; 0
1995-04-05;-0.006210752
1995-04-06; 0.003326827
1995-04-07; 0.001443002
1995-04-10; 0.005751274
1995-04-11; 0.016353013
1995-04-12; 0.001409444
1995-04-13; 0.007716629
1995-04-14; 0
1995-04-17; 0
1995-04-18;-0.011950933
1995-04-19;-0.014245255
1995-04-20;-0.01154414
1995-04-21; 0.01154414
1995-04-24;-0.018827493
1995-04-25; 0.022407876
1995-04-26; 0.019115626
1995-04-27; 0.002101577
1995-04-28;-0.006318027
1995-05-01; 0
1995-05-02; 0.016898663
1995-05-03; 0.000553787
1995-05-04; 0.011011811
1995-05-05;-0.004115232
1995-05-08; 0.012295237
1995-05-09;-0.003400207
1995-05-10; 0.00475706
1995-05-11; 0.03136727
1995-05-12; 0.011757157
1995-05-15;-0.006514681
1995-05-16; 0.017493157
1995-05-17;-0.022735633
1995-05-18;-0.021920506
1995-05-19;-0.002016807
1995-05-22; 0.014696323
1995-05-23; 0.003970885
1995-05-24; 0.00395518
1995-05-25; 0
1995-05-26;-0.006600684
1995-05-29; 0.01185004
1995-05-30; 0.000654236
1995-05-31;-0.003931853
1995-06-01; 0.025284978
1995-06-02;-0.00064041
1995-06-05; 0
1995-06-06; 0.005111832
1995-06-07;-0.008320048
1995-06-08;-0.018158735
1995-06-09;-0.001309758
1995-06-12; 0.00522877
1995-06-13;-0.002610968
1995-06-14; 0.003913899
1995-06-15; 0
1995-06-16;-0.003913899
1995-06-19; 0.008460838
1995-06-20; 0.000647878
1995-06-21; 0.002587324
1995-06-22; 0.007722046
1995-06-23;-0.002567396
1995-06-26;-0.001286174
1995-06-27; 0.003853569
1995-06-28;-0.015504187
1995-06-29; 0.002600782
1995-06-30;-0.011757157
1995-07-03; 0.010457612
1995-07-04; 0.002597404
1995-07-05;-0.005201572
1995-07-06; 0.009730858
1995-07-07; 0.023605562
1995-07-10; 0.005031457
1995-07-11; 0.024784416
1995-07-12;-0.002450982
1995-07-13; 0.008552282
1995-07-14;-0.019656653
1995-07-17; 0.013555352
1995-07-18;-0.009222322
1995-07-19;-0.003712876
1995-07-20; 0.003095019
1995-07-21; 0.003701423
1995-07-24; 0.001230769
1995-07-25; 0.015258154
1995-07-26; 0.006640531
1995-07-27;-0.001806685
1995-07-28;-0.009082715
1995-07-31;-0.005489492
1995-08-01;-0.020389956
1995-08-02;-0.001874415
1995-08-03; 0.004368182
1995-08-04;-0.018856624
1995-08-07; 0.007585371
1995-08-08; 0
1995-08-09;-0.005050516
1995-08-10; 0.000632711
1995-08-11; 0.010695289
1995-08-14;-0.009431066
1995-08-15; 0.016912398
1995-08-16; 0.014796817
1995-08-17; 0.009744291
1995-08-18;-0.002427186
1995-08-21;-0.004261802
1995-08-22;-0.000610314
1995-08-23; 0.004872117
1995-08-24;-0.002433091
1995-08-25;-0.003660773
1995-08-28;-0.003060915
1995-08-29;-0.001226994
1995-08-30; 0.004287909
1995-08-31;-0.001223242
1995-09-01; 0.007924455
1995-09-04; 0.00060698
1995-09-05; 0
1995-09-06; 0.009060769
1995-09-07;-0.00120337
1995-09-08; 0.001804512
1995-09-11;-0.01087624
1995-09-12; 0.003638573
1995-09-13; 0.004830927
1995-09-14; 0.00240674
1995-09-15; 0.00599163
1995-09-18;-0.002392346
1995-09-19;-0.000598982
1995-09-20;-0.012055601
1995-09-21;-0.014046032
1995-09-22;-0.03123302
1995-09-25;-0.001269841
1995-09-26; 0.007594973
1995-09-27;-0.025544173
1995-09-28; 0.006447476
1995-09-29; 0.006406172
1995-10-02; 0.01646649
1995-10-03; 0
1995-10-04; 0.005012542
1995-10-05;-0.00250313
1995-10-06;-0.021533448
1995-10-09;-0.010943141
1995-10-10;-0.01106422
1995-10-11;-0.005907467
1995-10-12;-0.003297069
1995-10-13; 0.01442648
1995-10-16;-0.006531702
1995-10-17; 0.011726519
1995-10-18;-0.006497749
1995-10-19;-0.006540246
1995-10-20;-0.00526317
1995-10-23;-0.034902872
1995-10-24; 0.013838235
1995-10-25; 0.007784229
1995-10-26;-0.010752792
1995-10-27;-0.011552966
1995-10-30; 0.022973983
1995-10-31; 0.008646545
1995-11-01;-0.002652521
1995-11-02; 0.011881328
1995-11-03;-0.002628122
1995-11-06;-0.002635048
1995-11-07; 0.001318392
1995-11-08; 0.013089192
1995-11-09; 0.012920076
1995-11-10;-0.007731997
1995-11-13; 0
1995-11-14; 0.014767524
1995-11-15;-0.008962928
1995-11-16; 0.005771096
1995-11-17; 0.00255428
1995-11-20; 0.010783485
1995-11-21;-0.008235713
1995-11-22;-0.00446287
1995-11-23;-0.013509372
1995-11-24;-0.011071425
1995-11-27; 0.021380795
1995-11-28; 0.003838776
1995-11-29;-0.001917546
1995-11-30;-0.003204104
1995-12-01; 0.006397974
1995-12-04;-0.005115101
1995-12-05;-0.022035888
1995-12-06;-0.008555498
1995-12-07;-0.000661157
1995-12-08;-0.011307071
1995-12-11; 0.003338901
1995-12-12; 0.010610179
1995-12-13;-0.007282389
1995-12-14; 0.011232361
1995-12-15;-0.005270104
1995-12-18;-0.008623602
1995-12-19;-0.012739026
1995-12-20; 0.001348618
1995-12-21;-0.000674082
1995-12-22; 0.007390024
1995-12-25; 0
1995-12-26; 0
1995-12-27;-0.006715942
1995-12-28;-0.003374961
1995-12-29;-0.006103783
1996-01-01; 0
1996-01-02; 0.010825546
1996-01-03; 0.033093688
1996-01-04; 0.012293911
1996-01-05; 0.003210276
1996-01-08; 0.005115101
1996-01-09; 0.01242252
1996-01-10;-0.001008319
1996-01-11;-0.004423388
1996-01-12; 0.008199352
1996-01-15; 0.001255493
1996-01-16; 0.017413375
1996-01-17;-0.004944386
1996-01-18;-0.001239926
1996-01-19;-0.00062054
1996-01-22;-0.006851475
1996-01-23; 0.00623055
1996-01-24; 0.02756683
1996-01-25; 0.001811048
1996-01-26;-0.001207001
1996-01-29; 0.013793322
1996-01-30; 0.000595415
1996-01-31; 0.007117468
1996-02-01;-0.013087635
1996-02-02;-0.007452853
1996-02-05;-0.011284473
1996-02-06; 0.000609942
1996-02-07; 0.001218769
1996-02-08;-0.007334996
1996-02-09;-0.009864445
1996-02-12; 0.004944386
1996-02-13; 0.012255055
1996-02-14;-0.002805393
1996-02-15; 0.002805393
1996-02-16;-0.003660773
1996-02-19;-0.009210995
1996-02-20;-0.009296627
1996-02-21; 0
1996-02-22; 0.006207345
1996-02-23; 0.015351852
1996-02-26;-0.007953545
1996-02-27; 0.003066546
1996-02-28; 0.006713483
1996-02-29; 0.004854378
1996-03-01; 0.010836951
1996-03-04;-0.010231808
1996-03-05;-0.002422775
1996-03-06;-0.011589029
1996-03-07; 0.003674223
1996-03-08;-0.008594282
1996-03-11;-0.019297206
1996-03-12; 0.016209831
1996-03-13; 0.001236094
1996-03-14;-0.005574496
1996-03-15; 0.00619197
1996-03-18;-0.001235331
1996-03-19; 0.01106342
1996-03-20;-0.009828089
1996-03-21;-0.002472189
1996-03-22;-0.01370738
1996-03-25;-0.01262643
1996-03-26;-0.00957556
1996-03-27;-0.003212338
1996-03-28; 0.000643294
1996-03-29;-0.007746972
1996-04-01; 0.01543439
1996-04-02; 0.003185731
1996-04-03;-0.003185731
1996-04-04; 0.015199786
1996-04-05; 0
1996-04-08; 0
1996-04-09; 0.00376412
1996-04-10; 0.026569373
1996-04-11;-0.001220256
1996-04-12; 0
1996-04-15; 0.019347641
1996-04-16;-0.010231808
1996-04-17;-0.004243717
1996-04-18; 0.007263954
1996-04-19; 0.011990551
1996-04-22;-0.008378266
1996-04-23; 0.008378266
1996-04-24; 0.001786246
1996-04-25;-0.003575689
1996-04-26; 0.004170396
1996-04-29;-0.014371505
1996-04-30;-0.003020238
1996-05-01; 0
1996-05-02;-0.003029387
1996-05-03;-0.017753757
1996-05-06; 0.004929154
1996-05-07; 0
1996-05-08; 0.00551641
1996-05-09; 0.007308193
1996-05-10;-0.005476132
1996-05-13; 0.011525757
1996-05-14;-0.00241546
1996-05-15;-0.012777783
1996-05-16; 0
1996-05-17; 0.017001017
1996-05-20;-0.003014775
1996-05-21; 0.00361664
1996-05-22; 0.004202948
1996-05-23; 0
1996-05-24;-0.002399521
1996-05-27; 0
1996-05-28; 0.007181359
1996-05-29; 0.00095363
1996-05-30; 0.001428742
1996-05-31;-0.000595061
1996-06-03;-0.00202586
1996-06-04; 0.015623468
1996-06-05; 0.011095004
1996-06-06; 0
1996-06-07; 0.006944472
1996-06-10; 0.005750447
1996-06-11;-0.001147447
1996-06-12; 0.005153175
1996-06-13;-0.005153175
1996-06-14; 0.008573931
1996-06-17;-0.000569314
1996-06-18;-0.001139601
1996-06-19;-0.001140901
1996-06-20;-0.001142205
1996-06-21; 0.002853069
1996-06-24; 0.005681833
1996-06-25;-0.005112195
1996-06-26; 0.002275314
1996-06-27;-0.003414915
1996-06-28; 0.006251796
1996-07-01;-0.001133787
1996-07-02;-0.003978408
1996-07-03;-0.005711038
1996-07-04; 0.007986352
1996-07-05; 0.019133955
1996-07-08;-0.002232144
1996-07-09; 0.001674575
1996-07-10;-0.005592856
1996-07-11;-0.015828482
1996-07-12;-0.020144566
1996-07-15;-0.00583092
1996-07-16;-0.013541567
1996-07-17; 0.002013384
1996-07-18;-0.001420791
1996-07-19; 0.004138345
1996-07-22;-0.004138345
1996-07-23; 0
fExtremes/R/ 0000755 0001762 0000144 00000000000 13203504345 012414 5 ustar ligges users fExtremes/R/GpdSim.R 0000644 0001762 0000144 00000003556 12323220004 013720 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
################################################################################
# FUNCTION: GPD SIMULATION:
# gpdSim Simulates a GPD distributed process
################################################################################
gpdSim =
function(model = list(xi = 0.25, mu = 0, beta = 1), n = 1000, seed = NULL)
{
# A function implemented by Diethelm Wuertz
# Description:
# Generates random variates from a GPD distribution
# Arguments:
# model - a list of model parameters, xi, mu and beta.
# n - an integer, the number of simulated random variates
# seed - an integer, the random number generator seed
# FUNCTION:
# Seed:
if (is.null(seed)) seed = NA else set.seed(seed)
# Simulate:
ans = rgpd(n = n, xi = model$xi, mu = model$mu, beta = model$beta)
# DW: ans = as.ts(ans)
ans = timeSeries(ans, units = "GPD")
# Control:
attr(ans, "control") =
data.frame(t(unlist(model)), seed = seed, row.names = "")
# Return Value:
ans
}
################################################################################
fExtremes/R/MeanExcessFit.R 0000644 0001762 0000144 00000020503 12323220004 015222 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
################################################################################
# FUNCTION: MEAN EXCESS FUNCTION FIT:
# normMeanExcessFit Fits mean excesses to a normal density
# ghMeanExcessFit Fits mean excesses to a generalized hyperbolic density
# hypMeanExcessFit Fits mean excesses to a hyperbolic density
# nigMeanExcessFit Fits mean excesses to a normal inverse Gaussian density
################################################################################
normMeanExcessFit =
function(x, doplot = TRUE, trace = TRUE, ...)
{
# A function implemented by Diethelm Wuertz
# Description:
# Fits mean excesses with a normal density
# Arguments:
# x - an univariate 'timeSeries' object
# doplot - alogical flag. Should a mean excess plot be dispalyed?
# ... - optional parameters passed to the function mePlot()
# FUNCTION:
# Settings:
x = as.vector(x)
U = mePlot(x, doplot = doplot, ...)[, 1]
U = U[!is.na(U)]
U = seq(min(U), max(U), length = 51)
if(trace) print(U)
# Fit Parameters:
fit = nFit(x, doplot = FALSE, trace = FALSE)
param = fit@fit$estimate
# Compute Mean Excess Function:
func<-function(x, u, param) {
(x-u)*dnorm(x, param[1], param[2])}
Y = NULL
for (u in U) {
y1 = integrate(func, lower = u, upper = Inf, u = u,
param = param)[[1]]
y2 = integrate(dnorm, lower = u, upper = Inf,
mean = param[1],
sd = param[2])[[1]]
Y = c(Y, y1/y2)
}
# Plot:
if (doplot) lines(U, Y, lwd = 2)
# Result:
result = data.frame(threshold = U, me = Y)
attr(result, "control")<-fit
# Return Value:
invisible(result)
}
# ------------------------------------------------------------------------------
ghMeanExcessFit =
function(x, doplot = TRUE, trace = TRUE, ...)
{
# A function implemented by Diethelm Wuertz
# Description:
# Fits mean excesses with a hyperbolic density
# Arguments:
# x - an univariate 'timeSeries' object
# doplot - alogical flag. Should a mean excess plot be dispalyed?
# ... - optional parameters passed to the function mePlot()
# FUNCTION:
# Settings:
x = as.vector(x)
U = mePlot(x, doplot = doplot, ...)[, 1]
U = U[!is.na(U)]
U = seq(min(U), max(U), length = 51)
if(trace) print(U)
# Fit Parameters:
fit = ghFit(x, doplot = FALSE, trace = FALSE)
param = fit@fit$estimate
# Compute Mean Excess Function:
func<-function(x, u, param) {
(x-u)*dgh(x, param[1], param[2], param[3], param[4], param[5]) }
Y = NULL
for (u in U) {
y1 = integrate(func, lower = u, upper = Inf, u = u,
param = param)[[1]]
if (trace) print(c(u, y1))
y2 = integrate(dgh, lower = u, upper = Inf,
alpha = param[1],
beta = param[2],
delta = param[3],
mu = param[4],
lambda = param[5])[[1]]
if (trace) print(c(u, y2))
Y = c(Y, y1/y2)
}
# Plot:
if (doplot) lines(U, Y, lwd = 2)
# Result:
result = data.frame(threshold = U, me = Y)
attr(result, "control")<-fit
# Return Value:
invisible(result)
}
# ------------------------------------------------------------------------------
hypMeanExcessFit =
function(x, doplot = TRUE, trace = TRUE, ...)
{
# A function implemented by Diethelm Wuertz
# Description:
# Fits mean excesses with a hyperbolic density
# Arguments:
# x - an univariate 'timeSeries' object
# doplot - alogical flag. Should a mean excess plot be dispalyed?
# ... - optional parameters passed to the function mePlot()
# FUNCTION:
# Settings:
x = as.vector(x)
U = mePlot(x, doplot = FALSE)[, 1]
U = U[!is.na(U)]
U = seq(min(U), max(U), length = 51)
# Fit Parameters:
fit = hypFit(x, doplot = FALSE, trace = FALSE)
param = fit@fit$estimate
# Compute Mean Excess Function:
func<-function(x, u, param) {
(x-u)*dhyp(x, param[1], param[2], param[3], param[4])}
Y = NULL
for (u in U) {
y = integrate(func, lower = u, upper = Inf, u = u, param = param)[[1]]
Y = c(Y, y)
}
# Plot:
if (doplot) lines(U, Y, lwd = 2)
# Result:
result = data.frame(threshold = U, me = Y)
attr(result, "control")<-fit
# Return Value:
invisible(result)
}
# ------------------------------------------------------------------------------
nigMeanExcessFit =
function(x, doplot = TRUE, trace = TRUE, ...)
{
# A function implemented by Diethelm Wuertz
# Description:
# Fits mean excesses with a genaralized hyperbolic density
# Arguments:
# x - an univariate 'timeSeries' object
# doplot - alogical flag. Should a mean excess plot be dispalyed?
# ... - optional parameters passed to the function mePlot()
# FUNCTION:
# Settings:
x = as.vector(x)
U = mePlot(x, doplot = doplot, ...)[, 1]
U = U[!is.na(U)]
U = seq(min(U), max(U), length = 51)
if(trace) print(U)
# Fit Parameters:
fit = nigFit(x, doplot = FALSE, trace = FALSE, scale = FALSE)
param = fit@fit$estimate
# Compute Mean Excess Function:
func<-function(x, u, param) {
(x-u)*dnig(x, param[1], param[2], param[3], param[4]) }
Y = NULL
for (u in U) {
y1 = integrate(func, lower = u, upper = Inf, u = u,
param = param)[[1]]
if (trace) print(c(u, y1))
y2 = integrate(dnig, lower = u, upper = Inf,
alpha = param[1],
beta = param[2],
delta = param[3],
mu = param[4])[[1]]
if (trace) print(c(u, y2))
Y = c(Y, y1/y2)
}
# Plot:
if (doplot) lines(U, Y, lwd = 2)
# Result:
result = data.frame(threshold = U, me = Y)
attr(result, "control")<-fit
# Return Value:
invisible(result)
}
# ------------------------------------------------------------------------------
ghtMeanExcessFit =
function(x, doplot = TRUE, trace = TRUE, ...)
{
# A function implemented by Diethelm Wuertz
# Description:
# Fits mean excesses with a genaralized hyperbolic density
# Arguments:
# x - an univariate 'timeSeries' object
# doplot - alogical flag. Should a mean excess plot be dispalyed?
# ... - optional parameters passed to the function mePlot()
# FUNCTION:
# Settings:
x = as.vector(x)
U = mePlot(x, doplot = doplot, ...)[, 1]
U = U[!is.na(U)]
U = seq(min(U), max(U), length = 51)
if(trace) print(U)
# Fit Parameters:
fit = ghtFit(x, doplot = FALSE, trace = FALSE, scale = FALSE)
param = fit@fit$estimate
# Compute Mean Excess Function:
func<-function(x, u, param) {
(x-u) * dght(x, param[1], param[2], param[3], param[4]) }
Y = NULL
for (u in U) {
y1 = integrate(func, lower = u, upper = Inf, u = u,
param = param)[[1]]
if (trace) print(c(u, y1))
y2 = integrate(dght, lower = u, upper = Inf,
beta = param[1],
delta = param[2],
mu = param[3],
nu = param[4])[[1]]
if (trace) print(c(u, y2))
Y = c(Y, y1/y2)
}
# Plot:
if (doplot) lines(U, Y, lwd = 2)
# Result:
result = data.frame(threshold = U, me = Y)
attr(result, "control")<-fit
# Return Value:
invisible(result)
}
################################################################################
fExtremes/R/ExtremesData.R 0000644 0001762 0000144 00000052706 12323220004 015124 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
################################################################################
# FUNCTION EXPLORATIVE DATA ANALYSIS:
# emdPlot Creates an empirical distribution plot
# qqparetoPlot Creates exploratory QQ plot for EV analysis
# mePlot Creates a sample mean excess plot
# mxfPlot Creates another view of a sample mean excess plot
# mrlPlot Returns a mean residual life plot with confidence levels
# recordsPlot Plots records development
# ssrecordsPlot Plots records development of data subsamples
# msratioPlot Plots ratio of maximums and sums
# sllnPlot Verifies Kolmogorov's Strong Law of large numbers
# lilPlot Verifies Hartman-Wintner's Law of the iterated logarithm
# xacfPlot Plots autocorrelations of exceedences
################################################################################
emdPlot =
function(x, doplot = TRUE, plottype = c("xy", "x", "y", " "),
labels = TRUE, ...)
{ # A function imported from R-package evir
# Description:
# Plots empirical distribution function
# Arguments:
# x - any object which can be transformed by the function
# as.vector() into a numeric vector
# doplot - a logical flag, should a pot be returned ?
# plottype - which axes should be on a log scale:
# "x" denotes x-axis only; "y" denotes y-axis only,
# "xy" || "yx" both axes, "" denotes neither of the
# axis
# FUNCTION:
# Convert Type:
x = as.vector(x)
# Settings:
plottype = match.arg(plottype)
# Convert x to a vector, if the input is a data.frame.
if (is.data.frame(x)) x = x[, 1]
xs = x = sort(as.numeric(x))
ys = y = 1 - ppoints(x)
if (plottype == "x") {
xs = x[x > 0]
ys = y[x > 0]
}
if (plottype == "y") {
xs = x[y > 0]
ys = y[y > 0]
}
if (plottype == "xy") {
xs = x[x > 0 & y > 0]
ys = y[x > 0 & y > 0]
}
# Plot:
if (doplot) {
if (labels) {
xlab = "x"
ylab = "1-F(x)"
main = "Empirical Distribution"
if (plottype == "xy") main = paste("log-log", main)
if (plottype == "x") main = paste("log-lin", main)
if (plottype == "y") main = paste("lin-log", main)
if (plottype == "") main = paste("lin-lin", main)
} else {
xlab = ""
ylab = ""
main = ""
}
if (labels) {
plot(xs, ys, pch = 19, col = "steelblue",
log = plottype, xlab = xlab, ylab = ylab, main = main, ...)
grid()
} else {
plot(xs, ys,
log = plottype, xlab = xlab, ylab = ylab, main = main, ...)
}
}
# Result:
result = data.frame(x, y)
# Return Value:
if (doplot) return(invisible(result)) else return(result)
}
# ------------------------------------------------------------------------------
qqparetoPlot =
function(x, xi = 0, trim = NULL, threshold = NULL, doplot = TRUE,
labels = TRUE, ...)
{ # A function imported from R-package evir
# Description:
# Creates an exploratory QQ-plot for Extreme Value Analysis.
# Arguments:
# x - any object which can be transformed by the function
# as.vector() into a numeric vector
# doplot - a logical flag, should a plot be returned ?
# FUNCTION:
# Convert Type:
x = as.vector(x)
# Convert x to a vector, if the input is a data.frame.
if(is.data.frame(x)) x = x[, 1]
# qPlot:
x = as.numeric(x)
if (!is.null(threshold)) x = x[x >= threshold]
if (!is.null(trim)) x = x[x < trim]
if (xi == 0) {
y = qexp(ppoints(x))
}
if( xi != 0) {
y = qgpd(ppoints(x), xi = xi)
}
# Plot:
if (doplot) {
if (labels) {
xlab = "Ordered Data"
ylab = "Quantiles"
if (xi == 0) {
ylab = paste("Exponential", ylab)
}
if (xi != 0) {
ylab = paste("GPD(xi=", xi, ") ", ylab, sep = "")
}
main = "Exploratory QQ Plot"
} else {
xlab = ""
ylab = ""
main = ""
}
z = sort(x)
plot(z, y, pch = 19, col = "steelblue", xlab = xlab,
ylab = ylab, main = main, ...)
rug(z, ticksize = 0.01, side = 3)
rug(y, ticksize = 0.01, side = 4)
abline(lsfit(z, y))
if (labels) {
grid()
text = paste("xi =", as.character(round(xi, 3)))
mtext(text, side = 4, adj = 0, cex = 0.7)
}
}
# Result:
result = data.frame(x = sort(x), y)
# Return Value:
if (doplot) return(invisible(result)) else return(result)
}
# ------------------------------------------------------------------------------
mxfPlot =
function (x, u = quantile(x, 0.05), doplot = TRUE, labels = TRUE, ...)
{ # A function written by Diethelm Wuertz
# Description:
# Creates a simple mean excess function plot.
# Arguments:
# FUNCTION:
# Convert Type:
x = as.vector(x)
# Convert x to a vector, if the input is a data.frame.
if(is.data.frame(x)) x = x[, 1]
# mxf:
tail = length(x[x < u])/length(x)
u = rev(sort(x))
n = length(x)
u = u[1:floor(tail*n)]
n = length(u)
e = (cumsum(u)-(1:n)*u)/(1:n)
# Plot
if (doplot) {
if (labels) {
xlab = "Threshold: u"
ylab = "Mean Excess: e"
main = "Mean Excess Function"
} else {
main = xlab = ylab = ""
}
plot (u, e, pch = 19, col = "steelblue",
xlab = xlab, ylab = ylab, main = main, ...)
if (labels) grid()
}
# Result:
result = data.frame(threshold = u, excess = e)
# Return Values:
if (doplot) return(invisible(result)) else return(result)
}
# ------------------------------------------------------------------------------
mrlPlot =
function(x, ci = 0.95, umin = mean(x), umax = max(x), nint = 100,
doplot = TRUE, plottype = c("autoscale", ""), labels = TRUE, ...)
{ # A function implemented by Diethelm Wuertz
# Description:
# Create a mean residual life plot with
# confidence intervals.
# Arguments:
# References:
# A function originally written by S. Coles
# FUNCTION:
# Convert Type:
x = as.vector(x)
# Settings:
plottype = plottype[1]
# Convert x to a vector, if the input is a data.frame.
if (is.data.frame(x)) x = x[,1]
sx = xu = xl = rep(NA, nint)
u = seq(umin, umax, length = nint)
for (i in 1:nint) {
x = x[x >= u[i]]
sx[i] = mean(x - u[i])
sdev = sqrt(var(x))
n = length(x)
xu[i] = sx[i] + (qnorm((1 + ci)/2) * sdev) / sqrt(n)
xl[i] = sx[i] - (qnorm((1 + ci)/2) * sdev) / sqrt(n)
}
# Plot:
if (doplot) {
if (labels) {
xlab = "Threshold: u"
ylab = "Mean Excess: e"
main = "Mean Residual Live Plot"
} else {
main = xlab = ylab = ""
}
if (plottype == "autoscale") {
ylim = c(min(xl[!is.na(xl)]), max(xu[!is.na(xu)]))
plot(u, sx, type = "o", pch = 19, col = "steelblue",
xlab = xlab, ylab = ylab, ylim = ylim, main = main, ...)
} else {
plot(u[!is.na(xl)], sx[!is.na(xl)], type = "o",
pch = 19, col = "steelblue",
xlab = xlab, ylab = ylab, main = main, ...)
}
lines(u[!is.na(xl)], xl[!is.na(xl)], col = "brown")
lines(u[!is.na(xu)], xu[!is.na(xu)], col = "brown")
if (labels) {
grid()
text = paste("ci =", as.character(round(ci, 3)))
mtext(text, side = 4, adj = 0, cex = 0.7)
}
}
# Result
result = data.frame(threshold = u, mrl = sx)
# Return Value:
if (doplot) return(invisible(result)) else return(result)
}
# ------------------------------------------------------------------------------
mePlot =
function(x, doplot = TRUE, labels = TRUE, ...)
{ # A function implemented by Diethelm Wuertz
# Description:
# Create a Mean Excess Plot
# Arguments:
# x - an univariate time series object or any other object which
# can be transformed by the function as.vector() into a numeric
# vector.
# doplot - a logical flag, should a plot be created?
# labels - a logical flag, should the plot be automatically labeld?
# If TRUE, then default values to xlab, ylab, main, pch and col
# are assigned.
# Reference:
# A function imported from R-package evir
# FUNCTION:
# Convert Type:
x = as.vector(x)
# Settings:
omit = 0
# Internal Function:
myrank = function(x, na.last = TRUE){
ranks = sort.list(sort.list(x, na.last = na.last))
if (is.na(na.last))
x = x[!is.na(x)]
for (i in unique(x[duplicated(x)])) {
which = x == i & !is.na(x)
ranks[which] = max(ranks[which])
}
ranks
}
# Convert x to a vector, if the input is a data.frame.
if(is.data.frame(x)) x = x[, 1]
x = as.numeric(x)
n = length(x)
x = sort(x)
n.excess = unique(floor(length(x) - myrank(x)))
points = unique(x)
nl = length(points)
n.excess = n.excess[-nl]
points = points[-nl]
excess = cumsum(rev(x))[n.excess] - n.excess * points
y = excess/n.excess
xx = points[1:(nl-omit)]
yy = y[1:(nl-omit)]
# Plot:
if (doplot) {
if (labels) {
xlab = "Threshold: u"
ylab = "Mean Excess: e"
main = "Mean Excess Plot"
plot(xx, yy, pch = 19, col = "steelblue",
xlab = xlab, ylab = ylab, main = main, ...)
grid()
} else {
plot(xx, yy, ...)
}
}
# Results:
result = data.frame(threshold = xx, me = yy)
# Return Value:
if (doplot) return(invisible(result)) else return(result)
}
# -----------------------------------------------------------------------------
recordsPlot =
function(x, ci = 0.95, doplot = TRUE, labels = TRUE, ...)
{ # A function implemented by Diethelm Wuertz
# Description:
# Creates a records plot.
# Note:
# A function imported from R-package evir,
# original name in EVIR: records
# FUNCTION:
# Convert Type:
x = as.vector(x)
# Settings:
conf.level = ci
# Convert x to a vector, if the input is a data.frame.
if (is.data.frame(x)) x = x[,1]
# Records:
record = cummax(x)
expected = cumsum(1/(1:length(x)))
se = sqrt(expected - cumsum(1/((1:length(x))^2)))
trial = (1:length(x))[!duplicated(record)]
record = unique(record)
number = 1:length(record)
expected = expected[trial]
se = se[trial]
# Plot:
if (doplot) {
if (labels) {
xlab = "Trials"
ylab = "Records"
main = "Plot of Record Development"
} else {
xlab = ""
ylab = ""
main = ""
}
ci = qnorm(0.5 + conf.level/2)
upper = expected + ci * se
lower = expected - ci * se
lower[lower < 1] = 1
yr = range(upper, lower, number)
plot(trial, number, log = "x", ylim = yr, pch = 19,
col = "steelblue", xlab = xlab, ylab = ylab,
main = main, ...)
lines(trial, expected)
lines(trial, upper, lty = 2, col = "brown")
lines(trial, lower, lty = 2, col = "brown")
if (labels) {
grid()
text = paste("ci =", as.character(conf.level))
mtext(text, side = 4, adj = 0, col = "grey", cex = 0.7)
}
}
# Result:
result = data.frame(number, record, trial, expected, se)
# Return Value:
if (doplot) return(invisible(result)) else return(result)
}
# ------------------------------------------------------------------------------
ssrecordsPlot =
function (x, subsamples = 10, doplot = TRUE, plottype = c("lin", "log"),
labels = TRUE, ...)
{ # A function implemented by Diethelm Wuertz
# Description:
# Creates a plot of records on subsamples.
# note:
# Changes:
# 2003/09/06 - argument list made consistent
# FUNCTION:
# Convert Type:
x = as.vector(x)
# Plot type:
plottype = match.arg(plottype)
# Labels:
xlab = ylab = main = ""
# Records:
save = x
cluster = floor(length(save)/subsamples)
records = c()
for (i in 1:subsamples) {
x = save[((i-1)*cluster+1):(i*cluster)]
y = 1:length(x)
u = x[1]
v = x.records = 1
while (!is.na(v)) {
u = x[x > u][1]
v = y[x > u][1]
if(!is.na(v)) x.records = c(x.records, v)
}
if (i == 1) {
nc = 1:length(x)
csmean = cumsum(1/nc)
cssd = sqrt(cumsum(1/nc-1/(nc*nc)))
ymax = csmean[length(x)] + 2*cssd[length(x)]
# Plot:
if (doplot) {
if (plottype == "log") {
nc = log(nc)
}
if (labels) {
if (plottype == "lin") xlab = "n"
if (plottype == "log") xlab = "log(n)"
ylab = "N(n)"
main = "Subsample Records Plot"
}
plot (nc, csmean+cssd, type = "l", ylim = c(0, ymax),
lty = 2, col = "brown", xlab = xlab, ylab = ylab,
main = main, ...)
lines(nc, csmean)
lines(nc, csmean-cssd, lty = 2, col = "brown")
if (labels) {
grid()
text = paste("subsamples =", as.character(subsamples))
mtext(text, side = 4, adj = 0, col = "grey", cex = 0.7)
}
}
}
y.records = 1:length(x.records)
x.records = x.records[y.records < ymax]
if (doplot) {
if (plottype == "log") {
x.records = log(x.records)
}
points(x.records, y.records[y.records u]
Distances = diff((1:length(x))[x > u])
# Plot:
if (doplot) {
if (which == "all" | which == "1")
plot (Heights, type = "h", xlab = xlab[1], ylab = ylab[1],
main = main[1], ...)
if (which == "all" | which == "2")
plot (Distances, type = "h", xlab = xlab[1], ylab = ylab[2],
main = main[2], ...)
}
# Correlations:
if (which == "all" | which == "3")
Heights = as.vector(acf(Heights, lag.max=lag.max, plot = doplot,
xlab = xlab[2], ylab = ylab[3], main = main[3], ...)$acf)
if (which == "all" | which == "4")
Distances = as.vector(acf(Distances, lag.max=lag.max, plot = doplot,
xlab = xlab[2], ylab = ylab[3], main = main[4], ...)$acf)
# Result:
if (which == "all") {
lag = as.vector(0:(lag.max))
result = data.frame(lag, Heights, Distances)
} else {
result = NULL
}
# Return Value:
if (doplot) return(invisible(result)) else return(result)
}
################################################################################
fExtremes/R/GevRisk.R 0000644 0001762 0000144 00000013320 12323220004 014075 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
################################################################################
# FUNCTION: ADDITIONAL FUNCTIONS:
# gevrlevelPlot Calculates Return Levels Based on GEV Fit
# .gevrlevelLLH Computes log-likelihood function for gevrlevelPlot
################################################################################
gevrlevelPlot =
function(object, kBlocks = 20, ci = c(0.90, 0.95, 0.99),
plottype = c("plot", "add"), labels = TRUE,...)
{ # A function implemented by Diethelm Wuertz
# Description:
# Calculates Return Levels Based on GEV Fit
# Arguments:
# object - an object of class "fGEVFIT" as returned by the
# function gevFit().
# kBlocks - specifies the particular return level to be
# estimated; default set arbitrarily to 20
# Note:
# Partial copy from R package evir
# Examples:
# ans = gevFit(gevSim(), type = "mle", gumbel = FALSE)
# ans = gevrlevelPlot(ans); ans@fit$rlevel
# ans = gevFit(.gumbelSim(), type = "mle", gumbel = TRUE)
# ans = gevrlevelPlot(ans); ans@fit$rlevel
#
# BMW annual (12 month) Return Level:
# ans = gevFit(as.timeSeries(data(bmwRet)), "m"); gevrlevelPlot(ans, 12)
# FUNCTION:
# Check:
stopifnot(object@method[1] == "gev")
stopifnot(object@method[2] == "mle")
stopifnot(kBlocks > 1)
stopifnot(max(ci) < 1)
stopifnot(min(ci) > 0)
# Settings:
out = object@fit
conf = ci[1]
plottype = plottype[1]
# Data:
par.ests = out$par.ests
mu = par.ests["mu"]
beta = par.ests["beta"]
xi = par.ests["xi"]
pp = 1/kBlocks
v = qgev((1 - pp), xi, mu, beta)
if (plottype[1] == "add") abline(h = v)
data = out$data
overallmax = out$llh # DW: out$nllh.final
beta0 = sqrt(6 * var(data))/pi
xi0 = 0.01
theta = c(xi0, beta0)
# Return Levels:
parmax = NULL
rl = v * c(0.5, 0.6, 0.7, 0.8, 0.85, 0.9, 0.95, 1, 1.1, 1.2,
1.25, 1.5, 1.75, 2, 2.25, 2.5, 2.75, 3, 3.25, 3.5, 4.5)
for (i in 1:length(rl)) {
fit = optim(theta, .gevrlevelLLH, tmp = data, pp = pp, rli = rl[i])
parmax = rbind(parmax, fit$value)
}
parmax = -parmax
overallmax = -overallmax
crit = overallmax - qchisq(0.9999, 1)/2
cond = parmax > crit
rl = rl[cond]
parmax = parmax[cond]
smth = spline(rl, parmax, n = 200)
aalpha = qchisq(conf[1], 1)
# Labels:
if (labels) {
main = paste(kBlocks, "Blocks Return Level")
xlab = "rl"
ylab = "parmax"
} else {
main = xlab = ylab = ""
}
# Plot ?
if (plottype[1] == "plot") {
plot(rl, parmax, type = "p", pch = 19, col = "steelblue",
main = main, xlab = xlab, ylab = ylab, ...)
h = overallmax - aalpha/2
abline(h = h, lty = 3, col = "brown")
abline(v = v, lty = 3, col = "brown")
lines(smth, ...)
if (labels) {
ciText = paste(as.character(100*conf[1]), "%", sep = "")
span = 0.025*abs(max(parmax)-min(parmax))
text(max(rl), h+span, ciText)
}
if (length(ci) > 1) {
for ( i in 2:length(ci) ) {
gevrlevelPlot(object = object, kBlocks = kBlocks,
ci = ci[i], plottype = c("nextconf"),
labels = labels, ...)
}
}
}
# Internally used to add furter confidence level lines ...
if (plottype[1] == "nextconf") {
h = overallmax - aalpha/2
abline(h = h, lty = 3, col = "brown")
abline(v = v, lty = 3, col = "brown")
lines(smth, ...)
if (labels) {
ciText = paste(as.character(100*conf[1]), "%", sep = "")
span = 0.025*abs(max(parmax)-min(parmax))
text(max(rl), h+span, ciText)
}
}
# Or Add ?
ind = smth$y > overallmax - aalpha/2
ci = range(smth$x[ind])
if (plottype[1] == "add") {
abline(v = ci[1], lty = 2, col = "orange")
abline(v = ci[2], lty = 2, col = "orange")
}
# Result:
ans = as.numeric(c(ci[1], v, ci[2]))
ans = data.frame(cbind(min = ans[1], v = ans[2], max = ans[3],
kBlocks = kBlocks), row.names = "GEV Return Level")
# Return Value:
ans
}
# ------------------------------------------------------------------------------
.gevrlevelLLH =
function(theta, tmp, pp, rli)
{ # A copy from evir
# Description:
# Computes log-likelihood function for gevrlevelPlot
# Arguments:
# FUNCTION:
# LLH:
mu = rli + (theta[2]*(1-(-log(1-pp))^(-theta[1])))/theta[1]
y = 1 + (theta[1]*(tmp-mu))/theta[2]
if ((theta[2] < 0) | (min(y) < 0)) {
ans = NA
} else {
term1 = length(tmp) * log(theta[2])
term2 = sum((1 + 1/theta[1]) * log(y))
term3 = sum(y^(-1/theta[1]))
ans = term1 + term2 + term3
}
# Return Value:
ans
}
################################################################################
fExtremes/R/GpdShow.R 0000644 0001762 0000144 00000003601 12323220004 014077 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
################################################################################
# METHODS: PRINT, PLOT, AND SUMMARY:
# show.fGPDFIT S4 Print Method for object of class "fGPDFIT"
################################################################################
setMethod("show", "fGPDFIT",
function(object)
{ # A function implemented by Diethelm Wuertz
# Description:
# Print Method for an object of class 'gpdFit'
# Arguments:
# object - an object of class fGPDFIT
# FUNCTION:
# Title:
cat("\nTitle:\n ", object@title, "\n")
# Function Call:
cat("\nCall:\n ")
cat(paste(deparse(object@call), sep = "\n",
collapse = "\n"), "\n", sep = "")
# Estimation Type:
cat("\nEstimation Method:\n ", object@method, "\n")
# Estimated Parameters:
cat("\nEstimated Parameters:\n")
print(object@fit$par.ests)
# Desription:
cat("\nDescription\n ", object@description, "\n\n")
# Return Value:
invisible(object)
})
# ------------------------------------------------------------------------------
################################################################################
fExtremes/R/GpdFit.R 0000644 0001762 0000144 00000023237 12323220004 013710 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
################################################################################
# FUNCTION: GPD SIMULATION:
# gpdSim Simulates a GPD distributed process
# FUNCTION: GPD PARAMETER ESTIMATION:
# 'fGPDFIT' S4 class representation
# gpdFit Fits Parameters of GPD distribution
# .gpdpwmFit Fits GPD with probability weighted moments
# .gpdmleFit Fits GPD with max log-likelihood approach
# .gpdLLH Computes GPD log-likelihood function
################################################################################
gpdSim <-
function(model = list(xi = 0.25, mu = 0, beta = 1), n = 1000, seed = NULL)
{ # A function implemented by Diethelm Wuertz
# Description:
# Generates random variates from a GPD distribution
# FUNCTION:
# Seed:
if (is.null(seed)) seed = NA else set.seed(seed)
# Simulate:
ans = rgpd(n = n, xi = model$xi, mu = model$mu, beta = model$beta)
ans = as.ts(ans)
# Control:
attr(ans, "control") =
data.frame(t(unlist(model)), seed = seed, row.names = "")
# Return Value:
ans
}
################################################################################
setClass("fGPDFIT",
representation(
call = "call",
method = "character",
parameter = "list",
data = "list",
fit = "list",
residuals = "numeric",
title = "character",
description = "character"
)
)
# ------------------------------------------------------------------------------
gpdFit <-
function(x, u = quantile(x, 0.95), type = c("mle", "pwm"),
information = c("observed", "expected"),
title = NULL, description = NULL, ...)
{
# A function implemented by Diethelm Wuertz
# Description:
# Fits a generalized Pareto model to excesses
# Arguments:
# Details:
# Returns an object of class "fGPDFIT" representing the fit of a
# generalized Pareto model to excesses over a high threshold
# Notes:
# This is a wrapper to EVIR's 'gpd' function.
# FUNCTION:
# Settings:
call = match.call()
type = match.arg(type)
information = match.arg(information)
# Check Type and Convert:
X = x
xClass = class(x)
if (xClass == "timeSeries") stopifnot(isUnivariate(x))
x = as.vector(x)
N = length(x)
# Compute Exceedances:
exceedances = x[x > u]
Names = as.character((1:N)[x > u])
exceedances = as.vector(exceedances)
names(exceedances) = Names
# Estimate Parameters:
if (type == "mle") {
fit = .gpdmleFit(x, u, information)
fit$llh = fit$fit$value
fit$convergence = fit$fit$convergence
} else if (type == "pwm") {
fit = .gpdpwmFit(x, u)
fit$llh = NA
fit$convergence = NA
}
fit$p.less.thresh = fit$prob = 1 - length(x[x > u]) / length(x)
fit$threshold = u
fit$data = x
# Compute Residuals:
xi = fit$par.ests["xi"]
beta = fit$par.ests["beta"]
residuals = log(1 + (xi * (as.vector(exceedances)-u))/beta)/xi
# Add title and description:
if (is.null(title)) title = "GPD Parameter Estimation"
if (is.null(description)) description = description()
# Compose Parameter List:
parameter = list(u = u, type = type)
if (information == "mle") parameter$information = information
# Return Value:
new("fGPDFIT",
call = call,
method = c("gpd", type),
parameter = parameter,
data = list(x = X, exceedances = exceedances),
fit = fit,
residuals = residuals,
title = title,
description = description)
}
# ------------------------------------------------------------------------------
.gpdmleFit <-
function (x, u, information = c("observed", "expected"), ...)
{
# A Copy from Evir
data = x
threshold = u
exceedances <- data[data > threshold]
excess <- exceedances - threshold
Nu <- length(excess)
xbar <- mean(excess)
s2 <- var(excess)
xi0 <- -0.5 * (((xbar * xbar)/s2) - 1)
beta0 <- 0.5 * xbar * (((xbar * xbar)/s2) + 1)
theta <- c(xi0, beta0)
negloglik <- function(theta, tmp)
{
xi <- theta[1]
beta <- theta[2]
cond1 <- beta <= 0
cond2 <- (xi <= 0) && (max(tmp) > (-beta/xi))
if (cond1 || cond2) {
f <- 1e+06
} else {
y <- logb(1 + (xi * tmp)/beta)
y <- y/xi
f <- length(tmp) * logb(beta) + (1 + xi) * sum(y)
}
f
}
fit <- optim(theta, negloglik, hessian = TRUE, ..., tmp = excess)
names(fit$par) = c("xi", "beta")
if (fit$convergence) warning("Optimization may not have been succeeded.")
par.ests <- fit$par
converged <- fit$convergence
nllh.final <- fit$value
information <- match.arg(information)
if (information == "observed")
varcov <- solve(fit$hessian)
if (information == "expected") {
one <- (1 + par.ests[1])^2/Nu
two <- (2 * (1 + par.ests[1]) * par.ests[2]^2)/Nu
cov <- -((1 + par.ests[1]) * par.ests[2])/Nu
varcov <- matrix(c(one, cov, cov, two), 2)
}
par.ses <- sqrt(diag(varcov))
names(par.ses) = c("xi", "beta")
list(par.ests = par.ests, par.ses = par.ses, fit = fit, varcov = varcov)
}
# ------------------------------------------------------------------------------
.gpdmleFitCheck =
function(x, u = quantile(x, 0.95),
information = c("observed", "expected"), ...)
{
# A function implemented by Diethelm Wuertz
# Description:
# Fits GPD with max log-likelihood approach
# FUNCTION:
x = as.vector(x)
excess = x[x > u] - u
theta = .gpdpwmFit(x = x, u = u)$par.ests
# Parameter Estimation:
fit = optim(theta, .gpdLLH, hessian = TRUE, excess = excess)
names(fit$par.ests) = c("xi", "beta")
# Error Estimates:
if (information[1] == "observed") {
varcov = solve(fit$hessian)
}
if (information[1] == "expected") {
Nu = length(excess)
one = (1 + fit$par[1])^2/Nu
two = (2 * (1 + fit$par[1]) * fit$par[2]^2)/Nu
cov = -((1 + fit$par[1]) * fit$par[2])/Nu
varcov = matrix(c(one, cov, cov, two), 2)
}
par.ses = sqrt(diag(varcov))
names(par.ses) = c("xi", "beta")
# Return Value:
list(par.ests = fit$par, par.ses = par.ses, fit = fit, varcov = varcov)
}
# ------------------------------------------------------------------------------
.gpdpwmFit <-
function (x, u)
{
# A Copy from Evir
data = x
threshold = u
data <- as.numeric(data)
n <- length(data)
exceedances <- data[data > threshold]
excess <- exceedances - threshold
Nu <- length(excess)
xbar <- mean(excess)
a0 <- xbar
gamma <- -0.35
delta <- 0
pvec <- ((1:Nu) + gamma)/(Nu + delta)
a1 <- mean(sort(excess) * (1 - pvec))
xi <- 2 - a0/(a0 - 2 * a1)
beta <- (2 * a0 * a1)/(a0 - 2 * a1)
par.ests <- c(xi, beta)
names(par.ests) = c("xi", "beta")
denom <- Nu * (1 - 2 * xi) * (3 - 2 * xi)
if (xi > 0.5) {
denom <- NA
warning("Asymptotic Standard Errors not available for PWM when xi>0.5.")
}
one <- (1 - xi) * (1 - xi + 2 * xi^2) * (2 - xi)^2
two <- (7 - 18 * xi + 11 * xi^2 - 2 * xi^3) * beta^2
cov <- beta * (2 - xi) * (2 - 6 * xi + 7 * xi^2 - 2 * xi^3)
varcov <- matrix(c(one, cov, cov, two), 2)/denom
information <- "expected"
converged <- NA
nllh.final <- NA
par.ses <- sqrt(diag(varcov))
names(par.ses) = c("xi", "beta")
list(par.ests = par.ests, par.ses = par.ses, fit = NA, varcov = NA)
}
# ------------------------------------------------------------------------------
.gpdpwmFitCheck <-
function(x, u = quantile(x, 0.95))
{
# A function implemented by Diethelm Wuertz
# Description:
# Fits GPD with probability weighted moments
# FUNCTION:
# PWM Fit:
x = as.vector(x)
excess = x[x > u] - u
Nu = length(excess)
a0 = mean(excess)
pvec = ((1:Nu) - 0.35)/Nu
a1 = mean(sort(excess) * (1 - pvec))
xi = 2 - a0/(a0 - 2 * a1)
beta = (2 * a0 * a1)/(a0 - 2 * a1)
par.ests = c(xi = xi, beta = beta)
names(par.ests) = c("xi", "beta")
par.ses = c(xi = NA, beta = NA)
names(par.ses) = c("xi", "beta")
# Return Value:
list(par.ests = par.ests, par.ses = par.ses, fit = NA, varcov = NA)
}
################################################################################
.gpdLLH =
function(theta, excess)
{
# A function implemented by Diethelm Wuertz
# Description:
# Computes GPD log-likelihood function
# FUNCTION:
# LLH:
xi = theta[1]
beta = theta[2]
cond = (beta <= 0) || ((xi <= 0) && (max(excess) > (-beta/xi)))
if (cond) {
func = NA
} else {
y = log(1+(xi*excess)/beta) / xi
func = length(excess) * log(beta) + (1+xi)*sum(y)
}
# Return Value:
func
}
################################################################################
fExtremes/R/metrics.R 0000644 0001762 0000144 00000007114 12323220004 014175 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
###############################################################################
# FUNCTION: METRICS:
# .riskMetricsPlot
# .garch11MetricsPlot
###############################################################################
.emaTA <-
function (x, lambda = 0.1, startup = 0)
{
# Builtin from Package fTrading
TS <- is.timeSeries(x)
y <- as.vector(x)
if (lambda >= 1) lambda = 2/(lambda + 1)
if (startup == 0) startup = floor(2/lambda)
if (lambda == 0) ema = rep(mean(x), length(x))
if (lambda > 0) {
ylam = y * lambda
ylam[1] = mean(y[1:startup])
ema <- filter(ylam, filter = (1 - lambda), method = "rec") }
ema <- as.vector(ema)
if (TS) {
ema <- matrix(ema)
colnames(ema) <- "EMA"
rownames(ema) <- rownames(x)
series(x) <- ema
} else {
x <- ema
}
x
}
# -----------------------------------------------------------------------------
.riskMetricsPlot <-
function(x, labels = TRUE, lambda = 0.94, ...)
{
# A function implemented by Diethelm Wuertz
# Description:
# Arguments:
# x - an univariate timesSeries object
# FUNCTION:
# Check:
stopifnot(isUnivariate(x))
# Units:
units <- colnames(x)
# Filter:
riskMetrics = sqrt(.emaTA(x^2, 1-lambda))
# Plot:
if (labels) {
plot(riskMetrics, type = "l", col = "steelblue",
main = paste(units, "RiskMetrics[TM]"),
xlab = "Time", ylab = "Volatility", ...)
abline(h = sd(riskMetrics), col = "grey")
SD = paste("StDev =", round(sd(x), 3))
mtext(text = SD, side = 4, adj = 0, col = "grey", cex = 0.7)
grid()
} else {
plot(riskMetrics, main = "", xlab = "", ylab = "", ...)
}
# Return Value:
invisible(riskMetrics)
}
# ------------------------------------------------------------------------------
.garch11MetricsPlot <-
function(x, labels = TRUE, ...)
{
# A function implemented by Diethelm Wuertz
# Description:
# Arguments:
# x - an univariate timesSeries object
# FUNCTION:
# Check:
stopifnot(isUnivariate(x))
# Units:
units = colnames(x)
# Filter:
fit = garchFit(~garch(1,1), x, trace = FALSE)
garch11 = volatility(fit)
attr(garch11, "fit") <- fit
# Plot:
if (labels) {
plot(garch11, type = "l", col = "steelblue",
main = paste(units, "GARCH11 Volatility"),
xlab = "Time", ylab = "Volatility", ...)
abline(h = sd(x), col = "grey")
SD = paste("StDev =", round(sd(x), 3))
mtext(text = SD, side = 4, adj = 0, col = "grey", cex = 0.7)
grid()
} else {
plot(garch11, main = "", xlab = "", ylab = "", ...)
}
# Return Value:
invisible(garch11)
}
################################################################################
fExtremes/R/GpdPlot.R 0000644 0001762 0000144 00000015341 12323220004 014101 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
################################################################################
# METHODS: PRINT, PLOT, AND SUMMARY:
# plot.fGPDFIT S3 Plot Method for object of class "fGPDFIT"
# .gpd1Plot Empirical Distribution Plot
# .gpd2Plot Tail of Underlying Distribution
# .gpd3Plot Scatterplot of GPD Residuals
# .gpd4Plot Quantile-Quantile Plot of GPD Residuals
################################################################################
plot.fGPDFIT =
function(x, which = "ask", ...)
{ # A function implemented by Diethelm Wuertz
# Description:
# Plot method for objects of class 'fGPDFIT'
# Example:
# x = as.timeSeries(danishClaims); plot(gpdFit(x, 4), "ask")
# FUNCTION:
# Plot:
interactivePlot(
x = x,
choices = c(
"Excess Distribution",
"Tail of Underlying Distribution",
"Scatterplot of Residuals",
"QQ-Plot of Residuals"),
plotFUN = c(
".gpd1Plot",
".gpd2Plot",
".gpd3Plot",
".gpd4Plot"),
which = which)
# Return Value:
invisible(x)
}
# ------------------------------------------------------------------------------
.gpd1Plot =
function(x, labels = TRUE, ...)
{ # A function implemented by Diethelm Wuertz
# Description:
# Empirical Distribution Plot
# Arguments:
# x - an object of class fGPDFIT
# labels - a logical flag. Should labels be printed?
# FUNCTION:
# Data:
extend = 1.5
u = x@parameter$u
data = as.vector(x@data$exceedances)
sorted = sort(data)
shape = xi = x@fit$par.ests["xi"]
scale = beta = x@fit$par.est["beta"]
ypoints = ppoints(sorted)
U = max(sorted)*extend
z = qgpd(seq(0, 1, length = 1000), xi, u, beta)
z = pmax(pmin(z, U), u)
y = pgpd(z, xi, u, beta)
# Labels:
if (labels) {
xlab = "Fu(x-u)"
ylab = "x [log Scale]"
main = "Excess Distribution"
} else {
xlab = ylab = main = ""
}
# Plot:
plot(x = sorted, y = ypoints,
xlim = range(u, U), ylim = range(ypoints, y, na.rm = TRUE),
main = main, xlab = xlab, ylab = ylab,
log = "x", axes = TRUE,
col = "steelblue", pch = 19, ...)
lines(z[y >= 0], y[y >= 0], col = "brown")
# Addon:
if (labels) {
u = signif (x@parameter$u, 3)
text = paste("u =", u)
mtext(text, side = 4, adj = 0, cex = 0.7)
grid()
}
# Return Value:
invisible()
}
# ------------------------------------------------------------------------------
.gpd2Plot =
function(x, labels = TRUE, ...)
{ # A function implemented by Diethelm Wuertz
# Description:
# Tail of Underlying Distribution
# Arguments:
# x - an object of class fGPDFIT
# labels - a logical flag. Should labels be printed?
# FUNCTION:
# Settings:
extend = 1.5
u = x@parameter$u
data = as.vector(x@data$x)
sorted = sort(data[data > u])
prob = x@fit$prob
shape = xi = x@fit$par.ests["xi"]
beta = x@fit$par.ests["beta"]
scale = beta * (1-prob)^xi
location = u - (scale*((1 - prob)^(-xi)-1))/xi
# Labels:
if (labels) {
xlab = "x [log scale]"
ylab = "1-F(x) [log scale]"
main = "Tail of Underlying Distribution"
} else {
xlab = ylab = main = ""
}
# Plot:
U = max(data) * extend
ypoints = ppoints(sorted)
ypoints = (1 - prob) * (1 - ypoints)
z = qgpd(seq(0, 1, length = 1000), xi, u, beta)
z = pmax(pmin(z, U), u)
y = pgpd(z, xi, u, beta)
y = (1 - prob) * (1 - y)
plot(x = sorted, y = ypoints,
xlim = range(u, U), ylim = range(ypoints, y[y>0], na.rm = TRUE),
main = main, xlab = xlab, ylab = ylab,
log = "xy", axes = TRUE,
col = "steelblue", pch = 19, ...)
# Line:
lines(z[y >= 0], y[y >= 0], col = "brown")
if (labels) grid()
# Return Value:
invisible(list(x = sorted, y = ypoints))
}
# ------------------------------------------------------------------------------
.gpd3Plot =
function(x, labels = TRUE, ...)
{ # A function implemented by Diethelm Wuertz
# Description:
# Scatterplot of GPD Residuals
# Arguments:
# x - an object of class fGPDFIT
# labels - a logical flag. Should labels be printed?
# FUNCTION:
# Residuals:
residuals = x@residuals
# Labels:
if (labels) {
ylab = "Residuals"
xlab = "Ordering"
main = "Scatterplot of Residuals"
} else {
xlab = ylab = main = ""
}
# Plot:
plot(residuals,
main = main, ylab = ylab, xlab = xlab,
col = "steelblue", pch = 19, ...)
lines(lowess(1:length(residuals), residuals), col = "brown")
if (labels) grid()
# Return Value:
invisible(list(x = 1:(length(residuals)), y = residuals))
}
# ------------------------------------------------------------------------------
.gpd4Plot =
function(x, labels = TRUE, ...)
{ # A function implemented by Diethelm Wuertz
# Description:
# Quantile-Quantile Plot of GPD Residuals
# Arguments:
# x - an object of class fGPDFIT
# labels - a logical flag. Should labels be printed?
# FUNCTION:
# Data:
data = x@residuals
sorted = sort(data)
# Labels:
if (labels) {
xlab = "Ordered Data"
ylab = "Exponential Quantiles"
main = "QQ-Plot of Residuals"
} else {
xlab = ylab = main = ""
}
# Plot:
y = qexp(ppoints(data))
plot(x = sorted, y = y,
main = main, xlab = xlab, ylab = ylab,
col = "steelblue", pch = 19, ...)
abline(lsfit(sorted, y), col = "brown")
if (labels) grid()
# Return Value:
invisible(list(x = sorted, y = y))
}
################################################################################
fExtremes/R/GpdRisk.R 0000644 0001762 0000144 00000077075 12323220004 014107 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
################################################################################
# FUNCTION: ADDITIONAL PLOTS:
# gpdTailPlot Plots Tail Estimate From GPD Model
# gpdQPlot Adds Quantile Estimates to gpdTailPlot()
# gpdSfallPlot Adds Expected Shortfall Estimates to a GPD Plot
# gpdQuantPlot Plots of GPD Tail Estimate of a High Quantile
# gpdShapePlot Plots for GPD Shape Parameter
# gpdRiskMeasures Calculates Quantiles and Expected Shortfalls
# FUNCTION: NEW STYLE FUNCTIONS:
# tailPlot Plots GPD VaR and Expected Shortfall risk
# tailSlider Interactive view to find proper threshold value
# tailRisk Calculates VaR and Expected Shortfall risks
################################################################################
gpdTailPlot =
function(object, plottype = c("xy", "x", "y", ""), doplot = TRUE, extend = 1.5,
labels = TRUE, ...)
{ # A function implemented by Diethelm Wuertz
# Description:
# Plots tail estimate from GPD model
# Arguments:
# object - an object of class 'fGPDFIT'
# Note:
# Code partly copied from R package evir
# Example:
# object = gpdFit(as.timeSeries(data(danishClaims)), u = 10)
# gpdTailPlot(object)
# FUNCTION:
# Settings:
threshold = object@fit$threshold
x = as.vector(object@data$x)
data = x[x > threshold]
xi = as.numeric(object@fit$par.ests["xi"])
beta = as.numeric(object@fit$par.ests["beta"])
# Points:
plotmin = threshold
plotmax = max(data) * max(1, extend)
z = qgpd(seq(from = 0, to = 1, length = 501), xi, threshold, beta)
z = pmax(pmin(z, plotmax), plotmin)
invProb = 1 - length(data)/length(x)
ypoints = invProb*(1-ppoints(sort(data)))
y = invProb*(1-pgpd(z, xi, threshold, beta))
# Parameters:
shape = xi
scale = beta * invProb^xi
location = threshold - (scale*(invProb^(- xi)-1))/xi
# Show Plot:
if (doplot) {
# Plot
plot(sort(data), ypoints, xlim = range(plotmin, plotmax),
ylim = range(ypoints, y, na.rm = TRUE), col = "steelblue",
pch = 19, xlab = "", ylab = "", log = plottype[1],
axes = TRUE, ...)
lines(z[y >= 0], y[y >= 0])
grid()
# Labels:
alog = plottype[1]
if (labels) {
xLab = "x"
if (alog == "x" || alog == "xy" || alog == "yx")
xLab = paste(xLab, "(on log scale)")
yLab = "1-F(x)"
if (alog == "xy" || alog == "yx" || alog == "y")
yLab = paste(yLab, "(on log scale)")
title(xlab = xLab, ylab = yLab)
title(main = "Tail Estimate Plot")
}
}
# Object:
object@fit$n = length(x)
object@fit$data = object@data$exceedances
object@fit$n.exceed = length(object@fit$data)
if(object@method[2] == "mle") {
object@fit$method = "ml"
} else {
object@fit$method = ""
}
# Last Fit:
lastfit = object@fit
class(lastfit) = "gpd"
# Result:
ans = list(lastfit = lastfit, type = "tail", dist = "gpd",
plotmin = plotmin, plotmax = plotmax, alog = plottype[1],
location = location, shape = shape, scale = scale)
# Return Value:
invisible(ans)
}
# ------------------------------------------------------------------------------
gpdQPlot =
function(x, p = 0.99, ci = 0.95, type = c("likelihood", "wald"), like.num = 50)
{ # A function implemented by Diethelm Wuertz
# Description:
# Adds Expected Shortfall Estimates to a GPD Plot
# Arguments:
# x - an object of class 'gpdFit'
# pp - the probability level
# Example:
# par(mfrow=c(1,1)); x=as.timeSeries(data(danishClaims))
# tp = gpdTailPlot(gpdFit(x, 10)); gpdQPlot(tp)
# FUNCTION:
# Check Argument:
par(new = TRUE)
ci.p = ci
pp = p
ci.type = type[1]
# A copy from evir:
if (x$dist != "gpd")
stop("This function is used only with GPD curves")
if (length(pp) > 1)
stop("One probability at a time please")
threshold = x$lastfit$threshold
par.ests = x$lastfit$par.ests
xihat = par.ests["xi"]
betahat = par.ests["beta"]
varcov = x$lastfit$varcov
p.less.thresh = x$lastfit$p.less.thresh
lambda = 1
if (x$type == "tail") lambda = 1/(1 - p.less.thresh)
a = lambda * (1 - pp)
gfunc = function(a, xihat) (a^(-xihat) - 1)/xihat
gfunc.deriv = function(a, xihat) (-(a^(-xihat) - 1)/xihat -
a^(-xihat) * logb(a))/xihat
q = q.keep = threshold + betahat * gfunc(a, xihat)
# if (q < x$plotmax) abline(v = q, lty = 2)
out = as.numeric(q)
if (ci.type == "wald") {
if (class(x$lastfit) != "gpd")
stop("Wald method requires model be fitted with gpd (not pot)")
scaling = threshold
betahat = betahat/scaling
xivar = varcov[1, 1]
betavar = varcov[2, 2]/(scaling^2)
covar = varcov[1, 2]/scaling
term1 = betavar * (gfunc(a, xihat))^2
term2 = xivar * (betahat^2) * (gfunc.deriv(a, xihat))^2
term3 = 2 * covar * betavar * gfunc(a, xihat) * gfunc.deriv(a, xihat)
qvar = term1 + term2 + term3
if (qvar < 0)
stop("Negative estimate of quantile variance")
qse = scaling * sqrt(qvar)
qq = qnorm(1 - (1 - ci.p)/2)
upper = q + qse * qq
lower = q - qse * qq
abline(v = upper, lty = 2, col = 2)
abline(v = lower, lty = 2, col = 2)
out = as.numeric(c(lower, q, qse, upper))
names(out) = c("Lower CI", "Estimate", "Std.Err", "Upper CI")
}
if (ci.type == "likelihood") {
parloglik =
function(theta, tmp, a, threshold, xpi) {
beta = (theta * (xpi - threshold))/(a^(-theta) -
1)
if ((beta <= 0) || ((theta <= 0) && (max(tmp) > (-beta/theta))))
f = 1e+06
else {
y = logb(1 + (theta * tmp)/beta)
y = y/theta
f = length(tmp) * logb(beta) + (1 + theta) * sum(y)
}
if(is.na(f)) f = 1e+6
f
}
theta = xihat
parmax = NULL
xp = exp(seq(from = logb(threshold), to = logb(x$plotmax),
length = like.num))
excess = as.numeric(x$lastfit$data - threshold)
for (i in 1:length(xp)) {
fit2 = optim(theta, parloglik, method = "BFGS",
hessian = FALSE, tmp = excess, a = a, threshold = threshold,
xpi = xp[i])
parmax = rbind(parmax, fit2$value)
}
parmax = -parmax
overallmax = -parloglik(xihat, excess, a, threshold, q)
crit = overallmax - qchisq(0.999, 1)/2
cond = parmax > crit
xp = xp[cond]
parmax = parmax[cond]
par(new = TRUE)
dolog = ""
if (x$alog == "xy" || x$alog == "x") dolog = "x"
plot(xp, parmax, type = "n", xlab = "", ylab = "", axes = FALSE,
xlim = range(x$plotmin, x$plotmax),
ylim = range(overallmax, crit), log = dolog)
axis(4, at = overallmax - qchisq(c(0.95, 0.99), 1)/2,
labels = c("95", "99"), tick = TRUE)
aalpha = qchisq(ci.p, 1)
abline(h = overallmax - aalpha/2, lty = 2, col = 2)
cond = !is.na(xp) & !is.na(parmax)
smth = spline(xp[cond], parmax[cond], n = 200)
lines(smth, lty = 2, col = 2)
ci = smth$x[smth$y > overallmax - aalpha/2]
abline(v = q.keep, lty = 2)
out = c(min(ci), q, max(ci))
names(out) = c("Lower CI", "Estimate", "Upper CI")
}
# Return Value:
out
}
# ------------------------------------------------------------------------------
gpdSfallPlot =
function(x, p = 0.99, ci = 0.95, like.num = 50)
{ # A function implemented by Diethelm Wuertz
# Description:
# Adds Expected Shortfall Estimates to a GPD Plot
# Arguments:
# x - an object of class 'gpdFit'
# p - the desired probability for expected shortfall
# estimate (e.g. 0.99 for the 99th percentile)
# ci - probability for confidence interval (must be
# less than 0.999)
# like.num - number of times to evaluate profile likelihood
# FUNCTION:
# Settings:
par(new = TRUE)
pp = p
ci.p = ci
object = x
# A copy from evir:
if(x$dist != "gpd")
stop("This function is used only with GPD curves")
if(length(pp) > 1)
stop("One probability at a time please")
threshold = x$lastfit$threshold
par.ests = x$lastfit$par.ests
xihat = par.ests["xi"]
betahat = par.ests["beta"]
varcov = x$lastfit$varcov
p.less.thresh = x$lastfit$p.less.thresh
lambda = 1
# if (x$type == "tail")
lambda = 1/(1 - p.less.thresh)
a = lambda * (1 - pp)
gfunc = function(a, xihat) (a^( - xihat) - 1) / xihat
q = threshold + betahat * gfunc(a, xihat)
s = s.keep = q + (betahat + xihat * (q - threshold))/(1 - xihat)
# if (s < x$plotmax) abline(v = s, lty = 2)
out = as.numeric(s)
parloglik = function(theta, tmp, a, threshold, xpi)
{
beta = ((1 - theta) * (xpi - threshold)) /
(((a^( - theta) - 1)/theta) + 1)
if((beta <= 0) || ((theta <= 0) && (max(tmp) > ( - beta/theta)))) {
f = 1e+06
} else {
y = log(1 + (theta * tmp)/beta)
y = y/theta
f = length(tmp) * log(beta) + (1 + theta) * sum(y)
}
f
}
theta = xihat
parmax = NULL
xp = exp(seq(from = log(threshold), to = log(x$plotmax),
length = like.num))
excess = as.numeric(x$lastfit$data - threshold)
for (i in 1:length(xp)) {
fit2 = optim(theta, parloglik, method = "BFGS", hessian = FALSE,
tmp = excess, a = a, threshold = threshold, xpi = xp[i])
parmax = rbind(parmax, fit2$value)
}
parmax = - parmax
overallmax = - parloglik(xihat, excess, a, threshold, s)
crit = overallmax - qchisq(0.999, 1)/2
cond = parmax > crit
xp = xp[cond]
parmax = parmax[cond]
dolog = ""
if(x$alog == "xy" || x$alog == "x") dolog = "x"
par(new = TRUE)
plot(xp, parmax, type = "n", xlab = "", ylab = "", axes = FALSE,
xlim = range(x$plotmin, x$plotmax),
ylim = range(overallmax, crit), log = dolog)
axis(4, at = overallmax - qchisq(c(0.95, 0.99), 1)/2,
labels = c("95", "99"), tick = TRUE)
aalpha = qchisq(ci.p, 1)
abline(h = overallmax - aalpha/2, lty = 2, col = 2)
cond = !is.na(xp) & !is.na(parmax)
smth = spline(xp[cond], parmax[cond], n = 200)
lines(smth, lty = 2, col = 2)
ci = smth$x[smth$y > overallmax - aalpha/2]
abline(v = s.keep, lty = 2)
out = c(min(ci), s, max(ci))
names(out) = c("Lower CI", "Estimate", "Upper CI")
# Return Value:
out
}
# ------------------------------------------------------------------------------
gpdQuantPlot =
function(x, p = 0.99, ci = 0.95, models = 30, start = 15, end = 500,
doplot = TRUE, plottype = c("normal", "reverse"), labels = TRUE, ...)
{ # A function implemented by Diethelm Wuertz
# Description:
# Plots of GPD Tail Estimate of a High Quantile
# Example:
# Danish = as.timeSeries(data(danishClaims))
# gpdquantPlot(Danish)
# Note:
# Code partly copied from R package evir
# FUNCTION:
# Settings:
data = as.vector(x)
n = length(data)
exceed = trunc(seq(from = min(end, n), to = start, length = models))
p = max(p, 1 - min(exceed)/n)
start = max(start, ceiling(length(data) * (1 - p)))
# Internal Function:
.quantFit = function(nex, data) {
prob = 1 - nex/length(as.vector(data))
fit = gpdFit(data, u = quantile(data, prob))@fit
c(fit$threshold, fit$par.ests, fit$par.ses,
as.vector(fit$varcov)[c(1,4,2)])
}
# Compute:
mat = apply(as.matrix(exceed), 1, .quantFit, data = data)
thresh = mat[1, ]
xihat = mat[2, ]
betahat = mat[3, ]
lambda = length(data)/exceed
a = lambda * (1 - p)
gfunc = function(a, xihat) (a^( - xihat) - 1) / xihat
qest = thresh + betahat * gfunc(a, xihat)
l = u = qest
yrange = range(qest)
# Add Confidence Intervals:
if (ci) {
qq = qnorm(1 - (1 - ci)/2)
xivar = mat[4, ]
betavar = mat[5, ]
covar = mat[6, ]
scaling = thresh
betahat = betahat/scaling
betavar = betavar/(scaling^2)
covar = covar/scaling
gfunc.deriv = function(a, xihat)
(-(a^(-xihat)-1)/xihat-a^(-xihat)*log(a))/xihat
term1 = betavar * (gfunc(a, xihat))^2
term2 = xivar * (betahat^2) * (gfunc.deriv(a, xihat))^2
term3 = 2 * covar * betavar * gfunc(a, xihat) * gfunc.deriv(a, xihat)
qvar = term1 + term2 + term3
if (min(qvar) < 0)
stop(paste(
"Conditioning problems lead to estimated negative",
"quantile variance", sep = "\n"))
qse = scaling * sqrt(qvar)
u = qest + qse * qq
l = qest - qse * qq
yrange = range(qest, u, l)
}
# Result matrix:
mat = rbind(thresh, qest, exceed, l, u)
rownames(mat) = c("threshold", "qest", "exceedances", "lower", "upper")
colnames(mat) = paste(1:dim(mat)[2])
# Plot:
if (doplot) {
if (plottype[1] == "normal") {
index = exceed
} else if (plottype[1] == "reverse") {
index = -exceed
}
plot(index, qest, ylim = yrange, type = "l", xlab = "", ylab = "",
axes = FALSE)
axis(1, at = index, labels = paste(exceed))
axis(2)
axis(3, at = index, labels = paste(format(signif (thresh, 3))))
box()
if (ci) {
lines(index, l, lty = 2, col = "steelblue")
lines(index, u, lty = 2, col = "steelblue")
}
if (labels) {
title(xlab = "Exceedances",
ylab = paste("Quantiles:", substitute(x)))
mtext("Threshold", side = 3, line = 3)
}
p = round(p, 3)
ci = round(ci, 3)
text = paste("p =", p, "| ci =", ci, "| start =",
start, "| end =", end )
mtext(text, side = 4, adj = 0, cex = 0.7)
}
# Add Attributes:
mat = t(mat)
attr(mat, "control") = data.frame(cbind(p = p, ci = ci,
start = start, end = end), row.names = "")
# Return Value:
invisible(mat)
}
# ------------------------------------------------------------------------------
gpdShapePlot =
function(x, ci = 0.95, models = 30, start = 15, end = 500,
doplot = TRUE, plottype = c("normal", "reverse"), labels = TRUE, ...)
{ # A function implemented by Diethelm Wuertz
# Description:
# Plots for GPD Shape Parameter
# Example:
# FUNCTION:
# Settings:
data = as.vector(x)
X = trunc(seq(from = min(end, length(data)), to = start, length = models))
# Internal Function:
.shapeFit = function(nex, data) {
prob = 1 - nex/length(as.vector(data))
fit = gpdFit(data, u = quantile(data, prob),
information = "expected")@fit
c(fit$threshold, fit$par.ests[1], fit$par.ses[1])
}
# Result Matrix:
mat = apply(as.matrix(X), 1, .shapeFit, data = data)
mat = rbind(mat, X)
rownames(mat) = c("threshold", "shape", "se", "exceedances")
colnames(mat) = paste(1:dim(mat)[2])
# Plot:
if (doplot) {
thresh = mat[1, ]
y = mat[2, ]
yrange = range(y)
if (plottype[1] == "normal") {
index = X
} else if (plottype == "reverse") {
index = -X
}
if (ci) {
sd = mat[3, ] * qnorm(1 - (1 - ci)/2)
yrange = range(y, y + sd, y - sd)
}
plot(index, y, ylim = yrange, type = "l", xlab = "", ylab = "",
axes = FALSE)
axis(1, at = index, labels = paste(X))
axis(2)
axis(3, at = index, labels = paste(format(signif(thresh, 3))))
box()
grid()
if (ci) {
sd = mat[3, ] * qnorm(1 - (1 - ci)/2)
yrange = range(y, y + sd, y - sd)
lines(index, y + sd, lty = 2, col = "steelblue")
lines(index, y - sd, lty = 2, col = "steelblue")
}
if (labels) {
title(xlab = "Exceedances",
ylab = paste("Shape:", substitute(x)))
mtext("Threshold", side = 3, line = 3)
}
text = paste("ci =", ci, "| start =", start, "| end =", end )
mtext(text, side = 4, adj = 0, cex = 0.7)
}
# Add Attributes:
attr(mat, "control") = data.frame(cbind(ci = ci,
start = start, end = end), row.names = "")
mat = t(mat)
# Return Value:
invisible(mat)
}
# ------------------------------------------------------------------------------
gpdRiskMeasures =
function(object, prob = c(0.99, 0.995, 0.999, 0.9995, 0.9999))
{ # A function implemented by Diethelm Wuertz
# Description:
# Calculates Quantiles and Expected Shortfalls
# Arguments:
# x - an object of class 'gpdFit'
# prob - a numeric value or vector of probability levels
# FUNCTION:
# Settings:
u = object@parameter$u
par.ests = object@fit$par.ests
xi = par.ests["xi"]
beta = par.ests["beta"]
lambda = 1/(1 - object@fit$prob)
# Quantile Risk:
q = u + (beta * ((lambda * (1 - prob))^( - xi) - 1))/xi
# Shortfall Risk:
es = (q * (1 + (beta - xi * u)/q)) / (1 - xi)
# Risk Matrix:
ans = data.frame(p = prob, quantile = q, shortfall = es)
# Return Value:
ans
}
################################################################################
tailPlot <-
function(object, p = 0.99, ci = 0.95,
nLLH = 25, extend = 1.5,
grid = TRUE, labels = TRUE, ...)
{ # A function implemented by Diethelm Wuertz
# Description:
# Plots GPD VaR and Expected Shortfall risk
# Arguments:
# object - an object of class 'fGPDFIT'
# Note:
# Code partly copied from R package evir
# Example:
# object = gpdFit(as.timeSeries(data(danishClaims)), u = 10)
# gpdTailPlot(object)
# FUNCTION:
# Settings:
ci.p = p
pp = p
like.num = nLLH
threshold = object@fit$threshold
x = as.vector(object@data$x)
data = x[x > threshold]
xi = as.numeric(object@fit$par.ests["xi"])
beta = as.numeric(object@fit$par.ests["beta"])
# Points:
plotmin = threshold
plotmax = max(data) * max(1, extend)
z = qgpd(seq(from = 0, to = 1, length = 501), xi, threshold, beta)
z = pmax(pmin(z, plotmax), plotmin)
invProb = 1 - length(data)/length(x)
ypoints = invProb*(1-ppoints(sort(data)))
y = invProb*(1-pgpd(z, xi, threshold, beta))
# Parameters:
shape = xi
scale = beta * invProb^xi
location = threshold - (scale*(invProb^(- xi)-1))/xi
# Show Plot:
xlim = range(plotmin, plotmax)
ylim = range(ypoints, y[y>0], na.rm = TRUE)
plot(sort(data), ypoints, xlim = xlim, ylim = ylim, col = "steelblue",
pch = 19, xlab = "", ylab = "", log = "xy", axes = TRUE, ...)
lines(z[y >= 0], y[y >= 0])
if (grid) grid()
# Labels:
alog = "xy"
if (labels) {
xLab = "x"
if (alog == "x" || alog == "xy" || alog == "yx")
xLab = paste(xLab, "(on log scale)")
yLab = "1-F(x)"
if (alog == "xy" || alog == "yx" || alog == "y")
yLab = paste(yLab, "(on log scale)")
title(xlab = xLab, ylab = yLab)
title(main = "Tail Estimate Plot")
}
# Object:
object@fit$n = length(x)
object@fit$data = object@data$exceedances
object@fit$n.exceed = length(object@fit$data)
# Tail Plot:
lastfit = object@fit
x = list(lastfit = lastfit, type = "tail", dist = "gpd",
plotmin = plotmin, plotmax = plotmax, alog = "xy",
location = location, shape = shape, scale = scale)
threshold = lastfit$threshold
par.ests = lastfit$par.ests
xihat = par.ests["xi"]
betahat = par.ests["beta"]
varcov = lastfit$varcov
p.less.thresh = lastfit$p.less.thresh
par(new = TRUE)
# GPD Quantiles:
a = 1/(1 - p.less.thresh) * (1 - pp)
gfunc = function(a, xihat) (a^(-xihat) - 1)/xihat
gfunc.deriv = function(a, xihat)
(-(a^(-xihat)-1)/xihat - a^(-xihat)*logb(a))/xihat
q = q.keep = threshold + betahat * gfunc(a, xihat)
# if (q < x$plotmax) abline(v = q, lty = 2)
out1 = as.numeric(q)
# Log Likelihood:
parloglik = function(theta, tmp, a, threshold, xpi) {
beta = (theta * (xpi - threshold))/(a^(-theta) -
1)
if ((beta <= 0) || ((theta <= 0) && (max(tmp) > (-beta/theta))))
f = 1e+06
else {
y = logb(1 + (theta * tmp)/beta)
y = y/theta
f = length(tmp) * logb(beta) + (1 + theta) * sum(y)
}
if(is.na(f)) f = 1e+6
f
}
# x Value:
theta = xihat
parmax = NULL
xp = exp(seq(from = logb(threshold), to = logb(x$plotmax),
length = like.num))
# y Value:
excess = as.numeric(x$lastfit$data - threshold)
for (i in 1:length(xp)) {
fit2 = optim(theta, parloglik, method = "BFGS",
hessian = FALSE, tmp = excess, a = a, threshold = threshold,
xpi = xp[i])
parmax = rbind(parmax, fit2$value)
}
parmax = -parmax
overallmax = -parloglik(xihat, excess, a, threshold, q)
crit = overallmax - qchisq(0.999, 1)/2
cond = parmax > crit
xp = xp[cond]
parmax = parmax[cond]
# Plot:
par(new = TRUE)
plot(xp, parmax, type = "n", xlab = "", ylab = "", axes = FALSE,
xlim = range(x$plotmin, x$plotmax),
ylim = range(overallmax, crit), log = "x")
axis(4, at = overallmax - qchisq(c(0.95, 0.99), 1)/2,
labels = c("95", "99"), tick = TRUE)
aalpha = qchisq(ci.p, 1)
abline(h = overallmax - aalpha/2, lty = 2, col = 2)
cond = !is.na(xp) & !is.na(parmax)
smth = spline(xp[cond], parmax[cond], n = 200)
lines(smth, lty = 2, col = 2)
ci = smth$x[smth$y > overallmax - aalpha/2]
abline(v = q.keep, lty = 2)
# Result:
out1 = c(min(ci), q, max(ci))
names(out1) = c("Lower CI", "Estimate", "Upper CI")
# GPD Shortfall:
a = 1/(1 - p.less.thresh) * (1 - pp)
gfunc = function(a, xihat) (a^( - xihat) - 1) / xihat
q = threshold + betahat * gfunc(a, xihat)
s = s.keep = q + (betahat + xihat * (q - threshold))/(1 - xihat)
out = as.numeric(s)
# Log Likelihood:
parloglik = function(theta, tmp, a, threshold, xpi)
{
beta = ((1-theta)*(xpi-threshold)) / (((a^(-theta)-1)/theta)+1)
if((beta <= 0) || ((theta <= 0) && (max(tmp) > ( - beta/theta)))) {
f = 1e+06
} else {
y = log(1 + (theta * tmp)/beta)
y = y/theta
f = length(tmp) * log(beta) + (1 + theta) * sum(y)
}
f
}
# x Values:
theta = xihat
parmax = NULL
xp = exp(seq(from = log(threshold), to = log(x$plotmax),
length = like.num))
excess = as.numeric(x$lastfit$data - threshold)
# y Values:
for (i in 1:length(xp)) {
fit2 = optim(theta, parloglik, method = "BFGS", hessian = FALSE,
tmp = excess, a = a, threshold = threshold, xpi = xp[i])
parmax = rbind(parmax, fit2$value)
}
parmax = -parmax
overallmax = -parloglik(xihat, excess, a, threshold, s)
crit = overallmax - qchisq(0.999, 1)/2
cond = parmax > crit
xp = xp[cond]
parmax = parmax[cond]
# Plot:
par(new = TRUE)
plot(xp, parmax, type = "n", xlab = "", ylab = "", axes = FALSE,
xlim = range(x$plotmin, x$plotmax),
ylim = range(overallmax, crit), log = "x")
axis(4, at = overallmax - qchisq(c(0.95, 0.99), 1)/2,
labels = c("95", "99"), tick = TRUE)
aalpha = qchisq(ci.p, 1)
abline(h = overallmax - aalpha/2, lty = 2, col = 2)
cond = !is.na(xp) & !is.na(parmax)
smth = spline(xp[cond], parmax[cond], n = 200)
lines(smth, lty = 2, col = 2)
ci = smth$x[smth$y > overallmax - aalpha/2]
abline(v = s.keep, lty = 2)
# Result:
out2 = c(min(ci), s, max(ci))
names(out2) = c("Lower CI", "Estimate", "Upper CI")
# Return Value:
ans = list(var = out1, sfall = out2)
invisible(ans)
}
# ------------------------------------------------------------------------------
.tailSlider.last.Quantile = NA
.tailSlider.last.nThresholds = NA
.tailSlider.param = NA
.tailSlider.conf = NA
.tailSlider.counter = NA
.tailSlider.Thresholds = NA
tailSlider =
function(x)
{ # A function implemented by Diethelm Wuertz
# Description
# Interactive view to find proper threshold value
# Arguments:
# x - an univariate timeSeries object or any other object which
# can be transformed by the function as.vector() into a
# numeric vector.
# FUNCTION:
# Transform to Vector:
x = as.vector(x)
# Exit:
on.exit(rm(.tailSlider.last.Quantile))
on.exit(rm(.tailSlider.last.nThresholds))
on.exit(rm(.tailSlider.param))
on.exit(rm(.tailSlider.conf))
on.exit(rm(.tailSlider.counter))
on.exit(rm(x))
# Internal Function:
refresh.code = function(...)
{
.tailSlider.counter <<- .tailSlider.counter + 1
# Sliders:
u = thresholdStart = .sliderMenu(no = 1)
du = .sliderMenu(no = 2)
max.x = .sliderMenu(no = 3)
nThresholds = .sliderMenu(no = 4)
Quantile = .sliderMenu(no = 5)
pp = .sliderMenu(no = 6)
if (.tailSlider.counter > 5) {
# Plot data:
par(mfrow = c(2, 2), cex = 0.7)
# Figure 1:
ans = mxfPlot(x, u = quantile(x, 1),
xlim = c(min(x), max.x), labels = FALSE)
grid()
# Add thresholds:
U = min(c(u+du, max(x)))
abline(v = u, lty = 3, col = "red")
abline(v = U, lty = 3, col = "red")
# Fit line to mean excess within thresolds:
X = as.vector(ans[, 1])
Y = as.vector(ans[, 2])
Y = Y[X > u & X < U]
X = X[X > u & X < U]
lineFit = lsfit(X, Y)
abline(lineFit, col = "red", lty = 2)
c = lineFit$coef[[1]]
m = lineFit$coef[[2]]
# Compute parameters xi and beta:
xi = c(xi = m/(1+m))
beta = c(beta = c/(1+m))
Xi = signif(xi, 3)
Beta = signif(beta, 3)
# Add Title:
Main = paste("Fig 1: xi = ", Xi, "| beta =", Beta)
title(main = Main, xlab = "Threshold", ylab = "Mean Excess")
# GPD Fit:
if (.tailSlider.last.Quantile != Quantile | .tailSlider.last.nThresholds != nThresholds) {
.tailSlider.param <<- NULL
.tailSlider.conf <<- NULL
.tailSlider.Thresholds <<- seq(quantile(x, Quantile), quantile(x, 1-Quantile),
length = nThresholds)
for (threshold in .tailSlider.Thresholds) {
ans = gpdFit(x, threshold)@fit
.tailSlider.param <<- rbind(.tailSlider.param, c(u = threshold, ans$par.ests))
.tailSlider.conf <<- rbind(.tailSlider.conf, c(u = threshold, ans$par.ses))
}
.tailSlider.last.Quantile <<- Quantile
.tailSlider.last.nThresholds <<- nThresholds
}
# Figure 2:
ymax = max(c(.tailSlider.param[, 2] + .tailSlider.conf[, 2]))
ymin = min(c(.tailSlider.param[, 2] - .tailSlider.conf[, 2]))
plot(.tailSlider.Thresholds, .tailSlider.param[, 2], xlab = "Threshold", ylab = "xi",
ylim = c(ymin, ymax), col = "steelblue", type = "l",
main = "xi Estimation")
grid()
points(.tailSlider.Thresholds, .tailSlider.param[, 2], pch = 19, col = "steelblue")
lines(.tailSlider.Thresholds, .tailSlider.param[, 2] + .tailSlider.conf[, 2], lty = 3)
lines(.tailSlider.Thresholds, .tailSlider.param[, 2] - .tailSlider.conf[, 2], lty = 3)
abline(h = xi, lty = 3, col = "red")
abline(v = u, lty = 3, col = "red")
abline(v = U, lty = 3, col = "red")
# Figure 3:
ymax = max(c(.tailSlider.param[, 3] + .tailSlider.conf[, 3]))
ymin = min(c(.tailSlider.param[, 3] - .tailSlider.conf[, 3]))
plot(.tailSlider.Thresholds, .tailSlider.param[, 3], xlab = "Threshold", ylab = "beta",
ylim = c(ymin, ymax), col = "steelblue", type = "l",
main = "beta Estimation")
grid()
points(.tailSlider.Thresholds, .tailSlider.param[, 3], pch = 19, col = "steelblue")
lines(.tailSlider.Thresholds, .tailSlider.param[, 3] + .tailSlider.conf[, 3], lty = 3)
lines(.tailSlider.Thresholds, .tailSlider.param[, 3] - .tailSlider.conf[, 3], lty = 3)
abline(h = beta, lty = 3, col = "red")
abline(v = u, lty = 3, col = "red")
abline(v = U, lty = 3, col = "red")
# Figure 4:
# <<-
fit = gpdFit(x, u)
tailPlot(object = fit, p = pp)
# Refresh Frame:
par(mfrow = c(2, 2), cex = 0.7)
}
}
# Save x globally:
x <<- as.vector(x)
# Slider Menu - x Series Settings:
xmax = max(x)
delta.x = (max(x)-min(x))/200
start.x = par()$usr[2]
# Slider Menu - Threshold/Quantiles Settings:
qmin = quantile(x, 0.25)
qmax = quantile(x, 0.995)
delta.q = (qmax-qmin)/200
start.q = (qmin+qmax)/2
# Save Globally:
.tailSlider.last.Quantile <<- 0.05*(1+1e-4)
.tailSlider.last.nThresholds <<- 10+1
.tailSlider.param <<- NA
.tailSlider.conf <<- NA
.tailSlider.counter <<- 0
# Open Slider Menu:
.sliderMenu(refresh.code,
names = c("1 thresholdStart",
"1 thresholdInterval",
"1 max(x)",
"2|3 nThresholds",
"2|3 Quantile",
"pp"),
minima = c( qmin, 0, min(x), 5, 0.005, 0.900),
maxima = c( qmax, qmax, max(x), 50, 0.500, 0.999),
resolutions = c( delta.q, delta.x, delta.x, 5, 0.005, 0.001),
starts = c( start.q, start.x, max(x), 10, 0.050, 0.990))
}
# ------------------------------------------------------------------------------
tailRisk =
function(object, prob = c(0.99, 0.995, 0.999, 0.9995, 0.9999), ...)
{ # A function implemented by Diethelm Wuertz
# Description:
# Calculates Quantiles VaR and Expected Shortfall Risks
# Arguments:
# x - an object of class 'gpdFit'
# prob - a numeric value or vector of probability levels
# FUNCTION:
# Settings:
u = object@parameter$u
par.ests = object@fit$par.ests
xi = par.ests["xi"]
beta = par.ests["beta"]
lambda = 1/(1 - object@fit$prob)
# Quantile Risk:
q = u + (beta * ((lambda * (1 - prob))^( - xi) - 1))/xi
# Shortfall Risk:
es = (q * (1 + (beta - xi * u)/q)) / (1 - xi)
# Risk Matrix:
ans = data.frame(Prob = prob, VaR = q, ES = es)
# Return Value:
ans
}
################################################################################
fExtremes/R/GevDistribution.R 0000644 0001762 0000144 00000027053 12323220004 015654 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
################################################################################
# FUNCTION: GEV DISTRIBUTION FAMILY: [CALLING EVD]
# dgev Density for the GEV Distribution
# pgev Probability for the GEV Distribution
# qgev Quantiles for the GEV Distribution
# rgev Random variates for the GEV Distribution
# gevMoments Computes true statistics for GEV distribution
# gevSlider Displays distribution and rvs for GEV distribution
# FUNCTION: GEV DISTRIBUTION FAMILY: [USE FROM EVD]
# .devd Density for the GEV Distribution
# .pevd Probability for the GEV Distribution
# .qevd Quantiles for the GEV Distribution
# .revd Random variates for the GEV Distribution
################################################################################
dgev =
function(x, xi = 1, mu = 0, beta = 1, log = FALSE)
{
# A function implemented from package evd
# Description:
# GEV Density Function
# Note: 1 + xi*(x-mu)/beta > 0
# xi > 0 Frechet
# xi = 0 Gumbel
# xi < 0 weibl
# FUNCTION:
# Density:
d = .devd(x, location = mu, scale = beta, shape = xi, log = FALSE)
# Add Attribute:
attr(d, "control") = data.frame(xi = xi, mu = mu, beta = beta,
log = log, row.names = "")
# Return Value:
d
}
# ------------------------------------------------------------------------------
pgev =
function(q, xi = 1, mu = 0, beta = 1, lower.tail = TRUE)
{
# A function implemented from package evd
# Description:
# GEV Probability Function
# Note: 1 + xi*(x-mu)/beta > 0
# xi > 0 Frechet
# xi = 0 Gumbel
# xi < 0 Weibull
# FUNCTION:
# Probability:
p = .pevd(q, location = mu, scale = beta, shape = xi,
lower.tail = lower.tail)
# Add Attribute:
attr(p, "control") = data.frame(xi = xi, mu = mu, beta = beta,
lower.tail = lower.tail, row.names = "")
# Return Value:
p
}
# ------------------------------------------------------------------------------
qgev =
function(p, xi = 1, mu = 0, beta = 1, lower.tail = TRUE)
{
# A function implemented from package evd
# Description:
# GEV Quantile Function
# Note: 1 + xi*(x-mu)/beta > 0
# xi > 0 Frechet
# xi = 0 Gumbel
# xi < 0 Weibull
# FUNCTION:
# Quantiles:
q = .qevd(p, location = mu, scale = beta, shape = xi,
lower.tail = lower.tail)
# Add Attribute:
attr(q, "control") = data.frame(xi = xi, mu = mu, beta = beta,
lower.tail = lower.tail, row.names = "")
# Return Value:
q
}
# ------------------------------------------------------------------------------
rgev =
function(n, xi = 1, mu = 0, beta = 1)
{
# A function implemented from package evd
# Description:
# GEV Random Variables
# Note: 1 + xi*(x-mu)/beta > 0
# xi > 0 Frechet
# xi = 0 Gumbel
# xi < 0 Weibull
# FUNCTION:
# Random Variates:
r = .revd(n = n, location = mu, scale = beta, shape = xi)
# Add Attribute:
attr(q, "control") = data.frame(xi = xi, mu = mu, beta = beta)
# Return Value:
r
}
# ----------------------------------------------------------------------------
gevMoments =
function(xi = 0, mu = 0, beta = 1)
{
# A function implemented by Diethelm Wuertz
# Description:
# Compute true statistics for Generalized Extreme Value distribution
# Value:
# Returns true mean for xi < 1 and variance for xi < 1/2
# of GEV distribution, otherwise NaN is returned
# FUNCTION:
# MEAN: Returns for x >= 1 NaN:
g = c(1, 0, NaN)
xinv = 1/ ( xi + sign(abs(xi)) - 1 )
# For xi = the result is eulers constant
euler = 0.57721566490153286060651209008240243104
xi0 = c(0, beta*euler, 0)
# Supress warning for NaN's from Gamma Function:
warn.old <- getOption("warn")
options(warn = -1)
gevMean = mu + beta * xinv * (gamma(1-xi)-1) * g[sign(xi-1)+2] +
xi0[(sign(xi)+2)]
options(warn = warn.old)
# VAR: Returns for x >= 1 NaN:
g = c(1, 0, NaN)
xinv = 1/ ( xi + sign(abs(xi)) - 1 )
xi0 = c(0, (beta*pi)^2 / 6, 0)
# Supress warning for NaN's from Gamma Function:
warn.old <- getOption("warn")
options(warn = -1)
gevVar = (beta*xinv)^2 * (gamma(1-2*xi) - gamma(1-xi)^2 ) *
g[sign(2*xi-1)+2] + xi0[(sign(xi)+2)]
options(warn = warn.old)
# Result:
param = c(xi = xi, mu = mu, beta = beta)
ans = list(param = param, mean = gevMean, var = gevVar)
# Return Value:
ans
}
# ------------------------------------------------------------------------------
gevSlider =
function(method = c("dist", "rvs"))
{ # A function implemented by Diethelm Wuertz
# Description:
# Displays distribution and rvs for GEV distribution
# FUNCTION:
# Settings:
method = match.arg(method)
# Internal Function:
refresh.code = function(...)
{
# Sliders:
N = .sliderMenu(no = 1)
xi = .sliderMenu(no = 2)
mu = .sliderMenu(no = 3)
beta = .sliderMenu(no = 4)
# Compute Data:
if (xi > 0) {
pmin = 0
pmax = 0.999
} else if (xi < 0) {
pmin = 0.001
pmax = 1
} else if (xi == 0) {
pmin = 0.001
pmax = 0.999
}
xmin = round(qgev(pmin, xi, mu, beta), digits = 2)
xmax = round(qgev(pmax, xi, mu, beta), digits = 2)
s = seq(xmin, xmax, length = N)
y1 = dgev(s, xi, mu, beta)
y2 = pgev(s, xi, mu, beta)
Moments = gevMoments(xi, mu, beta)
Mean = round(Moments$mean, 2)
Var = round(Moments$var, 2)
mText = paste("Mean =", Mean, " | Variance = ", Var)
main1 = paste("GEV Density\n",
"xi = ", as.character(xi), " | ",
"mu = ", as.character(mu), " | ",
"beta = ", as.character(beta) )
main2 = paste("GEV Probability\n",
"xmin [0.00] = ", as.character(xmin), " | ",
"xmax [0.99] = ", as.character(xmax) )
Median = qgev(0.5, xi, mu, beta)
# Frame:
par(mfrow = c(2, 1), cex = 0.7)
# Density:
if (method == "rvs") {
x = rgev(N, xi, mu, beta)
hist(x, probability = TRUE, col = "steelblue", border = "white",
xlim = c(xmin, xmax), ylim = c(0, 1.1*max(y1)), main = main1,
breaks = "FD" )
lines(s, y1, col = "orange")
mtext(mText, side = 4, col = "grey", cex = 0.7)
} else {
plot(s, y1, type = "l", xlim = c(xmin, xmax), col = "steelblue")
abline(h = 0, lty = 3)
abline(v = Median, lty = 3, col = "red")
abline(v = Mean, lty = 3, col = "darkgreen")
title(main = main1)
mtext(mText, side = 4, col = "grey", cex = 0.7)
}
# Probability:
plot(s, y2, type = "l", xlim = c(xmin, xmax), ylim = c(0, 1),
col = "steelblue" )
abline(h = 0, lty = 3)
abline(h = 0.5, lty = 3, col = "red")
abline(v = Median, lty = 3, col = "red")
abline(v = Mean, lty = 3, col = "darkgreen")
title(main = main2)
mtext(mText, side = 4, col = "grey", cex = 0.7)
# Reset Frame:
par(mfrow = c(1, 1), cex = 0.7)
}
# Open Slider Menu:
.sliderMenu(refresh.code,
names = c( "N", "xi", "mu", "beta"),
minima = c( 50, -1.50, -5.00, 0.10 ),
maxima = c( 1000, 1.50, +5.00, 5.00 ),
resolutions = c( 50, 0.01, 0.10, 0.10 ),
starts = c( 500, 0.00, 0.00, 1.00 )
)
}
################################################################################
.devd =
function(x, location = 0, scale = 1, shape = 0, log = FALSE)
{ # A modified copy from contributed R package evd
# FUNCTION:
# Check:
stopifnot(min(scale) > 0)
stopifnot(length(shape) == 1)
# Density:
x = (x - location) / scale
if (shape == 0) {
d = log(1/scale) - x - exp(-x)
} else {
nn = length(x)
xx = 1 + shape * x
xxpos = xx[xx > 0 | is.na(xx)]
scale = rep(scale, length.out = nn)[xx > 0 | is.na(xx)]
d = numeric(nn)
d[xx > 0 | is.na(xx)] = log(1/scale) - xxpos^(-1/shape) -
(1/shape + 1) * log(xxpos)
d[xx <= 0 & !is.na(xx)] = -Inf
}
# Log:
if (!log) {
d = exp(d)
}
# Add Attribute:
attr(d, "control") = data.frame(location = location[1], scale = scale[1],
shape = shape[1], log = log, row.names = "")
# Return Value:
d
}
# ------------------------------------------------------------------------------
.pevd =
function(q, location = 0, scale = 1, shape = 0, lower.tail = TRUE)
{ # A modified copy from contributed R package evd
# FUNCTION:
# Check:
stopifnot(min(scale) > 0)
stopifnot(length(shape) == 1)
# Probabilities:
q = (q - location)/scale
if (shape == 0) {
p = exp(-exp(-q))
} else {
p = exp(-pmax(1 + shape * q, 0)^(-1/shape))
}
# Lower Tail:
if (!lower.tail) {
p = 1 - p
}
# Add Attribute:
attr(p, "control") = data.frame(location = location[1], scale = scale[1],
shape = shape[1], lower.tail = lower.tail, row.names = "")
# Return Value:
p
}
# ------------------------------------------------------------------------------
.qevd =
function(p, location = 0, scale = 1, shape = 0, lower.tail = TRUE)
{ # A modified copy from contributed R package evd
# FUNCTION:
# Check:
stopifnot(min(scale) > 0)
stopifnot(length(shape) == 1)
stopifnot(min(p, na.rm = TRUE) >= 0)
stopifnot(max(p, na.rm = TRUE) <= 1)
# Quantiles:
if (!lower.tail) p = 1 - p
if (shape == 0) {
q = location - scale * log(-log(p))
} else {
q = location + scale * ((-log(p))^(-shape) - 1)/shape
}
# Add Attribute:
attr(q, "control") = data.frame(location = location[1], scale = scale[1],
shape = shape[1], lower.tail, row.names = "")
# Return Value:
q
}
# ------------------------------------------------------------------------------
.revd =
function(n, location = 0, scale = 1, shape = 0)
{ # A modified copy from contributed R package evd
# FUNCTION:
# Check:
stopifnot(min(scale) > 0)
stopifnot(length(shape) == 1)
# Random Variates:
if (shape == 0) {
r = location - scale * log(rexp(n))
} else {
r = location + scale * (rexp(n)^(-shape) - 1)/shape
}
# Add Attribute:
attr(r, "control") = data.frame(location = location[1], scale = scale[1],
shape = shape[1], row.names = "")
# Return Value:
r
}
################################################################################
fExtremes/R/GpdSow.R 0000644 0001762 0000144 00000004412 11645005146 013746 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
# Copyrights (C)
# for this R-port:
# 1999 - 2007, Diethelm Wuertz, GPL
# Diethelm Wuertz
# info@rmetrics.org
# www.rmetrics.org
# for the code accessed (or partly included) from other R-ports:
# see R's copyright and license files
# for the code accessed (or partly included) from contributed R-ports
# and other sources
# see Rmetrics's copyright file
################################################################################
# METHODS: PRINT, PLOT, AND SUMMARY:
# show.fGPDFIT S4 Print Method for object of class "fGPDFIT"
################################################################################
setMethod("show", "fGPDFIT",
function(object)
{ # A function implemented by Diethelm Wuertz
# Description:
# Print Method for an object of class 'gpdFit'
# Arguments:
# object - an object of class fGPDFIT
# FUNCTION:
# Title:
cat("\nTitle:\n ", object@title, "\n")
# Function Call:
cat("\nCall:\n ")
cat(paste(deparse(object@call), sep = "\n",
collapse = "\n"), "\n", sep = "")
# Estimation Type:
cat("\nEstimation Method:\n ", object@method, "\n")
# Estimated Parameters:
cat("\nEstimated Parameters:\n")
print(object@fit$par.ests)
# Desription:
cat("\nDescription\n ", object@description, "\n\n")
# Return Value:
invisible(object)
})
# ------------------------------------------------------------------------------
################################################################################
fExtremes/R/GevPrintPlotSummary.R 0000644 0001762 0000144 00000022227 12323220004 016504 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
################################################################################
# METHODS: PRINT, PLOT, AND SUMMARY:
# show.fGEVFIT S4 Show method for object of class "fGEVFIT"
# plot.fGEVFIT S3 Plot method for object of class "fGEVFIT"
# .gev1Plot Block Maxima Plot
# .gev2Plot Scatterplot of Residuals
# .gev3Plot Histogram of Residuals
# .gev4Plot Quantile-Quantile Plot
# summary.fGEVFIT S3 Summary Method for object of class "fGEVFIT"
################################################################################
setMethod("show", "fGEVFIT",
function(object)
{
# A function implemented by Diethelm Wuertz
# Description:
# Print Method for an object of class "fGEVFIT".
# Arguments:
# object - an object of class fGEVFIT
# FUNCTION:
# Title:
cat("\nTitle:\n" , object@title, "\n")
# Function Call:
cat("\nCall:\n ")
cat(paste(deparse(object@call), sep = "\n",
collapse = "\n"), "\n", sep = "")
# Estimation Type:
cat("\nEstimation Type:\n ", object@method, "\n")
# Estimated Parameters:
cat("\nEstimated Parameters:\n")
print(object@fit$par.ests)
# Desription:
cat("\nDescription\n ", object@description, "\n\n")
# Return Value:
invisible(object)
})
################################################################################
plot.fGEVFIT =
function(x, which = "ask", ...)
{
# A function implemented by Diethelm Wuertz
# Description:
# Plot method for an object of class "gevFit".
# Arguments:
# Details:
# plot.gev:
# Data are converted to unit exponentially distributed residuals
# under null hypothesis that GEV fits. Two diagnostics for iid
# exponential data are offered:
# "Scatterplot of Residuals" and "QQplot of Residuals"
# Example:
# fit = gevFit(gevSim(), type = "mle", gumbel = FALSE)
# par(mfrow = c(2, 2)); plot(fit)
# par(mfrow = c(1, 1)); plot(fit, which = "ask")
#
# fit = gevFit(gevSim(), type = "mle", gumbel = TRUE)
# par(mfrow = c(1, 1)); plot(fit, which = "ask")
#
# fit = gevFit(gevSim(), type = "pwm", gumbel = FALSE)
# par(mfrow = c(1, 1)); plot(fit, which = "ask")
#
# fit = gevFit(gevSim(), type = "pwm", gumbel = TRUE)
# par(mfrow = c(1, 1)); plot(fit, which = "ask")
# FUNCTION:
# Plot:
interactivePlot(
x = x,
choices = c(
"Block Maxima Plot",
"Scatterplot of Residuals",
"Histogram of Residuals",
"Quantile Quantile Plot"),
plotFUN = c(
".gev1Plot",
".gev2Plot",
".gev3Plot",
".gev4Plot"),
which = which)
# Return Value:
invisible(x)
}
# ------------------------------------------------------------------------------
.gev1Plot =
function(x, labels = TRUE, ...)
{
# A function implemented by Diethelm Wuertz
# Description:
# Time Series Plot of Block Maxima
# Arguments:
# x - an object of class "fGEVFIT" as returned by the
# function gevFit
# labels - a logical, should labels be added to the plot
# ... - optional arguments passed to the function plot
# Example:
# .gev1Plot(gevFit(gevSim()))
# FUNCTION:
# Data:
data = x@data$blockmaxima
# Labels:
if (labels) {
main = "Block Maxima"
xlab = "Index"
ylab = "Data"
} else {
main = xlab = ylab = ""
}
# Plot:
plot(data, type = "h",
main = main, xlab = xlab, ylab = ylab,
col = "steelblue", ...)
# Add Grid:
if (labels) grid()
# Return Value:
invisible()
}
# ------------------------------------------------------------------------------
.gev2Plot =
function(x, labels = TRUE, ...)
{
# A function implemented by Diethelm Wuertz
# Description:
# Scatterplot of Residuals:
# Arguments:
# x - an object of class "fGEVFIT" as returned by the
# function gevFit
# labels - a logical, should labels be added to the plot
# ... - optional arguments passed to the function plot
# Example:
# .gev2Plot(gevFit(gevSim()))
# FUNCTION:
# Data:
residuals = x@residuals
# Labels:
if (labels) {
main = "Scatterplot of Residuals"
xlab = "Ordering"
ylab = "Residuals"
} else {
main = xlab = ylab = ""
}
# Plot:
plot(residuals,
main = main, xlab = xlab, ylab = ylab,
pch = 19, col = "steelblue", ...)
lines(lowess(1:length(residuals), residuals), col = "brown")
# Add Grid:
if (labels) grid()
# Return Value:
invisible()
}
# ------------------------------------------------------------------------------
.gev3Plot =
function(x, labels = TRUE, ...)
{ # A function implemented by Diethelm Wuertz
# Description:
# Histogram Plot of Residuals with Gaussian Fit:
# Arguments:
# x - an object of class "fGEVFIT" as returned by the
# function gevFit
# labels - a logical, should labels be added to the plot
# ... - optional arguments passed to the function hist
# Example:
# .gev3Plot(gevFit(gevSim()))
# FUNCTION:
# Data:
residuals = x@residuals
# Labels:
if (labels) {
if (x@method[1] == "gev") {
dist = "GEV"
} else if (x@method[1] == "gum") {
dist = "Gumbel"
}
main = paste(dist, "Residual Histogram")
xlab = "Residuals"
ylab = "Density"
} else {
main = xlab = ylab = ""
}
# Plot:
hist(residuals, probability = TRUE, breaks = "FD",
main = main, xlab = xlab, ylab = ylab,
col = "steelblue", border = "white", ...)
# Return Value:
invisible()
}
# ------------------------------------------------------------------------------
.gev4Plot =
function(x, labels = TRUE, ...)
{
# A function implemented by Diethelm Wuertz
# Description:
# Quantile-Quantile Plot:
# Arguments:
# x - an object of class "fGEVFIT" as returned by the
# function gevFit
# labels - a logical, should labels be added to the plot
# ... - optional arguments passed to the function plot
# Example:
# .gev4Plot(gevFit(gevSim()))
# FUNCTION:
# Data:
data = x@residuals
sorted = sort(data)
y <- qexp(ppoints(data))
# Labels:
if (labels) {
main = "QQ Plot of Residuals"
xlab = "Ordered Data"
ylab = "Exponential Quantiles"
} else {
main = xlab = ylab = ""
}
# Plot:ata, type = "h",
plot(sorted, y,
main = main, xlab = xlab, ylab = ylab,
pch = 19, col = "steelblue", ...)
abline(lsfit(sorted, y))
# Add Grid:
if (labels) grid()
# Return Value:
invisible()
}
################################################################################
summary.fGEVFIT =
function(object, doplot = TRUE, which = "all", ...)
{
# A function implemented by Diethelm Wuertz
# Description:
# Summary method for an object of class "gevFit".
# Arguments:
# object - an object of class "fGEVFIT" as returned by the
# function gevFit
# doplot - a logical, should a plot be returned
# which - which plot(s) should be returned
# optional arguments passed to the function plot
# Example:
# fit = gevFit(gevSim(), type = "mle")
# par(mfrow = c(2, 2)); summary(fit)
# FUNCTION:
# Title:
cat("\nTitle:\n", object@title, "\n")
# Function Call:
cat("\nCall:\n ")
cat(paste(deparse(object@call), sep = "\n",
collapse = "\n"), "\n", sep = "")
# Estimation Type:
cat("\nEstimation Type:\n ", object@method, "\n")
# Estimated Parameters:
cat("\nEstimated Parameters:\n")
print(object@fit$par.ests)
# Summary:
if (object@method[2] == "mle") {
cat("\nStandard Deviations:\n ");
print(object@fit$par.ses)
cat("\nLog-Likelihood Value:\n ", object@fit$llh, "\n")
cat("\nType of Convergence:\n ", object@fit$converged, "\n") }
# Desription:
cat("\nDescription\n ", object@description, "\n\n")
# Plot:
if (doplot) {
plot(object, which = which, ...)
}
# Return Value:
invisible(object)
}
################################################################################
fExtremes/R/ExtremeIndex.R 0000644 0001762 0000144 00000041446 12323220004 015136 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
################################################################################
# FUNCTION: DESCRIPTION:
# 'fTHETA' Class representation for extremal index
# show.fTHETA S4: Print Method for extremal index
# thetaSim Simulates a time series with known theta
# FUNCTION: DESCRIPTION:
# blockTheta Computes theta from Block Method
# clusterTheta Computes theta from Reciprocal Cluster Method
# runTheta Computes theta from Run Method
# ferrosegersTheta Computes Theta according to Ferro and Seegers
# FUNCTION: DESCRIPTION:
# exindexesPlot Computes and Plot Theta(1,2,3)
# exindexPlot Computes Theta(1,2) and Plot Theta(1)
################################################################################
setClass("fTHETA",
representation(
call = "call",
data = "list",
theta = "data.frame",
title = "character",
description = "character")
)
# ------------------------------------------------------------------------------
setMethod("show", "fTHETA",
function(object)
{ # A function implemented by Diethelm Wuertz
# FUNCTION:
# Unlike print the argument for show is 'object'.
x = object
# Title:
cat("\nTitle:\n ", x@title, "\n", sep = "")
# Call:
cat("\nCall:\n ", deparse(x@call), "\n", sep = "")
# Extremal Index:
cat("\nExtremal Index:\n")
print(object@theta)
# Description:
cat("\nDescription:\n ", x@description, sep = "")
cat("\n\n")
# Return Value:
invisible()
})
# ------------------------------------------------------------------------------
thetaSim =
function(model = c("max", "pair"), n = 1000, theta = 0.5)
{ # A function implemented by Diethelm Wuertz
# Description:
# Simulates a time series with known theta
# Arguments:
# model - a character string denoting the model
# "max" - Max Frechet Series
# "pair" - Paired Exponential Series
# FUNCTION:
# Model Argument:
model = match.arg(model)
# Simulate:
model = model[1]
X = rep(0, n)
if (model == "max") {
# Frechet rvs:
eps = 1/(-log(runif(n)))
X[1] = theta*eps[1]
for ( i in 2:n ) X[i] = max( (1-theta)*X[i-1], theta*eps[i] )
} else if (model == "pair") {
theta = 0.5
eps = rexp(n+1)
for ( i in 1:n ) X[i] = max(eps[i], eps[i+1])
}
# As time series:
X = as.ts(X)
attr(X, "control") = c(model = model, theta = as.character(theta))
# Return Value:
X
}
################################################################################
blockTheta =
function (x, block = 22, quantiles = seq(0.950, 0.995, length = 10),
title = NULL, description = NULL)
{ # A function implemented by Diethelm Wuertz
# Description:
# Calculates theta from Block method, i.e. theta1.
# Example:
# blockTheta(thetaSim(n=10000))
# FUNCTION:
# Check if block is numeric:
stopifnot(is.numeric(block))
# Number of blocks and number of data points:
X = as.vector(x)
ordered = sort(X)
k = floor(length(X)/block)
n = k*block
# Now organize your X:
# 1) truncate the rest of the time series,
# 2) arrange them in matrix form,
# 3) sort them in reverse order, ie. from high (pos) to low (neg)
X = matrix(X[1:(k*block)], ncol = block, byrow = TRUE)
# Threshold values associated to quantiles:
thresholds = ordered[floor(quantiles*length(X))]
# Presettings:
theta1 = rep(0, times = length(quantiles))
# Calculate Extremal Imdex:
run = 0
keepK = keepN = NULL
for ( u in thresholds ) {
run = run + 1
# N # of exceedences | K # of blocks with exceedences:
N = length(X[X > u])
K = floor(sum(sign(apply(X, 1, max) - u) + 1) / 2)
if (K/k < 1) {
theta1[run] = (k/n) * log(1-K/k) / log(1-N/n)
} else {
theta1[run] = NA
}
keepK = c(keepK, K)
keepN = c(keepN, N)
}
# Theta Values:
ans = data.frame(quantiles = quantiles, thresholds = thresholds,
N = keepN, K = keepK, theta = theta1)
# Add title and description:
if (is.null(title)) title = "Extremal Index from Block Method"
if (is.null(description)) description = description()
# Return Value:
new("fTHETA",
call = match.call(),
data = list(x = x, block = block),
theta = ans,
title = title,
description = description)
}
# ------------------------------------------------------------------------------
clusterTheta =
function (x, block = 22, quantiles = seq(0.950, 0.995, length = 10),
title = NULL, description = NULL)
{ # A function implemented by Diethelm Wuertz
# Description:
# Calculates theta from Reciprocal Mean Cluster Size method, i.e. theta2.
# Example:
# clusterTheta(thetaSim(n=10000))
# FUNCTION:
# Check if block is numeric:
stopifnot(is.numeric(block))
# Number of blocks and number of data points:
X = as.vector(x)
ordered = sort(X)
k = floor(length(X)/block)
n = k*block
# Now organize your X:
# 1) truncate the rest of the time series,
# 2) arrange them in matrix form,
# 3) sort them in reverse order, ie. from high (pos) to low (neg)
X = matrix(X[1:(k*block)], ncol = block, byrow = TRUE)
# Threshold values associated to quantiles:
thresholds = ordered[floor(quantiles*length(X))]
# Presettings:
theta2 = rep(0, times = length(quantiles))
# Calculate Extremal Imdex:
run = 0
keepK = keepN = NULL
for ( u in thresholds ) {
run = run + 1
# N # of exceedences | K # of blocks with exceedences:
N = length(X[X > u])
K = floor(sum(sign(apply(X, 1, max) - u) + 1) / 2)
theta2[run] = K/N
keepK = c(keepK, K)
keepN = c(keepN, N)
}
# Theta Values:
ans = data.frame(quantiles = quantiles, thresholds = thresholds,
N = keepN, K = keepK, theta = theta2)
# Add title and description:
if (is.null(title))
title = "Extremal Index from Reciprocal Cluster Method"
if (is.null(description)) description = description()
# Return Value:
new("fTHETA",
call = match.call(),
data = list(x = x, block = block),
theta = ans,
title = title,
description = description)
}
# ------------------------------------------------------------------------------
runTheta =
function (x, block = 22, quantiles = seq(0.950, 0.995, length = 10),
title = NULL, description = NULL)
{ # A function implemented by Diethelm Wuertz
# Description:
# Calculates theta from Run method, i.e. theta3.
# Example:
# runTheta(thetaSim(n=10000))
# FUNCTION:
# Check if block is numeric:
stopifnot(is.numeric(block))
# Number of blocks and number of data points:
X = as.vector(x)
ordered = sort(X)
k = floor(length(X)/block)
n = k*block
Count = 1:n
# Now organize your X:
# 1) truncate the rest of the time series,
# 2) arrange them in matrix form,
# 3) sort them in reverse order, ie. from high (pos) to low (neg)
X = matrix(X[1:(k*block)], ncol = block, byrow = TRUE)
# Threshold values associated to quantiles:
thresholds = ordered[floor(quantiles*length(X))]
# Presettings:
theta3 = rep(0, times = length(quantiles))
# Calculate Extremal Imdex:
run = 0
keepN = NULL
for ( u in thresholds ) {
run = run + 1
# N # of exceedences | K # of blocks with exceedences:
N = length(X[X > u])
Y = diff(Count[X > u])
Y = Y[Y > block]
theta3[run] = length(Y)/N
keepN = c(keepN, N)
}
# Theta Values:
ans = data.frame(quantiles = quantiles, thresholds = thresholds,
N = keepN, theta = theta3)
# Add title and description:
if (is.null(title))
title = "Extremal Index from Run Method"
if (is.null(description)) description = description()
# Return Value:
new("fTHETA",
call = match.call(),
data = list(x = x, block = block),
theta = ans,
title = title,
description = description)
}
# ------------------------------------------------------------------------------
ferrosegersTheta =
function (x, quantiles = seq(0.950, 0.995, length= 10),
title = NULL, description = NULL)
{
# Description:
# Estimates the extremal index based on the intervals estimator
# due to Ferro and Segers (2003).
# Note:
# Adapted from function 'extremalindex' in contributed R-package
# 'extRemes' written and maintained by ...
# FUNCTION:
# Settings:
x = as.vector(x)
n = length(x)
N = floor(quantiles*n)
sorted = sort(x)
U = sorted[N]
ans = NULL
# Extremal Index:
for ( u in U ) {
msg = 0
id = x > u
N = sum(id)
S = (1:n)[id]
TT = diff(S)
if (!any(TT > 2)) {
theta = 2*sum(TT, na.rm = TRUE)^2/((N-1) * sum(TT^2, na.rm = TRUE))
# msg = paste("theta.hat used because no values of T>2.")
msg = msg + 1
if (theta > 1) {
theta = 1
# msg = paste(msg, "Using theta = 1 because theta.hat > 1.",
# sep = "\n")
msg = msg + 10
}
} else {
theta = 2 * sum(TT-1, na.rm = TRUE)^2/((N-1) * sum((TT-1) *
(TT-2), na.rm = TRUE))
# msg = paste("theta.tilde used because a value(s) exists of T>2.")
msg = msg + 100
if (theta > 1) {
theta = 1
# msg = paste(msg, "Using theta = 1 as theta.hat > 1.")
msg = msg + 1000
}
}
K = ifelse(round(theta*N) != theta*N, floor(theta*N) + 1, theta*N)
T.order = order(TT, na.last = TRUE, decreasing = TRUE)
T.ranked = TT[T.order]
T.K = T.ranked[K]
if (sum(TT == T.K, na.rm = TRUE) > 1) {
for (i in 1:K) {
K = K - 1
T.K = T.ranked[K]
if (sum(TT == T.K, na.rm = TRUE) > 1) {
next
} else {
break
}
}
}
ans = rbind(ans, c(T.K, K, msg, theta))
}
# Result:
ans = data.frame(quantiles, U, ans)
colnames(ans) = c("Threshold", "Quantiles",
"RunLength", "Clusters", "messageNo", "theta")
# Add title and description:
if (is.null(title))
title = "Extremal Index from Ferro-Segers Method"
if (is.null(description)) description = description()
# Return Value:
new("fTHETA",
call = match.call(),
data = list(x = x),
theta = ans,
title = title,
description = description)
}
################################################################################
exindexesPlot =
function (x, block = 22, quantiles = seq(0.950, 0.995, length = 10),
doplot = TRUE, labels = TRUE, ...)
{ # A function implemented by Diethelm Wuertz
# Description:
# Calculates and Plots Theta(1,2,3) for numeric block lengths
# Areguments:
# x - an univariate time series, or any other object which can be
# transformed by the function as.vector into a numeric vector.
# block - an integer value which denotes the length of the blocks.
# quantiles - a numeric vector of quantile values.
# doplot - alogical flag. Should a plot be produced?
# Example:
# exindexesPlot(as.timeSeries(data(bmwRet)), 20)
# FUNCTION:
# Settings:
if (!is.numeric(block)) stop("Argument block must be an integer value.")
doprint = FALSE
# Block Size:
blocklength = block # argument renamed
# Note, in finance the x's should be residuals
resid = as.vector(x)
# Extremal Index - Theta_1, Theta_2 and Theta_3
k = floor(length(resid)/blocklength) # Number of blocks
n = k*blocklength # Number of data points
# Now organize your residuels:
# 1) truncate the rest of the time series,
# 2) arrange them in matrix form,
# 3) sort them in reverse order, ie. from high (pos) to low (neg)
resid1 = resid[1:(k*blocklength)]
resid1 = matrix(resid1, ncol = blocklength, byrow = TRUE)
ordered1 = sort(resid1)
# Threshold values associated to quantiles:
z0 = ordered1[floor(quantiles*length(resid1))]
# Presettings:
theta1 = theta2 = theta3 = rep(0, times = length(quantiles))
# Calculate Extremal Imdex:
run = 0
for ( z in z0 ) {
run = run + 1
# N - number of exceedences:
N = length(resid1[resid1 > z])
# K - number of blocks with exceedences:
# DW: floor()
K = floor(sum(sign(apply(resid1, 1, max)-z)+1) / 2)
if (K/k < 1) {
theta1[run] = (k/n) * log(1-K/k) / log(1-N/n)
} else {
theta1[run] = NA
}
theta2[run] = K/N
x = 1:n
xx = diff(x[resid1 > z])
xx = xx[xx > blocklength]
theta3[run] = length(xx)/N
# Printing:
if (doprint) {
print(c(N, K, quantiles[run], z))
print(c(theta1[run], theta2[run], theta3[run]))
}
}
# Plotting:
if (doplot) {
plot(quantiles, theta1,
xlim = c(quantiles[1], quantiles[length(quantiles)]),
ylim = c(0, 1.2), type = "b", pch = 1,
xlab = "", ylab = "", main = "", ...)
points(quantiles, theta2, pch = 2, col = 3)
points(quantiles, theta3, pch = 4, col = 4)
if (labels) {
title(main = "Extremal Index")
title(xlab = "Quantile", ylab = "Theta 1,2,3")
mtext("Threshold", side = 3, line = 3)
grid()
mtext(text = paste("Blocklength: ", as.character(block)),
adj = 0, side = 4, cex = 0.7)
}
}
# Theta Values:
ans = data.frame(quantiles = quantiles, thresholds = z0,
theta1 = theta1, theta2 = theta2, theta3 = theta3)
# Return Value:
ans
}
# ------------------------------------------------------------------------------
exindexPlot =
function(x, block = c("monthly", "quarterly"), start = 5, end = NA,
doplot = TRUE, plottype = c("thresh", "K"), labels = TRUE, ...)
{
# Example:
# exindexPlot(as.timeSeries(data(bmwRet)), 20)
# exindexPlot(as.timeSeries(data(bmwRet)), "monthly")
# exindexPlot(as.vector(as.timeSeries(data(bmwRet))), 20)
# Settings:
plottype = match.arg(plottype)
reverse = FALSE
if (plottype == "K") reverse = TRUE
# Extremal Index - following A. McNeil:
b.maxima = rev(sort(as.vector(blockMaxima(x, block))))
data = as.vector(x)
sorted = rev(sort(data))
n = length(sorted)
if (!is.numeric(block)) block = round(length(data)/length(b.maxima))
k = round(n/block)
un = unique(b.maxima)[-1]
K = match(un, b.maxima) - 1
N = match(un, sorted) - 1
if (is.na(end)) end = k
cond = (K < end) & (K >= start)
un = un[cond]
K = K[cond]
N = N[cond]
theta2 = K/N
theta = logb(1 - K/k)/(block * logb(1 - N/n))
ans = data.frame(N = N, K = K, un = un, theta2 = theta2, theta = theta)
yrange = range(theta)
index = K
if (reverse) index = - K
# Plot:
if (doplot) {
plot(index, theta, ylim = yrange, type = "b", xlab = "", ylab = "",
axes = FALSE, ...)
IDX = round(seq(1, length(index), length = 10))
axis(1, at = index[IDX], labels = paste(K)[IDX])
axis(2)
axis(3, at = index[IDX], labels = paste(format(signif(un, 3)))[IDX])
box()
if (labels) {
ylabel =
paste("theta (", k, " blocks of size ", block, ")", sep = "")
title(xlab = "K", ylab = ylabel)
mtext("Threshold", side = 3, line = 3)
lines(index, theta, col = "steelblue")
grid()
mtext(text = paste("Blocklength: ", as.character(block)),
adj = 0, side = 4, cex = 0.7)
}
}
# Return Value:
ans
}
################################################################################
fExtremes/R/GpdDistribution.R 0000644 0001762 0000144 00000026406 12323220004 015646 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
################################################################################
# FUNCTION: GPD DISTRIBUTION FAMILY:
# dgpd Density for the Generalized Pareto DF [USE FROM EVIS]
# pgpd Probability for the Generalized Pareto DF
# qgpd Quantiles for the Generalized Pareto DF
# rgpd Random variates for the Generalized Pareto DF
# FUNCTION: GPD MOMENTS:
# gpdMoments Computes true statistics for GPD distribution
# FUNCTION: GPD SLIDER:
# gpdSlider Displays distribution and rvs for GPD distribution
# FUNCTION: INTERNAL GPD DISTRIBUTION FAMILY:
# .depd Density for the Generalized Pareto DF
# .pepd Probability for the Generalized Pareto DF
# .qepd Quantiles for the Generalized Pareto DF
# .repd Random variates for the Generalized Pareto DF
################################################################################
dgpd <-
function(x, xi = 1, mu = 0, beta = 1, log = FALSE)
{
# A function written by Diethelm Wuertz
# Description:
# Density for the Generalized Pareto DF
# Arguments:
# FUNCTION:
# Transform:
shape = xi
location = mu
scale = beta
# Density:
d = .depd(x, location, scale, shape, log)
# Add Control:
attr(d, "control") = data.frame(xi = xi, mu = mu,
beta = beta[1], log = log, row.names = "")
# Return Value:
d
}
# ------------------------------------------------------------------------------
pgpd <-
function(q, xi = 1, mu = 0, beta = 1, lower.tail = TRUE)
{
# A function written by Diethelm Wuertz
# Description:
# Probability for the Generalized Pareto DF
# Arguments:
# FUNCTION:
# Transform:
shape = xi
location = mu
scale = beta
# Probability:
p = .pepd(q, location, scale, shape, lower.tail)
# Add Control:
attr(p, "control") = data.frame(xi = xi, mu = mu,
beta = beta[1], lower.tail = lower.tail, row.names = "")
# Return Value:
p
}
# ------------------------------------------------------------------------------
qgpd <-
function(p, xi = 1, mu = 0, beta = 1, lower.tail = TRUE)
{
# A function written by Diethelm Wuertz
# Description:
# Quantiles for the Generalized Pareto DF
# Arguments:
# FUNCTION:
# Transform:
shape = xi
location = mu
scale = beta
# Quantiles:
q = .qepd(p, location, scale, shape, lower.tail)
# Add Control:
attr(q, "control") = data.frame(xi = xi, mu = mu,
beta = beta[1], lower.tail = lower.tail, row.names = "")
# Return Value:
q
}
# ------------------------------------------------------------------------------
rgpd <-
function(n, xi = 1, mu = 0, beta = 1)
{
# A function written by Diethelm Wuertz
# Description:
# Random variates for the Generalized Pareto DF
# Arguments:
# FUNCTION:
# Transform:
shape = xi
location = mu
scale = beta
# Random Variates:
r = .repd(n, location, scale, shape)
# Add Control:
attr(r, "control") = data.frame(xi = xi, mu = mu,
beta = beta[1], row.names = "")
# Return Value:
r
}
# ------------------------------------------------------------------------------
gpdMoments <-
function(xi = 1, mu = 0, beta = 1)
{
# A function implemented by Diethelm Wuertz
# Description:
# Compute true statistics for Generalized Pareto distribution
# Arguments:
# Value:
# Returns true mean of Generalized Pareto distribution
# for xi < 1 else NaN
# Returns true variance of Generalized Pareto distribution
# for xi < 1 else NaN
# FUNCTION:
# MEAN: Returns 1 for x <= 0 and -Inf's's else
a = c(1, NaN, NaN)
gpdMean = mu + beta/(1-xi)*a[sign(xi-1)+2]
# VAR: Rreturns 1 for x <= 0 and -Inf's's else
a = c(1, NaN, NaN)
gpdVar = beta*beta/(1-xi)^2/(1-2*xi) * a[sign(2*xi-1)+2]
# Result:
param = c(xi = xi, mu = mu, beta = beta)
ans = list(param = param, mean = gpdMean, var = gpdVar)
# Return Value:
ans
}
# ------------------------------------------------------------------------------
gpdSlider <-
function(method = c("dist", "rvs"))
{
# A function implemented by Diethelm Wuertz
# Description:
# Displays distribution and rvs for GPD distribution
# Arguments:
# FUNCTION:
# Settings:
method = match.arg(method)
# Internal Function:
refresh.code = function(...)
{
# Sliders:
N = .sliderMenu(no = 1)
xi = .sliderMenu(no = 2)
mu = .sliderMenu(no = 3)
beta = .sliderMenu(no = 4)
# Compute Data:
pmin = 0.00
pmax = 0.99
xmin = round(qgpd(pmin, xi, mu, beta), digits = 2)
xmax = round(qgpd(pmax, xi, mu, beta), digits = 2)
s = seq(xmin, xmax, length = N)
y1 = dgpd(s, xi, mu, beta)
y2 = pgpd(s, xi, mu, beta)
Moments = gpdMoments(xi, mu, beta)
Mean = round(Moments$mean, 2)
Var = round(Moments$var, 2)
mText = paste("Mean =", Mean, " | Variance = ", Var)
main1 = paste("GPD Density\n",
"xi = ", as.character(xi), " | ",
"mu = ", as.character(mu), " | ",
"beta = ", as.character(beta) )
main2 = paste("GPD Probability\n",
"xmin [0.00] = ", as.character(xmin), " | ",
"xmax [0.99] = ", as.character(xmax) )
Median = qgpd(0.5, xi, mu, beta)
# Frame:
par(mfrow = c(2, 1), cex = 0.7)
# Density:
if (method == "rvs") {
x = rgpd(N, xi, mu, beta)
hist(x, probability = TRUE, col = "steelblue", border = "white",
xlim = c(xmin, xmax), ylim = c(0, 1.1*max(y1)), main = main1,
breaks = "FD" )
lines(s, y1, col = "orange")
mtext(mText, side = 4, col = "grey", cex = 0.7)
} else {
plot(s, y1, type = "l", xlim = c(xmin, xmax), col = "steelblue")
abline(h = 0, lty = 3)
abline(v = Median, lty = 3, col = "red")
abline(v = Mean, lty = 3, col = "darkgreen")
title(main = main1)
mtext(mText, side = 4, col = "grey", cex = 0.7)
}
# Probability:
plot(s, y2, type = "l", xlim = c(xmin, xmax), ylim = c(0, 1),
col = "steelblue" )
abline(h = 0, lty = 3)
abline(h = 0.5, lty = 3, col = "red")
abline(v = Median, lty = 3, col = "red")
abline(v = Mean, lty = 3, col = "darkgreen")
title(main = main2)
mtext(mText, side = 4, col = "grey", cex = 0.7)
# Reset Frame:
par(mfrow = c(1, 1), cex = 0.7)
}
# Open Slider Menu:
.sliderMenu(refresh.code,
names = c( "N", "xi", "mu", "beta"),
minima = c( 50, 0.00, -5.00, 0.10 ),
maxima = c( 1000, 1.50, +5.00, 5.00 ),
resolutions = c( 50, 0.01, 0.10, 0.10 ),
starts = c( 500, 1.00, 0.00, 1.00 )
)
}
################################################################################
.depd <-
function(x, location = 0, scale = 1, shape = 0, log = FALSE)
{
# Description:
# Arguments:
# FUNCTION:
# Check:
stopifnot(min(scale) > 0)
stopifnot(length(shape) == 1)
# Density:
d <- (x - location)/scale
nn <- length(d)
scale <- rep(scale, length.out = nn)
index <- (d > 0 & ((1 + shape * d) > 0)) | is.na(d)
if (shape == 0) {
d[index] <- log(1/scale[index]) - d[index]
d[!index] <- -Inf
} else {
d[index] <- log(1/scale[index]) - (1/shape+1)*log(1+shape*d[index])
d[!index] <- -Inf
}
# Log:
if (!log)
d <- exp(d)
# Add Control:
attr(d, "control") = data.frame(location = location[1], scale = scale[1],
shape = shape[1], log = log, row.names = "")
# Return Value:
d
}
# ------------------------------------------------------------------------------
.pepd <-
function(q, location = 0, scale = 1, shape = 0, lower.tail = TRUE)
{
# Description:
# Arguments:
# FUNCTION:
# Check:
stopifnot(min(scale) > 0)
stopifnot(length(shape) == 1)
# Probability:
q <- pmax(q - location, 0)/scale
if (shape == 0)
p <- 1 - exp(-q)
else {
p <- pmax(1 + shape * q, 0)
p <- 1 - p^(-1/shape)
}
# Lower Tail:
if (!lower.tail)
p <- 1 - p
# Add Control:
attr(p, "control") = data.frame(location = location[1], scale = scale[1],
shape = shape[1], lower.tail = lower.tail, row.names = "")
# Return Value:
p
}
# ------------------------------------------------------------------------------
.qepd <-
function(p, location = 0, scale = 1, shape = 0, lower.tail = TRUE)
{
# Description:
# Arguments:
# FUNCTION:
# Check:
stopifnot(min(scale) > 0)
stopifnot(length(shape) == 1)
stopifnot(min(p, na.rm = TRUE) >= 0)
stopifnot(max(p, na.rm = TRUE) <= 1)
# Lower Tail:
if (lower.tail)
p <- 1 - p
# Quantiles:
if (shape == 0) {
q = location - scale * log(p)
} else {
q = location + scale * (p^(-shape) - 1)/shape
}
# Add Control:
attr(q, "control") = data.frame(location = location[1], scale = scale[1],
shape = shape[1], lower.tail = lower.tail, row.names = "")
# Return Value:
q
}
# ------------------------------------------------------------------------------
.repd <-
function(n, location = 0, scale = 1, shape = 0)
{
# Description:
# Arguments:
# FUNCTION:
# Check:
stopifnot(min(scale) > 0)
stopifnot(length(shape) == 1)
# Random Variates:
if (shape == 0) {
r = location + scale * rexp(n)
} else {
r = location + scale * (runif(n)^(-shape) - 1)/shape
}
# Add Control:
attr(r, "control") = data.frame(location = location[1], scale = scale[1],
shape = shape[1], row.names = "")
# Return Value:
r
}
################################################################################ fExtremes/R/GevSim.R 0000644 0001762 0000144 00000004751 12323220004 013725 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
################################################################################
# FUNCTION: GEV SIMULATION:
# gevSim Simulates a GEV distributed process
# gumbelSim Simulates a Gumbel distributed process
################################################################################
gevSim =
function(model = list(xi = -0.25, mu = 0, beta = 1), n = 1000, seed = NULL)
{ # A function implemented by Diethelm Wuertz
# Description:
# Generates random variates from a GEV distribution
# Arguments:
# Examples:
# gevSim(n = 100)
# gevSim(n = 100, seed = 4711)
# gevSim(model = list(xi = -0.15, mu = 0, beta = 0.02))
# FUNCTION:
# Seed:
if (is.null(seed)) seed = NA else set.seed(seed)
# Simulate:
ans = rgev(n = n, xi = model$xi, mu = model$mu, beta = model$beta)
# DW: ans = as.ts(ans)
ans = timeSeries(ans, units = "GEV")
# Control:
attr(ans, "control") =
data.frame(t(unlist(model)), seed = seed, row.names = "control")
# Return Value:
ans
}
# ------------------------------------------------------------------------------
gumbelSim =
function(model = list(mu = 0, beta = 1), n = 1000, seed = NULL)
{ # A function implemented by Diethelm Wuertz
# Description:
# Generates random variates from a GEV distribution
# Arguments:
# Examples:
# gumbelSim(n = 100)
# gumbelSim(n = 100, seed = 4711)
# FUNCTION:
# Simulate:
ans = gevSim(model = list(xi = 0, mu = model$mu, beta = model$beta),
n = n, seed = seed)
colnames(ans) = "GUMBEL"
# Return Value:
ans
}
################################################################################
fExtremes/R/GevMdaEstimation.R 0000644 0001762 0000144 00000043255 13202325361 015746 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
################################################################################
# FUNCTION: MDA ESTIMATORS:
# hillPlot Plot Hill's estimator
# shaparmPlot Pickands, Hill & Decker-Einmahl-deHaan Estimator
# shaparmPickands Auxiliary function called by shaparmPlot
# shaparmHill ... called by shaparmPlot
# shaparmDehaan ... called by shaparmPlot
################################################################################
hillPlot =
function(x, start = 15, ci = 0.95,
doplot = TRUE, plottype = c("alpha", "xi"), labels = TRUE, ...)
{ # A function implemented by Diethelm Wuertz
# Description:
# Plots the results from the Hill Estimator.
# Note:
# Code partly adapted from R package evir
# Examples:
# par(mfrow = c(2, 2))
# hillPlot(gevSim(n=1000), plottype = "alpha")
# hillPlot(gevSim(n=1000), plottype = "xi")
# NYI: hillPlot(gevSim(n=1000), plottype = "alpha", reverse = TRUE)
# NYI: hillPlot(gevSim(n=1000), plottype = "xi", reverse = TRUE)
# hillPlot(gevSim(n=1000), plottype = "alpha", doplot = FALSE)
# hillPlot(gevSim(n=1000), plottype = "xi", doplot = FALSE)
# Check Type:
stopifnot(NCOL(x)==1)
x = as.vector(x)
# Settings:
reverse = FALSE
option = match.arg(plottype)
data = x
# MDA:
ordered = rev(sort(data))
ordered = ordered[ordered > 0]
n = length(ordered)
k = 1:n
loggs = log(ordered)
avesumlog = cumsum(loggs)/(1:n)
xihat = c(NA, (avesumlog - loggs)[2:n])
y = switch(option,
alpha = 1/xihat,
xi = xihat)
ses = y / sqrt(k)
x = trunc(seq(from = min(n, length(data)), to = start))
y = y[x]
qq <- qnorm(1 - (1 - ci)/2)
u <- y + ses[x] * qq
l <- y - ses[x] * qq
yrange <- range(u, l)
if (reverse) index = -x else index = x
# Plot:
if (doplot) {
plot(index, y, ylim = yrange, type = "l", xlab = "", ylab = "",
axes = FALSE, ...)
pos = floor(seq(1, length(index), length = 10))
axis(1, at = index[pos], labels = paste(x[pos]), tick = TRUE)
axis(2)
threshold = signif(findThreshold(data, x), 3)
axis(3, at = index[pos], labels = paste(format(threshold[pos])),
tick = TRUE)
box()
lines(index, u, lty = 2, col = "steelblue")
lines(index, l, lty = 2, col = "steelblue")
if (labels) {
title(xlab = "Order Statistics", ylab = option)
mtext("Threshold", side = 3, line = 3)
}
}
# Result:
ans = list(x = index, y = y)
control = data.frame(plottype = option[1], start = start, ci = ci,
reverse = FALSE, row.names = "control")
attr(ans, "control") = control
# Return Value:
if (doplot) return(invisible(ans)) else ans
}
# ------------------------------------------------------------------------------
shaparmPlot =
function(x, p = 0.01*(1:10), xiRange = NULL, alphaRange = NULL,
doplot = TRUE, plottype = c("both", "upper"))
{ # A function written by Diethelm Wuertz
# Description:
# Displays Pickands, Einmal-Decker-deHaan, and Hill estimators
# Example:
# par(mfcol=c(3,2)); shaparmPlot(as.timeSeries(data(daxRet)))
# shaparmPlot(as.timeSeries(data(daxRet)), doplot = FALSE)
# shaparmPlot(as.timeSeries(data(daxRet)), 0.005*(1:20))
# FUNCTION:
# Settings:
x = as.vector(x)
tails = p
if (is.null(xiRange)) xiRange = c(-0.5, 1.5)
if (is.null(alphaRange)) alphaRange = c(0, 10)
plottype = match.arg(plottype)
if (plottype == "both") bothTails = TRUE else bothTails = FALSE
# Median Plot:
index = which.min(abs(tails-stats::median(tails)))
DOPLOT = rep(FALSE, length(tails))
DOPLOT[index] = TRUE
selected.tail = tails[index]
if (!doplot) DOPLOT[index] = FALSE
# Which estimator ?
which = c(TRUE, TRUE, TRUE)
# Settings:
select.doplot = which
ylim1 = xiRange
ylim2 = alphaRange
z = rep(mean(ylim2), length(tails))
ylim1 = xiRange
ylim2 = alphaRange
# Estimates:
p1 = p2 = h1 = h2 = d1 = d2 = m1 = m2 = rep(0, length(tails))
for ( i in (1:length(tails)) ) {
tail = tails[i]
# Plotting Staff:
if (select.doplot[1]) {
xi = shaparmPickands(x, tail, ylim1, doplot = FALSE,
plottype = plottype)
p1[i] = xi$xi[1]
p2[i] = xi$xi[3]
}
if (select.doplot[2]) {
xi = shaparmHill(x, tail, ylim1, doplot = FALSE,
plottype = plottype)
h1[i] = xi$xi[1]
h2[i] = xi$xi[3]
}
if (select.doplot[3]) {
xi = shaparmDEHaan(x, tail, ylim1, doplot = FALSE,
plottype = plottype)
d1[i] = xi$xi[1]
d2[i] = xi$xi[3]
}
}
# Plot Pickands' Summary:
if (select.doplot[1] & doplot) {
plot (tails, z, type = "n", xlab = "tail depth", ylab = "alpha",
ylim = ylim2, main = "Pickands Summary")
grid()
abline(v = selected.tail, lty = 3)
y1 = 1/p1
x1 = tails [y1 > ylim2[1] & y1 < ylim2[2]]
y1 = y1[y1 > ylim2[1] & y1 < ylim2[2]]
points (x1, y1, col = "steelblue")
lines(x1, y1, col = "steelblue")
if (bothTails) {
y1 = 1/p2
x1 = tails [y1 > ylim2[1] & y1 < ylim2[2]]
y1 = y1 [y1 > ylim2[1] & y1 < ylim2[2]]
points (x1, y1, col = "brown")
lines(x1, y1, col = "brown")
}
}
# Plot Hill Summary:
if (select.doplot[2] & doplot) {
plot (tails, z, type = "n", xlab = "tail depth", ylab = "alpha",
ylim = ylim2, main = "Hill Summary")
grid()
abline(v = selected.tail, lty = 3)
y1 = 1/h1
x1 = tails [y1 > ylim2[1] & y1 < ylim2[2]]
y1 = y1 [y1 > ylim2[1] & y1 < ylim2[2]]
points (x1, y1, col = "steelblue")
lines(x1, y1, col = "steelblue")
if (bothTails) {
y1 = 1/h2
x1 = tails [y1 > ylim2[1] & y1 < ylim2[2]]
y1 = y1 [y1 > ylim2[1] & y1 < ylim2[2]]
points (x1, y1, col = "brown")
lines(x1, y1, col = "brown")
}
}
# Plot Deckers-Einmahl-deHaan Summary
if (select.doplot[3] & doplot) {
plot (tails, z, type = "n", xlab = "tail depth", ylab = "alpha",
ylim = ylim2, main = "Deckers-Einmahl-deHaan Summary")
grid()
abline(v = selected.tail, lty = 3)
y1 = 1/d1
x1 = tails [y1>ylim2[1] & y1ylim2[1] & y1 ylim2[1] & y1 < ylim2[2]]
y1 = y1 [y1 > ylim2[1] & y1 < ylim2[2]]
points (x1, y1, col = "brown")
lines(x1, y1, col = "brown")
}
}
# Plot Estimates:
resultUpper = resultLower = NULL
for ( i in (1:length(tails)) ) {
tail = tails[i]
# Plotting Staff:
if (select.doplot[1]) {
xi = shaparmPickands(x, tail, ylim1, doplot = DOPLOT[i],
plottype = plottype)
p1[i] = xi$xi[1]
p2[i] = xi$xi[3]
}
if (select.doplot[2]) {
xi = shaparmHill(x, tail, ylim1, doplot = DOPLOT[i],
plottype = plottype)
h1[i] = xi$xi[1]
h2[i] = xi$xi[3]
}
if (select.doplot[3]) {
xi = shaparmDEHaan(x, tail, ylim1, doplot = DOPLOT[i],
plottype = plottype)
d1[i] = xi$xi[1]
d2[i] = xi$xi[3]
}
resultUpper = rbind(resultUpper, c(tails[i], p1[i], h1[i], d1[i]))
if (bothTails)
resultLower = rbind(resultLower, c(tails[i], p2[i], h2[i], d2[i]))
}
colnames(resultUpper) = c("Upper", "Pickands", "Hill", "DEHaan")
resultUpper = data.frame(resultUpper)
if (bothTails) {
colnames(resultLower) = c("Lower", "Pickands", "Hill", "DEHaan")
resultLower = data.frame(resultLower)
}
# Result:
ans = list(Upper = resultUpper)
if (bothTails) ans$Lower = resultLower
# Return Value:
if (doplot) return(invisible(ans)) else ans
}
# ------------------------------------------------------------------------------
shaparmPickands =
function(x, p = 0.05, xiRange = NULL,
doplot = TRUE, plottype = c("both", "upper"), labels = TRUE, ...)
{ # A function written by Diethelm Wuertz
# FUNCTION:
# Order Residuals:
x = as.vector(x)
tail = p
if (is.null(xiRange)) xiRange = c(-0.5, 1.5)
yrange = xiRange
plottype = match.arg(plottype)
if (plottype == "both") bothTails = TRUE else bothTails = FALSE
ordered1 = rev(sort(abs(x[x < 0])))
if (bothTails) ordered2 = rev(sort(abs(x[x > 0])))
n1 = length(ordered1)
if (bothTails) n2 = length(ordered2)
ordered1 = ordered1[1:floor(tail*n1)]
if (bothTails) ordered2 = ordered2[1:floor(tail*n2)]
n1 = length(ordered1)
if (bothTails) n2 = length(ordered2)
# Pickands Estimate:
k1 = 1:(n1%/%4)
if (bothTails) k2 = 1:(n2%/%4)
pickands1 = log ((c(ordered1[k1])-c(ordered1[2*k1])) /
(c(ordered1[2*k1])-c(ordered1[4*k1]))) / log(2)
if (bothTails) pickands2 = log ((c(ordered2[k2])-c(ordered2[2*k2])) /
(c(ordered2[2*k2])-c(ordered2[4*k2]))) / log(2)
# Prepare Plot:
y1 = pickands1[pickands1 > yrange[1] & pickands1 < yrange[2]]
x1 = log10(1:length(pickands1))[pickands1 > yrange[1] &
pickands1 < yrange[2]]
if (bothTails) {
y2 = pickands2[pickands2 > yrange[1] & pickands2 < yrange[2]]
x2 = log10(1:length(pickands2))[pickands2 > yrange[1] &
pickands2 < yrange[2]]
}
# Labels:
if (labels) {
main = "Pickands Estimator"
xlab = "log scale"
ylab = "xi"
} else {
main = xlab = ylab = ""
}
# Plot:
if (doplot) {
par(err = -1)
plot (x1, y1, xlab = xlab, ylab = ylab, ylim = yrange,
main = main, type = "n")
title(sub = paste("tail depth:", as.character(tail)))
lines(x1, y1, type = "p", pch = 2, col = "steelblue")
if (bothTails) lines(x2, y2, type = "p", pch = 6, col = "brown")
if (labels) grid()
}
# Calculate invers "xi":
my1 = mean(y1, na.rm = TRUE)
if (bothTails) my2 = mean(y2, na.rm = TRUE)
sy1 = sqrt(var(y1, na.rm = TRUE))
if (bothTails) sy2 = sqrt(var(y2, na.rm = TRUE))
# Plot:
if (doplot) {
par(err = -1)
lines(c(x1[1], x1[length(x1)]), c(my1,my1), type = "l",
lty = 1, col = "steelblue")
if (bothTails) lines(c(x2[1], x2[length(x2)]), c(my2, my2),
type = "l", lty = 1, col = "brown")
}
# Result:
result = list(xi = c(my1, sy1))
if (bothTails) result = list(xi = c(my1, sy1, my2, sy2))
# Return Result:
result
}
# ------------------------------------------------------------------------------
shaparmHill =
function(x, p = 0.05, xiRange = NULL,
doplot = TRUE, plottype = c("both", "upper"), labels = TRUE, ...)
{ # A Function written by Diethelm Wuertz
# ORDER RESIDUALS:
x = as.vector(x)
tail = p
if (is.null(xiRange)) xiRange = c(-0.5, 1.5)
yrange = xiRange
plottype = match.arg(plottype)
if (plottype == "both") bothTails = TRUE else bothTails = FALSE
ordered1 = rev(sort(abs(x[x < 0])))
if (bothTails) ordered2 = rev(sort(abs(x[x > 0])))
n1 = length(ordered1)
if (bothTails) n2 = length(ordered2)
ordered1 = ordered1[1:floor(tail*n1)]
if (bothTails) ordered2 = ordered2[1:floor(tail*n2)]
n1 = length(ordered1)
if (bothTails) n2 = length(ordered2)
# HILLS ESTIMATE:
hills1 = c((cumsum(log(ordered1))/(1:n1)-log(ordered1))[2:n1])
if (bothTails) hills2 = c((cumsum(log(ordered2))/(1:n2) -
log(ordered2))[2:n2])
# PREPARE PLOT:
y1 = hills1[hills1 > yrange[1] & hills1 < yrange[2]]
x1 = log10(1:length(hills1))[hills1 > yrange[1] & hills1 < yrange[2]]
if (bothTails) {
y2 = hills2[hills2 > yrange[1] & hills2 < yrange[2]]
x2 = log10(1:length(hills2))[hills2 > yrange[1] & hills2 < yrange[2]]
}
# Labels:
if (labels) {
main = "Hill Estimator"
xlab = "log scale"
ylab = "xi"
} else {
main = xlab = ylab = ""
}
# Plot:
if (doplot) {
par(err = -1)
plot (x1, y1, xlab = xlab, ylab = ylab, ylim = yrange,
main = main, type="n")
if (labels) title(sub = paste("tail depth:", as.character(tail)))
lines(x1, y1, type = "p", pch = 2, col = "steelblue")
if (bothTails) lines(x2, y2, type = "p", pch = 6, col = "brown")
if (labels) grid()
}
# CALCULATE INVERSE XI:
my1 = mean(y1, na.rm = TRUE)
if (bothTails) my2 = mean(y2, na.rm = TRUE)
sy1 = sqrt(var(y1, na.rm = TRUE))
if (bothTails) sy2 = sqrt(var(y2, na.rm = TRUE))
if (doplot) {
par(err=-1)
lines(c(x1[1], x1[length(x1)]), c(my1,my1), type="l",
lty = 1, col = "steelblue")
if (bothTails) lines(c(x2[1], x2[length(x2)]), c(my2,my2),
type = "l",lty = 1, col = "brown")
}
# Result:
result = list(xi = c(my1, sy1))
if (bothTails) result = list(xi = c(my1, sy1, my2, sy2))
# Return Result:
result
}
# ------------------------------------------------------------------------------
shaparmDEHaan =
function(x, p = 0.05, xiRange = NULL,
doplot = TRUE, plottype = c("both", "upper"), labels = TRUE, ...)
{ # A function written by Diethelm Wuertz
# ORDER RESIDUALS:
x = as.vector(x)
tail = p
if (is.null(xiRange)) xiRange = c(-0.5, 1.5)
yrange = xiRange
plottype = match.arg(plottype)
if (plottype == "both") bothTails = TRUE else bothTails = FALSE
ordered1 = rev(sort(abs(x[x < 0])))
if (bothTails) ordered2 = rev(sort(abs(x[x > 0])))
n1 = length(ordered1)
if (bothTails) n2 = length(ordered2)
ordered1 = ordered1[1:floor(tail*n1)]
if (bothTails) ordered2 = ordered2[1:floor(tail*n2)]
n1 = length(ordered1)
if (bothTails) n2 = length(ordered2)
# DECKERS-EINMAHL-deHAAN ESTIMATE:
ns0 = 1
n1m = n1-1; ns1 = ns0; ns1p = ns1+1
bod1 = c( cumsum(log(ordered1))[ns1:n1m]/(ns1:n1m) -
log(ordered1)[ns1p:n1] )
bid1 = c( cumsum((log(ordered1))^2)[ns1:n1m]/(ns1:n1m) -
2*cumsum(log(ordered1))[ns1:n1m]*log(ordered1)[ns1p:n1]/(ns1:n1m) +
((log(ordered1))^2)[ns1p:n1] )
dehaan1 = ( 1.0 + bod1 + ( 0.5 / ( bod1^2/bid1 - 1 ) ))
if (bothTails) {
n2m = n2-1; ns2 = ns0; ns2p = ns2+1
bod2 = c( cumsum(log(ordered2))[ns2:n2m]/(ns2:n2m) -
log(ordered2)[ns2p:n2] )
bid2 = c( cumsum((log(ordered2))^2)[ns2:n2m]/(ns2:n2m) -
2*cumsum(log(ordered2))[ns2:n2m]*log(ordered2)[ns2p:n2]/(ns2:n2m) +
((log(ordered2))^2)[ns2p:n2] )
dehaan2 = ( 1.0 + bod2 + ( 0.5 / ( bod2^2/bid2 - 1 ) )) }
# PREPARE PLOT:
y1 = dehaan1[dehaan1 > yrange[1] & dehaan1 < yrange[2]]
x1 = log10(1:length(dehaan1))[dehaan1 > yrange[1] & dehaan1 < yrange[2]]
if (bothTails) {
y2 = dehaan2[dehaan2 > yrange[1] & dehaan2 < yrange[2]]
x2 = log10(1:length(dehaan2))[dehaan2 > yrange[1] &
dehaan2 < yrange[2]]
}
# Labels:
if (labels) {
main = "Deckers - Einmahl - de Haan Estimator"
xlab = "log scale"
ylab = "xi"
} else {
main = xlab = ylab = ""
}
# Plot:
if (doplot) {
par(err = -1)
plot (x1, y1, xlab = xlab, ylab = ylab, ylim = yrange,
main = main, type = "n")
if (labels) title(sub = paste("tail depth:", as.character(tail)))
lines(x1, y1, type = "p", pch = 2, col = "steelblue")
if (bothTails) lines(x2, y2, type = "p", pch = 6, col = "brown")
if (labels) grid()
}
# CALCULATE INVERSE XI:
my1 = mean(y1, na.rm = TRUE)
if (bothTails) my2 = mean(y2, na.rm = TRUE)
sy1 = sqrt(var(y1, na.rm = TRUE))
if (bothTails) sy2 = sqrt(var(y2, na.rm = TRUE))
if (doplot) {
par(err = -1)
lines(c(x1[1], x1[length(x1)]), c(my1,my1), type = "l",
lty = 1, col = "steelblue")
if (bothTails) lines(c(x2[1], x2[length(x2)]), c(my2, my2),
type = "l", lty = 1, col = "brown")
}
# Result:
result = list(xi = c(my1, sy1))
if (bothTails) result = list(xi = c(my1, sy1, my2, sy2))
# Return Result:
result
}
################################################################################
fExtremes/R/meanExcessPlot.R 0000644 0001762 0000144 00000010612 12323220004 015456 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
################################################################################
# FUNCTION: MEAN EXCESS FUNCTION PLOT:
# meanExcessPlot Plot mean excesses to a normal/nig/ght density
################################################################################
.meanExcessPlot <-
function(x, labels = TRUE, title = FALSE, grid = TRUE,
col = "steelblue", ...)
{
# A function implemented by Diethelm Wuertz
# Description:
# Plots and fits mean excess function
# Arguments:
# FUNCTION:
# Common Range:
DIM = NCOL(x)
xRange = yRange = NULL
for (i in 1:DIM) {
xRange = c(xRange,
range(mePlot(-scale(x[, i]), doplot = FALSE)[, 1], na.rm = TRUE))
yRange = c(yRange,
range(mePlot(-scale(x[, i]), doplot = FALSE)[, 2], na.rm = TRUE))
}
xLim = range(xRange)
yLim = c(0, max(yRange))
xPos = min(xLim) + 0.075*diff(xLim)
yPos = 0.05*diff(yLim)
# Colors:
if (length(col) == 1) col = rep(col, times = DIM)
# Labels:
if (title) {
xlab = "Threshold"
ylab = "Mean Excess"
main = colnames(X)
} else {
xlab = ylab = main = ""
}
# Mean Excess:
for (i in 1:DIM)
{
# Scale Tail of Series:
X = -scale(x[, i])
if (labels) main = colnames(X)
# Normal Fit:
me = normMeanExcessFit(X, doplot = TRUE, trace = FALSE, lwd = 2,
labels = FALSE, col = col[i], xlim = xLim, ylim = yLim,
main = main, xlab = xlab, ylab = ylab, ...)
normLLH = attr(me, "control")@fit$minimum
if (grid) {
grid(col = "darkgrey")
}
if (title) {
mtext("Scaled Mean Excess", line = 0.5, cex = 0.7)
}
# Add 95% and 99% Sample Quantiles:
abline(v = quantile(X, 0.95, type = 1), col = "darkgrey")
abline(v = quantile(X, 0.99, type = 1), col = "darkgrey")
# If Normality rejected, add NIG and GH Student-t:
test = jbTest(X)@test$p.value[3]
nigLLH = ghtLLH = -9.99e99
if (test == 0)
{
# NIG Fit:
me = nigMeanExcessFit(X, doplot = FALSE, trace = FALSE)
lines(me, col = "green", lwd = 2)
nigLLH = attr(me, "control")@fit$minimum
param = attr(me, "control")@fit$estimate
abline(v = qnig(0.95, param[1], param[2], param[3], param[4]),
col = "green")
abline(v = qnig(0.99, param[1], param[2], param[3], param[4]),
col = "green")
# GH Student-t Fit:
me = ghtMeanExcessFit(X, doplot = FALSE, trace = FALSE)
lines(me, col = "red", lwd = 2)
ghtLLH = attr(me, "control")@fit$minimum
}
# Finish:
if (title) {
LLH = c("NORM", "NIG", "GHT")
colorsLLH = c("black", "green", "red")
if (test == 0) {
mText = paste(
"logLLH: NORM = ", signif(normLLH, 5),
" | NIG = ", signif(nigLLH, 5),
" | GHT = ", signif(ghtLLH, 5), sep = "")
mtext(mText, side = 4, adj = 0, col = "darkgrey", cex = 0.7)
} else {
mText = paste(
"logLLH: NORM = ", signif(normLLH, 5), sep = "")
mtext(mText, side = 4, adj = 0, col = "darkgrey", cex = 0.7)
}
indexLLH = which.max(c(normLLH, nigLLH, ghtLLH))
maxLLH = LLH[indexLLH]
colLLH = colorsLLH[indexLLH]
text(xPos, yPos, maxLLH, col = colLLH)
}
}
# Return Value:
invisible()
}
################################################################################
fExtremes/R/GevFit.R 0000644 0001762 0000144 00000031665 12323220004 013723 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
################################################################################
# FUNCTION: GEV PARAMETER ESTIMATION:
# 'fGEVFIT' S4 class representation
# gevFit Fits parameters of GEV distribution
# gumbelFit Fits parameters of Gumbel distribution
# FUNCTION: FOR INTERNAL USE:
# .gumpwmFit Fits Gumbel with probability weighted moments
# .gevpwmFit Fits GEV with probability weighted moments
# .gummleFit Fits Gumbel with max log-likelihood approach
# .gumLLH Computes Gumbel log-likelihood function
# .gevmleFit Fits GEV with max log-likelihood approach
# .gevLLH Computes GEV log-likelihood function
################################################################################
setClass("fGEVFIT",
representation(
call = "call",
method = "character",
parameter = "list",
data = "list",
fit = "list",
residuals = "numeric",
title = "character",
description = "character"
)
)
# ------------------------------------------------------------------------------
gevFit =
function(x, block = 1, type = c("mle", "pwm"),
title = NULL, description = NULL, ...)
{
# A function implemented by Diethelm Wuertz
# Description:
# Fits the parameters of GEV distribution
# Arguments:
# x - an object of class timeSeries
# block - an integer value, the block size
# type - a character string, which type of method should be used,
# max log-likelihood estimation, "mle", or partial weighted
# moments estimation, "pwm".
# Examples:
# gevFit(gevSim())
# par(mfrow = c(2,2)); summary(gevFit(gevSim()))
# FUNCTION:
# Match Call:
call = match.call()
# Match Arguments:
type = match.arg(type)
# Fit:
ans = .gevFit(x = x, block = block, type = type, gumbel = FALSE,
title = title, description = description, ...)
ans@call = call
# Return Value:
ans
}
# ------------------------------------------------------------------------------
gumbelFit =
function(x, block = 1, type = c("mle", "pwm"),
title = NULL, description = NULL, ...)
{
# A function implemented by Diethelm Wuertz
# Description:
# Fits the parameters of Gumbel distribution
# Arguments:
# x - an object of class timeSeries
# block - an integer value, the block size
# type - a character string, which type of method should be used,
# max log-likelihood estimation, "mle", or partial weighted
# moments estimation, "pwm".
# Examples:
# gumbelFit(gumbelSim())
# par(mfrow = c(2,2)); summary(gumbelFit(gumbelSim()))
# FUNCTION:
# Match Call:
call = match.call()
# Match Arguments:
type = match.arg(type)
# Fit:
ans = .gevFit(x = x, block = block, type = type, gumbel = TRUE,
title = title, description = description, ...)
ans@call = call
# Return Value:
ans
}
# ------------------------------------------------------------------------------
.gevFit =
function(x, block = 1, type = c("mle", "pwm"),
gumbel = FALSE, title = NULL, description = NULL, ...)
{
# A function implemented by Diethelm Wuertz
# Description:
# Fits parameters to a GEV distribution
# Arguments:
# x - a numeric vector of Block Maxima
# Examples:
# fit = gevFit(gevSim(), type = "mle", gumbel = FALSE); print(fit)
# fit = gevFit(gevSim(), type = "pwm", gumbel = FALSE); print(fit)
# fit = gevFit(gevSim(), type = "mle", gumbel = TRUE); print(fit)
# fit = gevFit(gevSim(), type = "pwm", gumbel = TRUE); print(fit)
# x = rnorm(500); block = 20; type="mle"; gumbel=FALSE
# x = as.ts(rnorm(500)); block = 20; type = "mle"; gumbel = FALSE
# x = dummyDailySeries(rnorm(500)); block = 20; type = "mle"; gumbel=FALSE
# Note:
# Argument named "method is already used for the selection
# of the MLE optimization algorithm, therfore we use here
# "type".
# FUNCTION:
# Match Call:
call = match.call()
# Match Arguments:
type = match.arg(type)
# Check Type and Convert:
X = x
xClass = class(x)
x = as.timeSeries(x)
stopifnot(isUnivariate(x))
# Block Maxima:
if (is.numeric(block)) {
if (block == 1) {
blockmaxima = x
Names = paste(1:dim(blockmaxima)[1])
} else {
blockmaxima = blockMaxima(x, block, doplot = FALSE)
Names = blockmaxima@recordIDs[, 3]
}
} else {
blockmaxima = blockMaxima(x, block, doplot = FALSE)
Names = rownames(series(blockmaxima))
}
if (xClass == "numeric") {
blockmaxima = as.vector(blockmaxima)
names(blockmaxima) = Names
}
if (xClass == "ts") {
blockmaxima = as.ts(blockmaxima)
names(blockmaxima) = Names
}
x = as.vector(blockmaxima)
# Estimate Parameters:
if (gumbel) {
# GUMBEL: Add Call and Type
if (length(type) > 1) type = type
# Probability Weighted Moment Estimation:
if (type == "pwm") {
fit = .gumpwmFit(data = x, ...)
}
# Maximum Log Likelihood Estimation:
# Use Alexander McNeils EVIS from evir Package ...
if (type == "mle") {
fit = .gummleFit(data = x, ...)
}
} else {
# GEV: Add Call and Type
if (length(type) > 1) type = type
# Probability Weighted Moment Estimation:
if (type == "pwm") {
fit = .gevpwmFit(data = x, ...)
}
# Maximum Log Likelihood Estimation:
# Use Alexander McNeils EVIS from evir Package ...
if (type == "mle") {
fit = .gevmleFit(data = x, ...)
}
}
class(fit) = "list"
# Compute Residuals:
if (gumbel) {
# GUMBEL:
xi = 0
beta = fit$par.ests["beta"]
mu = fit$par.ests["mu"]
residuals = exp( - exp( - (x - mu)/beta))
} else {
# GEV:
xi = fit$par.ests["xi"]
beta = fit$par.ests["beta"]
mu = fit$par.ests["mu"]
residuals = (1 + (xi * (x - mu))/beta)^(-1/xi)
}
# Make Unique:
fit$llh = fit$nllh.final
# Add title and description:
if (is.null(title)) {
if (gumbel) {
title = "Gumbel Parameter Estimation"
} else {
title = "GEV Parameter Estimation"
}
}
if (is.null(description)) {
description = as.character(date())
}
# Add Counts to x:
# Return Value:
new("fGEVFIT",
call = match.call(),
method = c(if (gumbel) "gum" else "gev", type[1]),
parameter = list(block = block, type = type[1], gumbel = gumbel),
data = list(x = X, blockmaxima = blockmaxima),
fit = fit,
residuals = residuals,
title = title,
description = description)
}
# ------------------------------------------------------------------------------
.gumpwmFit =
function(data, ...)
{
# A function implemented by Diethelm Wuertz
# Description:
# Arguments:
# FUNCTION:
# "Probability Weighted Moment" method.
data = as.numeric(data)
n = length(data)
# Sample Moments:
x = rev(sort(data))
lambda = c(mean(x), 0)
for (i in 1:n) {
weight = (n-i)/(n-1)/n
lambda[2] = lambda[2] + weight*x[i]
}
# Calculate Parameters:
xi = 0
beta = lambda[2]/log(2)
mu = lambda[1] - 0.5772*beta
# Output:
fit = list(
n = n,
data = data,
par.ests = c(mu = mu, beta = beta),
par.ses = c(mu = NA, beta = NA),
varcov = matrix(rep(NA, 4), 2, 2),
converged = NA,
nllh.final = NA,
call = match.call(),
selected = "pwm")
class(fit) = "gev" # not gumbel!
# Return Value:
fit
}
# ------------------------------------------------------------------------------
.gevpwmFit =
function(data, block = NA, ...)
{ # A function implemented by Diethelm Wuertz
# Description:
# Arguments:
# FUNCTION:
# Probability Weighted Moment method.
data = as.numeric(data)
n = length(data)
# Internal Function:
y = function(x, w0, w1, w2) {
(3^x-1)/(2^x-1) - (3*w2 - w0)/(2*w1 - w0)
}
# Moments:
nmom = 3
x = rev(sort(data))
moments = rep(0, nmom)
moments[1] = mean(x)
n = length(x)
for (i in 1:n) {
weight = 1/n
for (j in 2:nmom) {
weight = weight*(n-i-j+2)/(n-j+1)
moments[j] = moments[j] + weight*x[i]
}
}
w0 = moments[1]
w1 = moments[2]
w2 = moments[3]
# Parameters:
xi = uniroot(f = y, interval = c(-5,+5),
w0 = w0, w1 = w1, w2 = w2)$root
beta = (2*w1-w0)*xi / gamma(1-xi) / (2^xi-1)
mu = w0 + beta*(1-gamma(1-xi))/xi
# Output:
fit = list(
n = n,
data = data,
par.ests = c(xi = xi, mu = mu, beta = beta),
par.ses = c(xi = NA, mu = NA, beta = NA),
varcov = matrix(rep(NA, 9), 3, 3),
converged = NA,
nllh.final = NA,
call = match.call(),
selected = "pwm")
class(fit) = "gev"
# Return Value:
fit
}
# ------------------------------------------------------------------------------
.gummleFit =
function(data, block = NA, ...)
{
# A copy from evir
# Description:
# Arguments:
# FUNCTION:
# Data:
data = as.numeric(data)
n = length(data)
# Generate EVIR Start Values:
# beta0 = sqrt(6 * var(data))/pi
# mu0 = mean(data) - 0.57722 * beta0
# theta = c(mu = mu0, beta = beta0)
# We use PWM Start Values:
theta = .gumpwmFit(data)$par.ests
# Fit:
fit = optim(theta, .gumLLH, hessian = TRUE, ..., tmp = data)
if( fit$convergence) warning("optimization may not have succeeded")
par.ests = fit$par
varcov = solve(fit$hessian)
par.ses = sqrt(diag(varcov))
# Result:
ans = list(
n = n,
data = data,
par.ests = par.ests,
par.ses = par.ses,
varcov = varcov,
converged = fit$convergence,
nllh.final = fit$value)
class(ans) = "gev"
# Return Value:
ans
}
# ------------------------------------------------------------------------------
.gumLLH =
function(theta, tmp)
{
# A copy from evir
# Description:
# Arguments:
# FUNCTION:
# Gumbel Log-Likelihood:
y = (tmp - theta[1])/theta[2]
if(theta[2] < 0) {
ans = 1.0e+6
} else {
term1 = length(tmp) * logb(theta[2])
term2 = sum(y)
term3 = sum(exp( - y))
ans = term1 + term2 + term3
}
# Return Value:
ans
}
# ------------------------------------------------------------------------------
.gevmleFit =
function(data, block = NA, ...)
{
# A copy from evir
# Description:
# Arguments:
# FUNCTION:
# Data:
data = as.numeric(data)
n = length(data)
# EVIR Start Values:
beta0 = sqrt(6 * var(data))/pi
mu0 = mean(data) - 0.57722 * beta0
xi0 = 0.1
# We use PWM Start Values:
theta = .gevpwmFit(data)$par.ests
# Fit:
fit = optim(theta, .gevLLH, hessian = TRUE, ..., tmp = data)
if (fit$convergence) warning("optimization may not have succeeded")
par.ests = fit$par
varcov = solve(fit$hessian)
par.ses = sqrt(diag(varcov))
# Result:
ans = list(
n = n,
data = data,
par.ests = par.ests,
par.ses = par.ses,
varcov = varcov,
converged = fit$convergence,
nllh.final = fit$value)
class(ans) = "gev"
# Return Value:
ans
}
# ------------------------------------------------------------------------------
.gevLLH =
function(theta, tmp)
{
# A copy from evir
# Description:
# Computes log-likelihood for GEV distribution
# Arguments:
# FUNCTION:
# GEV Log-likelihood:
y = 1 + (theta[1] * (tmp - theta[2]))/theta[3]
if((theta[3] < 0) || (min(y) < 0)) {
ans = 1e+06
} else {
term1 = length(tmp) * logb(theta[3])
term2 = sum((1 + 1/theta[1]) * logb(y))
term3 = sum(y^(-1/theta[1]))
ans = term1 + term2 + term3
}
# Return Value:
ans
}
################################################################################
fExtremes/R/ValueAtRisk.R 0000644 0001762 0000144 00000006455 12323220004 014730 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
################################################################################
# FUNCTION: DESCRIPTION:
# VaR Computes Value-at-Risk
# CVaR Computes Conditional Value-at-Risk
################################################################################
VaR =
function(x, alpha = 0.05, type = "sample", tail = c("lower", "upper"))
{ # A function implemented by Diethelm Wuertz
# Description:
# Computes Value-at-Risk
# Arguments:
# x - an uni- or multivariate timeSeries object
# alpha - a numeric value, the confidence interval
# type - a character string, the type to calculate the value-at-risk
# tail - a character string denoting which tail will be
# considered, either \code{"lower"} or \code{"upper"}.
# If \code{tail="lower"}, then alpha will be converted to
# \code{alpha=1-alpha}.
# FUNCTION:
# Settings:
x = as.matrix(x)
tail = match.arg(tail)
# Value-at-Risk:
if (type == "sample") {
if (tail == "upper") alpha = 1-alpha
# Important: use type=1 !
VaR = quantile(x, probs = alpha, type = 1)
} else if (type == "gpd") {
VaR = "Not yet Implemented"
} else if (type == "obre") {
VaR = "Not yet Implemented"
}
# Return Value:
VaR
}
# ------------------------------------------------------------------------------
CVaR =
function(x, alpha = 0.05, type = "sample", tail = c("lower", "upper"))
{
# A function implemented by Diethelm Wuertz
# Description:
# Computes Conditional Value-at-Risk
# Arguments:
# x - an uni- or multivariate timeSeries object
# alpha - a numeric value, the confidence interval
# type - a character string, the type to calculate the value-at-risk
# tail - a character string denoting which tail will be considered,
# either "lower" or upper", if tail="lower", then alpha will be
# converted to alpha=1-alpha.
# FUNCTION:
# Settings:
x = as.matrix(x)
tail = match.arg(tail)
# Sample VaR:
VaR = VaR(x, alpha, type, tail)
# Sample CVaR:
if (tail == "upper") alpha = 1-alpha
if (type == "sample") {
CVaR = NULL
for (i in 1:ncol(x)) {
X = as.vector(x[, i])
CVaR = c(CVaR,
VaR[i] - 0.5 * mean(((VaR[i]-X) + abs(VaR[i]-X))) / alpha )
}
}
# Return Value:
CVaR
}
################################################################################
fExtremes/R/zzz.R 0000644 0001762 0000144 00000003555 13202323736 013406 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
################################################################################
.onAttach <-
function(libname, pkgname)
{
# do whatever needs to be done when the package is loaded
# some people use it to bombard users with
# messages using
# packageStartupMessage( "\n" )
# packageStartupMessage( "Rmetrics Package fExtremes" )
# packageStartupMessage( "Modelling Extremes in Finance" )
# packageStartupMessage( "Copyright (C) 2005-2014 Rmetrics Association Zurich" )
# packageStartupMessage( "Educational Software for Financial Engineering and Computational Science" )
# packageStartupMessage( "Rmetrics is free software and comes with ABSOLUTELY NO WARRANTY." )
# packageStartupMessage( "https://www.rmetrics.org --- Mail to: info@rmetrics.org" )
# # packageStartupMessage("Documentation: www.rmetrics.org/ebooks-portfolio" )
# # packageStartupMessage("Rmetrics User/Developer Workshop and Summer School 2012\n" )
# # packageStartupMessage(" June 24-28, 2012 - Meielisalp, Lake Thune, Switzerland\n\n" )
}
################################################################################
fExtremes/R/DataPreprocessing.R 0000644 0001762 0000144 00000021115 12323220004 016141 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
################################################################################
# FUNCTION? DESCRIPTION:
# blockMaxima Returns block maxima from a time series
# findThreshold Upper threshold for a given number of extremes
# pointProcess Returns peaks over a threshold from a time series
# deCluster Declusters a point process
################################################################################
blockMaxima <-
function (x, block = c("monthly", "quarterly"), doplot = FALSE)
{
# A function implemented by Diethelm Wuertz
# Description:
# Compute block maxima from a time series or numeric vector
# Arguments:
# x - an univariate 'timeSeries' object or any other object
# which can be coerced in a numeric vector by the function
# as.vector().
# block - block size, either a "monthl" or "quarterly"
# calendrical block, or an integer value, specifying the
# length of the block.
# Note:
# This function was implemented for daily recorded data sets.
# Example:
# data(bmwRet)
# blockMaxima(bmwRet, 200)
# data(bmwRet); x = bmwRet[5100:5280, ]; x; block = "monthly"
# FUNCTION:
# Check Type:
if (class(x) == "timeSeries") {
stopifnot(isUnivariate(x))
} else {
x = as.vector(x)
stopifnot(is.numeric(block[1]))
}
# Maxima:
if (is.numeric(block[1])) {
block = block[1]
} else {
block = match.arg(block)
}
if (is(x, "timeSeries")) {
if (is.numeric(block)) {
from = blockStart(time(x), block = block)
to = blockEnd(time(x), block = block)
} else if (block == "monthly") {
from = unique(timeFirstDayInMonth(time(x)))
to = unique(timeLastDayInMonth(time(x)))
} else if (block == "quarterly") {
from = unique(timeFirstDayInQuarter(time(x)))
to = unique(timeLastDayInQuarter(time(x)))
} else {
stop("Unknown block size for timeSeries Object")
}
maxValue = applySeries(x, from, to, FUN = max)
maxIndex = as.matrix(applySeries(x, from, to, FUN = which.max))
toIndex = as.matrix(applySeries(x, from, to, FUN = length))
# maxPosition = rownames(series(x))[cumsum(toIndex)-toIndex+maxIndex-1]
maxPosition = rownames(series(x))[cumsum(toIndex)-toIndex+maxIndex]
# Add Attributes: Update rownames, colnames and recordIDs
rownames(maxValue) <- as.character(maxPosition)
colnames(maxValue) <- paste("max.", x@units, sep = "")
maxValue@recordIDs = data.frame(
from = as.character(from),
to = as.character(to),
cumsum(toIndex)-toIndex+maxIndex )
} else {
if (is.numeric(block)) {
data = as.vector(x)
nblocks = (length(data) %/% block) + 1
grouping = rep(1:nblocks, rep(block, nblocks))[1:length(data)]
maxValue = as.vector(tapply(data, grouping, FUN = max))
maxIndex = as.vector(tapply(as.vector(data), grouping, FUN = which.max))
names(maxValue) = paste(maxIndex)
} else {
stop("For non-timeSeries Objects blocks must be numeric")
}
}
if (doplot) {
plot(maxValue, type = "h", col = "steelblue", main = "Block Maxima")
grid()
}
# Return Value:
maxValue
}
# ------------------------------------------------------------------------------
findThreshold =
function(x, n = floor(0.05*length(as.vector(x))), doplot = FALSE)
{
# A function implemented by Diethelm Wuertz
# Description:
# Upper threshold for a given number of extremes
# Arguments:
# x - an univariate 'timeSeries' object or any other object
# which can be coerced in a numeric vector by the function
# as.vector().
# n - a numeric value giving number of extremes
# above the threshold, by default 5%.
# Example:
# findThreshold(x = as.timeSeries(data(bmwRet)),
# n = floor(c(0.05, 0.10)*length(as.vector(x))))
# FUNCTION:
# Check Type:
if (class(x) == "timeSeries") {
stopifnot(isUnivariate(x))
} else {
x = as.vector(x)
}
# Threshold:
X = rev(sort(as.vector(x)))
thresholds = unique(X)
indices = match(X[n], thresholds)
indices = pmin(indices + 1, length(thresholds))
# Result:
ans = thresholds[indices]
names(ans) = paste("n=", as.character(n), sep = "")
# Plot:
if (doplot) {
plot(x, type = "h", col = "steelblue", main = "Threshold Value")
grid()
rug(as.vector(x), ticksize = 0.01, side = 4)
for (u in ans) abline (h = u, lty = 3, col = "red")
}
# Return Value:
ans
}
# ------------------------------------------------------------------------------
pointProcess =
function(x, u = quantile(x, 0.95), doplot = FALSE)
{
# A function implemented by Diethelm Wuertz
# Description:
# Returns peaks over a threshold from a time series
# Arguments:
# x - an univariate 'timeSeries' object or any other object
# which can be coerced in a numeric vector by the function
# as.vector().
# u - threshold value
# Examples:
# pointProcess(as.timeSeries(data(daxRet)))
# Point Process:
CLASS = class(x)
if (CLASS == "timeSeries") {
stopifnot(isUnivariate(x))
X = x[x > u,]
} else {
X = as.vector(x)
X = X[X > u]
N = length(x)
IDX = (1:N)[x > u]
attr(X, "index") <- IDX
}
# Plot:
if (doplot) {
if (CLASS == "timeSeries") {
plot(X, type = "h", xlab = "Series")
} else {
plot(IDX, X, type = "h", xlab = "Series")
}
mText = paste("Threshold =", u, "| N =", length(as.vector(X)))
mtext(mText, side = 4, cex = 0.7, col = "grey")
abline(h = u, lty = 3, col = "red")
title(main = "Point Process")
grid()
}
# Return Value:
X
}
# ------------------------------------------------------------------------------
deCluster =
function(x, run = 20, doplot = TRUE)
{
# A function implemented by Diethelm Wuertz
# Description:
# Decluster a Point Process.
# Arguments:
# x - an univariate 'timeSeries' object
# Example:
# deCluster(pointProcess(as.timeSeries(daxRet)))
# FUNCTION:
# Check:
stopifnot(class(x) == "timeSeries")
stopifnot(isUnivariate(x))
# Decluster time Series:
positions = time(x)
data = series(x)
gapLengths = c(0, diff(positions)) # / (24*3600)
clusterNumbers = cumsum(gapLengths > run) + 1
N = length(data)
fromIndex = (1:N)[c(1, diff(clusterNumbers)) == 1]
toIndex = c(fromIndex[-1]-1, N)
from = positions[fromIndex]
to = positions[toIndex]
# Maximum Values:
maxValue = applySeries(x, from, to, FUN = max)
maxIndex = as.matrix(applySeries(x, from, to, FUN = which.max))
lengthIndex = as.matrix(applySeries(x, from, to, FUN = length))
maxPosition = rownames(series(x))[cumsum(lengthIndex)-lengthIndex+maxIndex]
# Add Attributes: Update rownames, colnames and recordIDs
rownames(maxValue) = rownames(maxValue) =
as.character(maxPosition)
colnames(maxValue) = colnames(maxValue) =
paste("max.", x@units, sep = "")
maxValue@recordIDs = data.frame(
from = as.character(from),
to = as.character(to) )
# Plot:
if (doplot) {
plot(maxValue, type = "h", xlab = "Series")
title(main = "Declustered Point Process")
mText = paste("Run Length =", run, "| N =", length(as.vector(maxValue)))
mtext(mText, side = 4, cex = 0.7, col = "grey")
abline(h = min(as.vector(maxValue)), lty = 3, col = "red")
grid()
}
# Return Value:
maxValue
}
################################################################################
fExtremes/R/GpdSummary.R 0000644 0001762 0000144 00000004407 12323220004 014621 0 ustar ligges users
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
################################################################################
# METHODS: PRINT, PLOT, AND SUMMARY:
# summary.fGPDFIT S3 Summary Method for object of class "fGPDFIT"
################################################################################
summary.fGPDFIT =
function(object, doplot = TRUE, which = "all", ...)
{ # A function written by Diethelm Wuertz
# Description:
# Summary method for objects of class "gpdFit"
# Arguments:
# FUNCTION:
# Title:
cat("\nTitle:\n" , object@title, "\n")
# Function Call:
cat("\nCall:\n")
cat(paste(deparse(object@call), sep = "\n",
collapse = "\n"), "\n", sep = "")
# Estimation Type:
cat("\nEstimation Type:\n ", object@method, "\n")
# Estimated Parameters:
cat("\nEstimated Parameters:\n")
print(object@fit$par.ests)
# Summary - For MLE print additionally:
if (object@method[2] == "mle") {
cat("\nStandard Deviations:\n"); print(object@fit$par.ses)
if (!is.na(object@fit$llh))
cat("\nLog-Likelihood Value:\n ", object@fit$llh, "\n")
if (!is.na(object@fit$convergence))
cat("\nType of Convergence:\n ", object@fit$convergence, "\n")
}
# Plot:
if (doplot) {
plot(object, which = which, ...)
}
# Desription:
cat("\nDescription\n ", object@description, "\n\n")
# Return Value:
invisible(object)
}
################################################################################
fExtremes/MD5 0000644 0001762 0000144 00000005607 13203520003 012520 0 ustar ligges users 8f23146c12b8b6957d6b2ddbc2ee30c3 *ChangeLog
0ba152f26445dbe7cd65b4a2f60ad8da *DESCRIPTION
f4b3f22b776f1bfe7de2a986067df082 *NAMESPACE
b0496cc5388d91d3b6135eb66a1965d1 *R/DataPreprocessing.R
14d35601f9078cd7b60b3b0e83dbfa25 *R/ExtremeIndex.R
110122200f4fece7acd844e27248a8dc *R/ExtremesData.R
6a13bc0742419999232390871e92d301 *R/GevDistribution.R
c31e7ed7d662bc6510ce3767599d58d3 *R/GevFit.R
723138ddd14a272c6c6eb03cf4cca5de *R/GevMdaEstimation.R
a975cde7990002133728f0876b3a55cc *R/GevPrintPlotSummary.R
5dcce906ce1c4e794f48fb775414b0dd *R/GevRisk.R
5ad9f923fa3a6d9d22990ee93a51d251 *R/GevSim.R
512ce05b3576ca3abedf8ca2dd55b4f2 *R/GpdDistribution.R
7ec085102d4bf59dadf279a1ec57545e *R/GpdFit.R
c2de8f0daa283e46cded29f6752561b1 *R/GpdPlot.R
4bdc9bdc1763fc063c768e5f73772218 *R/GpdRisk.R
1386d919c59b76dc9ec8ffab0eb3acc8 *R/GpdShow.R
b790b17afe8a9fc642263d9d226723c7 *R/GpdSim.R
11aba9bc6b7051e535c17b1629559dc1 *R/GpdSow.R
b6206c9cc78ddff7436b9459439ae685 *R/GpdSummary.R
e81042f54d1f4c298106257d88956273 *R/MeanExcessFit.R
c3478f0ebc1fbeefce8fcd39d9a6933d *R/ValueAtRisk.R
2717fc29227f4154e68b1baf36c2fe3c *R/meanExcessPlot.R
e3faa8aba12c0b0d6a1e64c39ff3095b *R/metrics.R
1e141bc51586b3c49fea4c3627dd4034 *R/zzz.R
1ee0fad00bab85f51ec7945e1d5ce861 *data/bmwRet.csv
9666f10bfd745b92382bacc25f0a6e5f *data/danishClaims.csv
6042b9c5e5bec3ecc1b6959cd2858b64 *inst/COPYRIGHT.html
e278deadbe366f8e25fb878bf5c05c7c *inst/unitTests/Makefile
ef6862244177aa0c9690e037b2823bbd *inst/unitTests/runTests.R
f0e530000f96bc971e3fb89a25272c17 *inst/unitTests/runit.DataPreprocessing.R
3d8fa2217c7cdf803edc8cb3f531ad9c *inst/unitTests/runit.ExtremeIndex.R
5c4d0101ecf88db0530fd53f5c2f7b32 *inst/unitTests/runit.ExtremesData.R
df54978979460d89018b2c7e8d9ed82e *inst/unitTests/runit.GevDistribution.R
aeed009908a914715e5d4947d8c4e098 *inst/unitTests/runit.GevMdaEstimation.R
2cb05c2f27012611715b74e9daf89ba0 *inst/unitTests/runit.GevModelling.R
553d134fc982fe578b1c4013b728a50e *inst/unitTests/runit.GevRisk.R
9f0952a7794071690346f36d017c8c7f *inst/unitTests/runit.GpdDistribution.R
9ccbeecb2cd8580869caac1b8dae64c6 *inst/unitTests/runit.GpdModelling.R
69a26b861bd2d71074818864bd74029a *inst/unitTests/runit.GpdRisk.R
63e7f709080902a953c5eafd95f4ec8b *man/00Extremes-package.Rd
e6e5619fd05d40ead76567d3db8c6afc *man/DataPreprocessing.Rd
889ac9f50477b81bd1e5f26e54f08e47 *man/ExtremeIndex.Rd
053bd8de255d74a0c1dfd70121968a33 *man/ExtremesData.Rd
92957faa1992251453a248bca84052bc *man/GevDistribution.Rd
45054a04d74c5dc6bb8fe4d063716779 *man/GevMdaEstimation.Rd
2cb16bcd6748e1b232bde82f6dc7ae0a *man/GevModelling.Rd
ba2f4fb3503eca13e674108cfe8634f3 *man/GevRisk.Rd
bf840a931840784b022298a7f530bc4c *man/GpdDistribution.Rd
ece6d6aaabd8a777f0ccce399af7c7aa *man/GpdModelling.Rd
1828c67556c2c7ebf111064d91126782 *man/GpdRisk.Rd
79605e94b04f8ac2e743bd30d4d44e58 *man/ValueAtRisk.Rd
246ce117b00d8707bef1634cb9768a5a *man/data.Rd
ca566e590ec30abd0718c5375e1a446f *tests/doRUnit.R
fExtremes/DESCRIPTION 0000644 0001762 0000144 00000001545 13203520003 013713 0 ustar ligges users Package: fExtremes
Title: Rmetrics - Modelling Extreme Events in Finance
Date: 2017-11-12
Version: 3042.82
Author: Diethelm Wuertz [aut],
Tobias Setz [cre],
Yohan Chalabi [ctb]
Maintainer: Tobias Setz
Description: Provides functions for analysing
and modelling extreme events in financial time Series. The
topics include: (i) data pre-processing, (ii) explorative
data analysis, (iii) peak over threshold modelling, (iv) block
maxima modelling, (v) estimation of VaR and CVaR, and (vi) the
computation of the extreme index.
Depends: R (>= 2.15.1), timeDate, timeSeries, fBasics, fGarch
Imports: methods, graphics, stats
Suggests: RUnit, tcltk
LazyData: yes
License: GPL (>= 2)
URL: http://www.rmetrics.org
NeedsCompilation: no
Packaged: 2017-11-17 06:59:49 UTC; Tobias Setz
Repository: CRAN
Date/Publication: 2017-11-17 08:38:27 UTC
fExtremes/ChangeLog 0000644 0001762 0000144 00000003636 12212357012 013771 0 ustar ligges users 2013-04-30 chalabi
* DESCRIPTION, inst/unitTests/runit.GevModelling.R: Updating unit
tests
2013-04-02 chalabi
* R/zzz.R: removed .First.lib()
* ChangeLog, DESCRIPTION: Updated ChangeLog and DESC files
* DESCRIPTION: Updated version number.
* inst/unitTests/runit.GevModelling.R: Updated unit test to avoid
troubles when running in the last two days of the month as
reported by Brian Ripley.
2012-12-01 chalabi
* ChangeLog, DESCRIPTION: Updated ChangeLog and DESCRIPTION files.
2012-11-30 chalabi
* DESCRIPTION: Updated version number.
* NAMESPACE: Added NAMESPACE
* DESCRIPTION: Updated maintainer field.
* R/ExtremeIndex.R, R/GevMdaEstimation.R, R/GpdRisk.R: Fixed
partial argument match.
* inst/unitTests/runit.GevModelling.R: Updated unit test to avoid
troubles when running in the last two days of the month as
reported by Brian Ripley.
2011-09-23 mmaechler
* DESCRIPTION: remove deprecated "LazyLoad" entry
2010-07-23 chalabi
* inst/DocCopying.pdf: removed DocCopying.pdf license is already
specified in DESCRIPTION file
2009-10-01 chalabi
* DESCRIPTION: updated version number
2009-09-29 chalabi
* ChangeLog, DESCRIPTION: updated DESC and ChangeLog
2009-05-21 chalabi
* R/GevFit.R: assignment beta = fit$par.ests["xi"] should read :
beta =
fit$par.ests["beta"]. (Dodzi Attimu)
2009-04-09 wuertz
* R/DataPreprocessing.R, R/GevDistribution.R, R/GevFit.R,
R/GevPrintPlotSummary.R, R/GevSim.R, R/GpdDistribution.R,
R/GpdSim.R, R/GpdSow.R, R/MeanExcessFit.R, R/ValueAtRisk.R,
man/DataPreprocessing.Rd, man/GevDistribution.Rd,
man/GevModelling.Rd: The *Sim functions now return signal
timeSeries, and some smaller beautifies
2009-04-02 chalabi
* DESCRIPTION: more explicit depends and suggests field in DESC
file.
2009-04-01 chalabi
* DESCRIPTION: updated DESC file
2009-01-28 chalabi
* man/ExtremeIndex.Rd: updated manual pages to new Rd parser
fExtremes/man/ 0000755 0001762 0000144 00000000000 13203504345 012766 5 ustar ligges users fExtremes/man/GpdModelling.Rd 0000644 0001762 0000144 00000022413 12323220004 015611 0 ustar ligges users \name{GpdModelling}
\alias{GpdModelling}
\alias{fGPDFIT}
\alias{fGPDFIT-class}
\alias{show,fGPDFIT-method}
\alias{gpdSim}
\alias{gpdFit}
\alias{plot.fGPDFIT}
\alias{summary.fGPDFIT}
\title{GPD Distributions for Extreme Value Theory}
\description{
A collection and description to functions to fit and to simulate
processes that are generated from the generalized Pareto distribution.
Two approaches for parameter estimation are provided: Maximum
likelihood estimation and the probability weighted moment method.
\cr
The GPD modelling functions are:
\tabular{ll}{
\code{gpdSim} \tab generates data from the GPD, \cr
\code{gpdFit} \tab fits empirical or simulated data to the distribution, \cr
\code{print} \tab print method for a fitted GPD object of class ..., \cr
\code{plot} \tab plot method for a fitted GPD object, \cr
\code{summary} \tab summary method for a fitted GPD object. }
}
\usage{
gpdSim(model = list(xi = 0.25, mu = 0, beta = 1), n = 1000,
seed = NULL)
gpdFit(x, u = quantile(x, 0.95), type = c("mle", "pwm"), information =
c("observed", "expected"), title = NULL, description = NULL, \dots)
\S4method{show}{fGPDFIT}(object)
\method{plot}{fGPDFIT}(x, which = "ask", \dots)
\method{summary}{fGPDFIT}(object, doplot = TRUE, which = "all", \dots)
}
\arguments{
\item{description}{
a character string which allows for a brief description.
}
\item{doplot}{
a logical. Should the results be plotted?
}
\item{information}{
whether standard errors should be calculated with
\code{"observed"} or \code{"expected"} information. This only applies
to the maximum likelihood method; for the probability-weighted moments
method \code{"expected"} information is used if possible.
}
\item{model}{
[gpdSim] - \cr
a list with components \code{shape}, \code{location} and
\code{scale} giving the parameters of the GPD distribution.
By default the shape parameter has the value 0.25, the
location is zero and the scale is one.}
\item{n}{
[rgpd][gpdSim\ - \cr
the number of observations to be generated.
}
\item{object}{
[summary] - \cr
a fitted object of class \code{"gpdFit"}.
}
\item{seed}{
[gpdSim] - \cr
an integer value to set the seed for the random number generator.
}
\item{title}{
a character string which allows for a project title.
}
\item{type}{
a character string selecting the desired estimation mehtod, either
\code{"mle"} for the maximum likelihood mehtod or \code{"pwm"} for
the probability weighted moment method. By default, the first will
be selected. Note, the function \code{gpd} uses \code{"ml"}.
}
\item{u}{
the threshold value.
}
\item{which}{
if \code{which} is set to \code{"ask"} the function will
interactively ask which plot should be displayed. By default
this value is set to \code{FALSE} and then those plots will
be displayed for which the elements in the logical vector
\code{which} ar set to \code{TRUE}; by default all four
elements are set to \code{"all"}.
}
\item{x}{
[dgpd] - \cr
a numeric vector of quantiles.
\cr
[gpdFit] - \cr
the data vector. Note, there are two different names
for the first argument \code{x} and \code{data} depending
which function name is used, either \code{gpdFit} or the
EVIS synonyme \code{gpd}.
\cr
[print][plot] - \cr
a fitted object of class \code{"gpdFit"}.
}
\item{xi, mu, beta}{
\code{xi} is the shape parameter,
\code{mu} the location parameter,
and \code{beta} is the scale parameter.
}
\item{\dots}{
control parameters and plot parameters optionally passed to the
optimization and/or plot function. Parameters for the optimization
function are passed to components of the \code{control} argument of
\code{optim}.
}
}
\value{
\code{gpdSim}
\cr
returns a vector of datapoints from the simulated
series.
\code{gpdFit}
\cr
returns an object of class \code{"gpd"} describing the
fit including parameter estimates and standard errors.
\code{gpdQuantPlot}
\cr
returns invisible a table of results.
\code{gpdShapePlot}
\cr
returns invisible a table of results.
\code{gpdTailPlot}
\cr
returns invisible a list object containing
details of the plot is returned invisibly. This object should be
used as the first argument of \code{gpdqPlot} or \code{gpdsfallPlot}
to add quantile estimates or expected shortfall estimates to the
plot.
}
\details{
\bold{Generalized Pareto Distribution:}
\cr\cr
Compute density, distribution function, quantile function and
generates random variates for the Generalized Pareto Distribution.
\bold{Simulation:}
\cr\cr
\code{gpdSim} simulates data from a Generalized Pareto
distribution.
\cr
\bold{Parameter Estimation:}
\cr\cr
\code{gpdFit} fits the model parameters either by the probability
weighted moment method or the maxim log likelihood method.
The function returns an object of class \code{"gpd"}
representing the fit of a generalized Pareto model to excesses over
a high threshold. The fitting functions use the probability weighted
moment method, if method \code{method="pwm"} was selected, and the
the general purpose optimization function \code{optim} when the
maximum likelihood estimation, \code{method="mle"} or \code{method="ml"}
is chosen.
\cr
\bold{Methods:}
\cr\cr
\code{print.gpd}, \code{plot.gpd} and \code{summary.gpd} are print,
plot, and summary methods for a fitted object of class \code{gpdFit}.
The plot method provides four different plots for assessing fitted
GPD model.
\cr
\bold{gpd* Functions:}
\cr\cr
\code{gpdqPlot} calculates quantile estimates and confidence intervals
for high quantiles above the threshold in a GPD analysis, and adds a
graphical representation to an existing plot. The GPD approximation in
the tail is used to estimate quantile. The \code{"wald"} method uses
the observed Fisher information matrix to calculate confidence interval.
The \code{"likelihood"} method reparametrizes the likelihood in terms
of the unknown quantile and uses profile likelihood arguments to
construct a confidence interval.
\cr
\code{gpdquantPlot} creates a plot showing how the estimate of a
high quantile in the tail of a dataset based on the GPD approximation
varies with threshold or number of extremes. For every model
\code{gpdFit} is called. Evaluation may be slow. Confidence intervals
by the Wald method may be fastest.
\cr
\code{gpdriskmeasures} makes a rapid calculation of point estimates
of prescribed quantiles and expected shortfalls using the output of the
function \code{gpdFit}. This function simply calculates point estimates
and (at present) makes no attempt to calculate confidence intervals for
the risk measures. If confidence levels are required use \code{gpdqPlot}
and \code{gpdsfallPlot} which interact with graphs of the tail of a loss
distribution and are much slower.
\cr
\code{gpdsfallPlot} calculates expected shortfall estimates, in other
words tail conditional expectation and confidence intervals for high
quantiles above the threshold in a GPD analysis. A graphical
representation to an existing plot is added. Expected shortfall is
the expected size of the loss, given that a particular quantile of the
loss distribution is exceeded. The GPD approximation in the tail is used
to estimate expected shortfall. The likelihood is reparametrised in
terms of the unknown expected shortfall and profile likelihood arguments
are used to construct a confidence interval.
\cr
\code{gpdshapePlot} creates a plot showing how the estimate of shape
varies with threshold or number of extremes. For every model
\code{gpdFit} is called. Evaluation may be slow.
\cr
\code{gpdtailPlot} produces a plot of the tail of the underlying
distribution of the data.
}
\author{
Alec Stephenson for the functions from R's \code{evd} package, \cr
Alec Stephenson for the functions from R's \code{evir} package, \cr
Alexander McNeil for the EVIS functions underlying the \code{evir} package, \cr
Diethelm Wuertz for this \R-port.
}
\references{
Embrechts, P., Klueppelberg, C., Mikosch, T. (1997);
\emph{Modelling Extremal Events}, Springer.
Hosking J.R.M., Wallis J.R., (1987);
\emph{Parameter and quantile estimation for the generalized
Pareto distribution},
Technometrics 29, 339--349.
}
\examples{
## gpdSim -
x = gpdSim(model = list(xi = 0.25, mu = 0, beta = 1), n = 1000)
## gpdFit -
par(mfrow = c(2, 2), cex = 0.7)
fit = gpdFit(x, u = min(x), type = "pwm")
print(fit)
summary(fit)
}
\keyword{distribution}
fExtremes/man/GevMdaEstimation.Rd 0000644 0001762 0000144 00000020527 11645005146 016466 0 ustar ligges users \name{GevMdaEstimation}
\alias{GevMdaEstimation}
\alias{hillPlot}
\alias{shaparmPlot}
\alias{shaparmPickands}
\alias{shaparmHill}
\alias{shaparmDEHaan}
\title{Generalized Extreme Value Modelling}
\description{
A collection and description functions to estimate
the parameters of the GEV distribution. To model
the GEV three types of approaches for parameter
estimation are provided: Maximum likelihood
estimation, probability weighted moment method,
and estimation by the MDA approach. MDA includes
functions for the Pickands, Einmal-Decker-deHaan,
and Hill estimators together with several plot
variants.
\cr
Maximum Domain of Attraction estimators:
\tabular{ll}{
\code{hillPlot} \tab shape parameter and Hill estimate of the tail index, \cr
\code{shaparmPlot} \tab variation of shape parameter with tail depth. }
}
\usage{
hillPlot(x, start = 15, ci = 0.95,
doplot = TRUE, plottype = c("alpha", "xi"), labels = TRUE, \dots)
shaparmPlot(x, p = 0.01*(1:10), xiRange = NULL, alphaRange = NULL,
doplot = TRUE, plottype = c("both", "upper"))
shaparmPickands(x, p = 0.05, xiRange = NULL,
doplot = TRUE, plottype = c("both", "upper"), labels = TRUE, \dots)
shaparmHill(x, p = 0.05, xiRange = NULL,
doplot = TRUE, plottype = c("both", "upper"), labels = TRUE, \dots)
shaparmDEHaan(x, p = 0.05, xiRange = NULL,
doplot = TRUE, plottype = c("both", "upper"), labels = TRUE, \dots)
}
\arguments{
\item{alphaRange, xiRange}{
[saparmPlot] - \cr
plotting ranges for \code{alpha} and \code{xi}. By default the
values are automatically selected.
}
\item{ci}{
[hillPlot] - \cr
probability for asymptotic confidence band; for no
confidence band set \code{ci} to zero.
}
\item{doplot}{
a logical. Should the results be plotted?
\cr
[shaparmPlot] - \cr
a vector of logicals of the same lengths as tails
defining for wich tail depths plots should be created,
by default plots will be generated for a tail depth of 5
percent. By default \code{c(FALSE, FALSE, FALSE, FALSE,
TRUE, FALSE, FALSE, FALSE, FALSE, FALSE)}.
}
\item{labels}{
[hillPlot] - \cr
whether or not axes should be labelled.
}
\item{plottype}{
[hillPlot] - \cr
whether \code{alpha}, \code{xi} (1/alpha) or
\code{quantile} (a quantile estimate) should be plotted.
}
\item{p}{
[qgev] - \cr
a numeric vector of probabilities.
[hillPlot] - \cr
probability required when option \code{quantile} is
chosen.
}
\item{start}{
[hillPlot] - \cr
lowest number of order statistics at which to plot
a point.
}
\item{x}{
[dgev][devd] - \cr
a numeric vector of quantiles.
\cr
[gevFit] - \cr
data vector. In the case of \code{method="mle"} the interpretation
depends on the value of block: if no block size is specified then
data are interpreted as block maxima; if block size is set, then data
are interpreted as raw data and block maxima are calculated.
\cr
[hillPlot][shaparmPlot] - \cr
the data from which to calculate the shape parameter, a
numeric vector.
\cr
[print][plot] - \cr
a fitted object of class \code{"gevFit"}.
}
\item{\dots}{
[gevFit] - \cr
control parameters optionally passed to the
optimization function. Parameters for the optimization
function are passed to components of the \code{control} argument of
\code{optim}.
\cr
[hillPlot] - \cr
other graphics parameters.
\cr
[plot][summary] - \cr
arguments passed to the plot function.
}
}
\value{
\code{gevSim}
\cr
returns a vector of data points from the simulated series.
\cr
\code{gevFit}
\cr
returns an object of class \code{gev} describing the fit.
\cr
\code{print.summary}
\cr
prints a report of the parameter fit.
\cr
\code{summary}
\cr
performs diagnostic analysis. The method provides two different
residual plots for assessing the fitted GEV model.
\cr
\code{gevrlevelPlot}
\cr
returns a vector containing the lower 95\% bound of the confidence
interval, the estimated return level and the upper 95\% bound.
\cr
\code{hillPlot}
\cr
displays a plot.
\cr
\code{shaparmPlot}
\cr
returns a list with one or two entries, depending on the
selection of the input variable \code{both.tails}. The two
entries \code{upper} and \code{lower} determine the position of
the tail. Each of the two variables is again a list with entries
\code{pickands}, \code{hill}, and \code{dehaan}. If one of the
three methods will be discarded the printout will display zeroes.
}
\details{
\bold{Parameter Estimation:}
\cr\cr
\code{gevFit} and \code{gumbelFit} estimate the parameters either
by the probability weighted moment method, \code{method="pwm"} or
by maximum log likelihood estimation \code{method="mle"}. The
summary method produces diagnostic plots for fitted GEV or Gumbel
models.
\cr
\bold{Methods:}
\cr\cr
\code{print.gev}, \code{plot.gev} and \code{summary.gev} are
print, plot, and summary methods for a fitted object of class
\code{gev}. Concerning the summary method, the data are
converted to unit exponentially distributed residuals under null
hypothesis that GEV fits. Two diagnostics for iid exponential data
are offered. The plot method provides two different residual plots
for assessing the fitted GEV model. Two diagnostics for
iid exponential data are offered.
\cr
\bold{Return Level Plot:}
\cr\cr
\code{gevrlevelPlot} calculates and plots the k-block return level
and 95\% confidence interval based on a GEV model for block maxima,
where \code{k} is specified by the user. The k-block return level
is that level exceeded once every \code{k} blocks, on average. The
GEV likelihood is reparameterized in terms of the unknown return
level and profile likelihood arguments are used to construct a
confidence interval.
\cr
\bold{Hill Plot:}
\cr\cr
The function \code{hillPlot} investigates the shape parameter and
plots the Hill estimate of the tail index of heavy-tailed data, or
of an associated quantile estimate. This plot is usually calculated
from the alpha perspective. For a generalized Pareto analysis of
heavy-tailed data using the \code{gpdFit} function, it helps to
plot the Hill estimates for \code{xi}.
\cr
\bold{Shape Parameter Plot:}
\cr\cr
The function \code{shaparmPlot} investigates the shape parameter and
plots for the upper and lower tails the shape parameter as a function
of the taildepth. Three approaches are considered, the \emph{Pickands}
estimator, the \emph{Hill} estimator, and the
\emph{Decker-Einmal-deHaan} estimator.
}
\note{
\bold{GEV Parameter Estimation:}
\cr\cr
If method \code{"mle"} is selected the parameter fitting in \code{gevFit}
is passed to the internal function \code{gev.mle} or \code{gumbel.mle}
depending on the value of \code{gumbel}, \code{FALSE} or \code{TRUE}.
On the other hand, if method \code{"pwm"} is selected the parameter
fitting in \code{gevFit} is passed to the internal function
\code{gev.pwm} or \code{gumbel.pwm} again depending on the value of
\code{gumbel}, \code{FALSE} or \code{TRUE}.
}
\references{
Coles S. (2001);
\emph{Introduction to Statistical Modelling of Extreme Values},
Springer.
Embrechts, P., Klueppelberg, C., Mikosch, T. (1997);
\emph{Modelling Extremal Events},
Springer.
}
\author{
Alec Stephenson for R's \code{evd} and \code{evir} package, and \cr
Diethelm Wuertz for this \R-port.
}
\examples{
## Load Data:
x = as.timeSeries(data(danishClaims))
colnames(x) <- "Danish"
head(x)
## hillPlot -
# Hill plot of heavy-tailed Danish fire insurance data
par(mfrow = c(1, 1))
hillPlot(x, plottype = "xi")
grid()
}
\keyword{models}
fExtremes/man/ValueAtRisk.Rd 0000644 0001762 0000144 00000002502 11645005146 015451 0 ustar ligges users \name{ValueAtRisk}
\alias{ValueAtRisk}
\alias{VaR}
\alias{CVaR}
\title{Value-at-Risk}
\description{
A collection and description of functions to compute
Value-at-Risk and conditional Value-at-Risk
\cr
The functiona are:
\tabular{ll}{
\code{VaR} \tab Computes Value-at-Risk, \cr
\code{CVaR} \tab Computes conditional Value-at-Risk. }
}
\usage{
VaR(x, alpha = 0.05, type = "sample", tail = c("lower", "upper"))
CVaR(x, alpha = 0.05, type = "sample", tail = c("lower", "upper"))
}
\arguments{
\item{x}{
an uni- or multivariate timeSeries object
}
\item{alpha}{
a numeric value, the confidence interval.
}
\item{type}{
a character string, the type to calculate the value-at-risk.
}
\item{tail}{
a character string denoting which tail will be
considered, either \code{"lower"} or \code{"upper"}.
If \code{tail="lower"}, then alpha will be converted to
\code{alpha=1-alpha}.
}
}
\value{
\code{VaR}\cr
\code{CVaR}\cr
\cr
returns a numeric vector or value with the (conditional) value-at-risk
for each time series column.
}
\seealso{
\code{hillPlot},
\code{gevFit}.
}
\author{
Diethelm Wuertz for this \R-port.
}
\keyword{models}
fExtremes/man/DataPreprocessing.Rd 0000644 0001762 0000144 00000014004 13203503230 016661 0 ustar ligges users \name{DataPreprocessing}
\alias{DataPreprocessing}
\alias{blockMaxima}
\alias{findThreshold}
\alias{pointProcess}
\alias{deCluster}
\title{Extremes Data Preprocessing}
\description{
A collection and description of functions for data
preprocessing of extreme values. This includes tools
to separate data beyond a threshold value, to compute
blockwise data like block maxima, and to decluster
point process data.
\cr
The functions are:
\tabular{ll}{
\code{blockMaxima} \tab Block Maxima from a vector or a time series, \cr
\code{findThreshold} \tab Upper threshold for a given number of extremes, \cr
\code{pointProcess} \tab Peaks over Threshold from a vector or a time series, \cr
\code{deCluster} \tab Declusters clustered point process data. }
}
\usage{
blockMaxima(x, block = c("monthly", "quarterly"), doplot = FALSE)
findThreshold(x, n = floor(0.05*length(as.vector(x))), doplot = FALSE)
pointProcess(x, u = quantile(x, 0.95), doplot = FALSE)
deCluster(x, run = 20, doplot = TRUE)
}
\arguments{
\item{block}{
the block size. A numeric value is interpreted as the number
of data values in each successive block. All the data is used,
so the last block may not contain \code{block} observations.
If the \code{data} has a \code{times} attribute containing (in
an object of class \code{"POSIXct"}, or an object that can be
converted to that class, see \code{\link{as.POSIXct}}) the
times/dates of each observation, then \code{block} may instead
take the character values \code{"month"}, \code{"quarter"},
\code{"semester"} or \code{"year"}. By default monthly blocks
from daily data are assumed.
}
\item{doplot}{
a logical value. Should the results be plotted? By
default \code{TRUE}.
}
\item{n}{
a numeric value or vector giving number of extremes above
the threshold. By default, \code{n} is
set to an integer representing 5\% of the data from the
whole data set \code{x}.
}
\item{run}{
parameter to be used in the runs method; any two consecutive
threshold exceedances separated by more than this number of
observations/days are considered to belong to different clusters.
}
\item{u}{
a numeric value at which level the data are to be truncated. By
default the threshold value which belongs to the 95\% quantile,
\code{u=quantile(x,0.95)}.
}
\item{x}{
a numeric data vector from which \code{findThreshold} and
\code{blockMaxima} determine the threshold values and block
maxima values.
For the function \code{deCluster} the argument
\code{x} represents a numeric vector of threshold exceedances
with a \code{times} attribute which should be a numeric
vector containing either the indices or the times/dates
of each exceedance (if times/dates, the attribute should
be an object of class \code{"POSIXct"} or an object that
can be converted to that class; see \code{\link{as.POSIXct}}).
}
}
\details{
\bold{Computing Block Maxima:}
\cr\cr
The function \code{blockMaxima} calculates block maxima from a vector
or a time series, whereas the function
\code{blocks} is more general and allows for the calculation of
an arbitrary function \code{FUN} on blocks.
\cr
\bold{Finding Thresholds:}
\cr\cr
The function \code{findThreshold} finds a threshold so that a given
number of extremes lie above. When the data are tied a threshold is
found so that at least the specified number of extremes lie above.
\cr
\bold{De-Clustering Point Processes:}
\cr\cr
The function \code{deCluster} declusters clustered point process
data so that Poisson assumption is more tenable over a high threshold.
}
\value{
\code{blockMaxima}
\cr
returns a timeSeries object or a numeric vector of block
maxima data.
\code{findThreshold}
\cr
returns a numeric value or vector of suitable thresholds.
\code{pointProcess}
\cr
returns a timeSeries object or a numeric vector of peaks over
a threshold.
\code{deCluster}
\cr
returns a timeSeries object or a numeric vector for the
declustered point process.
}
\references{
Coles S. (2001);
\emph{Introduction to Statistical Modelling of Extreme Values},
Springer.
Embrechts, P., Klueppelberg, C., Mikosch, T. (1997);
\emph{Modelling Extremal Events}, Springer.
}
\author{
Some of the functions were implemented from Alec Stephenson's
R-package \code{evir} ported from Alexander McNeil's S library
\code{EVIS}, \emph{Extreme Values in S}, some from Alec Stephenson's
R-package \code{ismev} based on Stuart Coles code from his book,
\emph{Introduction to Statistical Modeling of Extreme Values} and
some were written by Diethelm Wuertz.
}
\examples{
## findThreshold -
# Threshold giving (at least) fifty exceedances for Danish data:
x <- as.timeSeries(data(danishClaims))
findThreshold(x, n = c(10, 50, 100))
## blockMaxima -
# Block Maxima (Minima) for left tail of BMW log returns:
BMW <- as.timeSeries(data(bmwRet))
colnames(BMW) <- "BMW.RET"
head(BMW)
x <- blockMaxima( BMW, block = 65)
head(x)
\dontrun{
y <- blockMaxima(-BMW, block = 65)
head(y)
y <- blockMaxima(-BMW, block = "monthly")
head(y)}
## pointProcess -
# Return Values above threshold in negative BMW log-return data:
PP = pointProcess(x = -BMW, u = quantile(as.vector(x), 0.75))
PP
nrow(PP)
## deCluster -
# Decluster the 200 exceedances of a particular
DC = deCluster(x = PP, run = 15, doplot = TRUE)
DC
nrow(DC)
}
\keyword{programming}
fExtremes/man/GpdDistribution.Rd 0000644 0001762 0000144 00000007645 12323220004 016370 0 ustar ligges users \name{GpdDistribution}
\alias{GpdDistribution}
\alias{dgpd}
\alias{pgpd}
\alias{qgpd}
\alias{rgpd}
\alias{gpdMoments}
\alias{gpdSlider}
\title{Generalized Pareto Distribution}
\description{
A collection and description of functions to compute
the generalized Pareto distribution. The
functions compute density, distribution function,
quantile function and generate random deviates
for the GPD. In addition functions to
compute the true moments and to display the distribution
and random variates changing parameters interactively
are available.
\cr
The GPD distribution functions are:
\tabular{ll}{
\code{dgpd} \tab Density of the GPD Distribution, \cr
\code{pgpd} \tab Probability function of the GPD Distribution, \cr
\code{qgpd} \tab Quantile function of the GPD Distribution, \cr
\code{rgpd} \tab random variates from the GPD distribution, \cr
\code{gpdMoments} \tab computes true mean and variance, \cr
\code{gpdSlider} \tab displays density or rvs from a GPD.}
}
\usage{
dgpd(x, xi = 1, mu = 0, beta = 1, log = FALSE)
pgpd(q, xi = 1, mu = 0, beta = 1, lower.tail = TRUE)
qgpd(p, xi = 1, mu = 0, beta = 1, lower.tail = TRUE)
rgpd(n, xi = 1, mu = 0, beta = 1)
gpdMoments(xi = 1, mu = 0, beta = 1)
gpdSlider(method = c("dist", "rvs"))
}
\arguments{
\item{log}{
a logical, if \code{TRUE}, the log density is returned.
}
\item{lower.tail}{
a logical, if \code{TRUE}, the default, then
probabilities are \code{P[X <= x]}, otherwise, \code{P[X > x]}.
}
\item{method}{
[gpdSlider] - \cr
a character string denoting what should be displayed. Either
the density and \code{"dist"} or random variates \code{"rvs"}.
}
\item{n}{
[rgpd][gpdSim\ - \cr
the number of observations to be generated.
}
\item{p}{
a vector of probability levels, the desired probability for the
quantile estimate (e.g. 0.99 for the 99th percentile).
}
\item{q}{
[pgpd] - \cr
a numeric vector of quantiles.
}
\item{x}{
[dgpd] - \cr
a numeric vector of quantiles.
}
\item{xi, mu, beta}{
\code{xi} is the shape parameter,
\code{mu} the location parameter,
and \code{beta} is the scale parameter.
}
}
\value{
All values are numeric vectors: \cr
\code{d*} returns the density, \cr
\code{p*} returns the probability, \cr
\code{q*} returns the quantiles, and \cr
\code{r*} generates random deviates.
}
\author{
Alec Stephenson for the functions from R's \code{evd} package, \cr
Alec Stephenson for the functions from R's \code{evir} package, \cr
Alexander McNeil for the EVIS functions underlying the \code{evir} package, \cr
Diethelm Wuertz for this \R-port.
}
\references{
Embrechts, P., Klueppelberg, C., Mikosch, T. (1997);
\emph{Modelling Extremal Events}, Springer.
}
\examples{
## rgpd -
par(mfrow = c(2, 2), cex = 0.7)
r = rgpd(n = 1000, xi = 1/4)
plot(r, type = "l", col = "steelblue", main = "GPD Series")
grid()
## dgpd -
# Plot empirical density and compare with true density:
# Omit values greater than 500 from plot
hist(r, n = 50, probability = TRUE, xlab = "r",
col = "steelblue", border = "white",
xlim = c(-1, 5), ylim = c(0, 1.1), main = "Density")
box()
x = seq(-5, 5, by = 0.01)
lines(x, dgpd(x, xi = 1/4), col = "orange")
## pgpd -
# Plot df and compare with true df:
plot(sort(r), (1:length(r)/length(r)),
xlim = c(-3, 6), ylim = c(0, 1.1), pch = 19,
cex = 0.5, ylab = "p", xlab = "q", main = "Probability")
grid()
q = seq(-5, 5, by = 0.1)
lines(q, pgpd(q, xi = 1/4), col = "steelblue")
## qgpd -
# Compute quantiles, a test:
qgpd(pgpd(seq(-1, 5, 0.25), xi = 1/4 ), xi = 1/4)
}
\keyword{distribution}
fExtremes/man/00Extremes-package.Rd 0000644 0001762 0000144 00000021652 13203336612 016610 0 ustar ligges users \name{fExtremes-package}
\alias{fExtremes-package}
\alias{fExtremes}
\docType{package}
\title{Modelling Extreme Events in Finance}
\description{
The Rmetrics "fExtemes" package is a collection of functions to
analyze and model extreme events in Finance and Insurance.
}
\details{
\preformatted{
Package: \tab fExtremes\cr
Type: \tab Package\cr
%Version: \tab R 3.0.1\cr
%Date: \tab 2014\cr
License: \tab GPL Version 2 or later\cr
Copyright: \tab (c) 1999-2014 Rmetrics Assiciation\cr
URL: \tab \url{https://www.rmetrics.org}
}
}
\section{1 Introduction}{
The \code{fExtremes} package provides functions for analyzing
and modeling extreme events in financial time Series. The
topics include: (i) data proeprocessing, (ii) explorative
data analysis, (iii) peak over threshold modeling, (iv) block
maxima modeling, (v) estimation of VaR and CVaR, and (vi) the
computation of the extreme index.
}
\section{2 Data and their Preprocessing}{
\emph{Data Sets:}
Data sets used in the examples of the timeSeries packages.
\emph{Data Preprocessing:}
These are tools for data preprocessing, including functions to
separate data beyond a threshold value, to compute blockwise data
like block maxima, and to decluster point process data.
\preformatted{
blockMaxima extracts block maxima from a vector or a time series
findThreshold finds upper threshold for a given number of extremes
pointProcess extracts peaks over Threshold from a vector or a time series
deCluster de-clusters clustered point process data
}
}
\section{2 Explorative Data Analysis of Extremes}{
This section contains a collection of functions for explorative data
analysis of extreme values in financial time series. The tools include
plot functions for emprical distributions, quantile plots, graphs
exploring the properties of exceedences over a threshold, plots for
mean/sum ratio and for the development of records. The functions are:
\preformatted{
emdPlot plots of empirical distribution function
qqparetoPlot exponential/Pareto quantile plot
mePlot plot of mean excesses over a threshold
mrlPlot another variant, mean residual life plot
mxfPlot another variant, with confidence intervals
msratioPlot plot of the ratio of maximum and sum
}
\preformatted{
recordsPlot Record development compared with iid data
ssrecordsPlot another variant, investigates subsamples
sllnPlot verifies Kolmogorov's strong law of large numbers
lilPlot verifies Hartman-Wintner's law of the iterated logarithm
}
\preformatted{
xacfPlot plots ACF of exceedences over a threshold
}
\emph{Parameter Fitting of Mean Excesses:}
\preformatted{
normMeanExcessFit fits mean excesses with a normal density
ghMeanExcessFit fits mean excesses with a GH density
hypMeanExcessFit fits mean excesses with a HYP density
nigMeanExcessFit fits mean excesses with a NIG density
ghtMeanExcessFit fits mean excesses with a GHT density
}
}
\section{3 GPD Peak over Threshold Modeling}{
\emph{GPD Distribution:}
A collection of functions to compute the generalized Pareto
distribution. The functions compute density, distribution
function, quantile function and generate random deviates
for the GPD. In addition functions to compute the true
moments and to display the distribution and random variates
changing parameters interactively are available.
\preformatted{
dgpd returns the density of the GPD distribution
pgpd returns the probability function of the GPD
qgpd returns quantile function of the GPD distribution
rgpd generates random variates from the GPD distribution
gpdSlider displays density or rvs from a GPD
}
\emph{GPD Moments:}
\preformatted{
gpdMoments computes true mean and variance of GDP
}
\emph{GPD Parameter Estimation:}
This section contains functions to fit and to simulate processes that
are generated from the generalized Pareto distribution. Two
approaches for parameter estimation are provided: Maximum likelihood
estimation and the probability weighted moment method.
\preformatted{
gpdSim generates data from the GPD distribution
gpdFit fits data to the GPD istribution
}
\emph{GPD print, plot and summary methods:}
\preformatted{
print print method for a fitted GPD object
plot plot method for a fitted GPD object
summary summary method for a fitted GPD object
}
\emph{GDP Tail Risk:}
The following functions compute tail risk under the GPD approach.
\preformatted{
gpdQPlot estimation of high quantiles
gpdQuantPlot variation of high quantiles with threshold
gpdRiskMeasures prescribed quantiles and expected shortfalls
gpdSfallPlot expected shortfall with confidence intervals
gpdShapePlot variation of GPD shape with threshold
gpdTailPlot plot of the GPD tail
}
% \preformatted{
% tailPlot
% tailSlider
% tailRisk
% }
}
\section{4 GEV Block Maxima Modeling}{
\emph{GEV Distribution:}
This section contains functions to fit and to simulate processes
that are generated from the generalized extreme value distribution
including the Frechet, Gumbel, and Weibull distributions.
\preformatted{
dgev returns density of the GEV distribution
pgev returns probability function of the GEV
qgev returns quantile function of the GEV distribution
rgev generates random variates from the GEV distribution
gevSlider displays density or rvs from a GEV
}
\emph{GEV Moments:}
\preformatted{
gevMoments computes true mean and variance
}
\emph{GEV Parameter Estimation:}
A collection to simulate and to estimate the parameters of
processes generated from GEV distribution.
\preformatted{
gevSim generates data from the GEV distribution
gumbelSim generates data from the Gumbel distribution
gevFit fits data to the GEV distribution
gumbelFit fits data to the Gumbel distribution
}
\preformatted{
print print method for a fitted GEV object
plot plot method for a fitted GEV object
summary summary method for a fitted GEV object
}
\emph{GEV MDA Estimation:}
Here we provide Maximum Domain of Attraction estimators and visualize
the results by a Hill plot and a common shape parameter plot from
the Pickands, Einmal-Decker-deHaan, and Hill estimators.
\preformatted{
hillPlot shape parameter and Hill estimate of the tail index
shaparmPlot variation of shape parameter with tail depth
}
\emph{GEV Risk Estimation:}
\preformatted{
gevrlevelPlot k-block return level with confidence intervals
}
}
\section{4 Value at Risk}{
Two functions to compute Value-at-Risk and conditional
Value-at-Risk.
\preformatted{
VaR computes Value-at-Risk
CVaR computes conditional Value-at-Risk
}
}
\section{5 Extreme Index}{
A collection of functions to simulate time series with a known extremal
index, and to estimate the extremal index by four different kind of
methods, the blocks method, the reciprocal mean cluster size method,
the runs method, and the method of Ferro and Segers.
\preformatted{
thetaSim simulates a time Series with known theta
blockTheta computes theta from Block Method
clusterTheta computes theta from Reciprocal Cluster Method
runTheta computes theta from Run Method
ferrosegersTheta computes theta according to Ferro and Seegers
}
\preformatted{
exindexPlot calculatess and plots Theta(1,2,3)
exindexesPlot calculates Theta(1,2) and plots Theta(1)
}
}
\section{About Rmetrics}{
The \code{fExtremes} Rmetrics package is written for educational
support in teaching "Computational Finance and Financial Engineering"
and licensed under the GPL.
}
\keyword{package}
fExtremes/man/ExtremeIndex.Rd 0000644 0001762 0000144 00000013652 11645005146 015670 0 ustar ligges users \name{ExtremeIndex}
\alias{ExtremeIndex}
\alias{fTHETA}
\alias{fTHETA-class}
\alias{show,fTHETA-method}
\alias{thetaSim}
\alias{blockTheta}
\alias{clusterTheta}
\alias{runTheta}
\alias{ferrosegersTheta}
\alias{exindexPlot}
\alias{exindexesPlot}
\title{Extremal Index Estimation}
\description{
A collection and description of functions to simulate
time series with a known extremal index, and to estimate
the extremal index by four different kind of methods,
the blocks method, the reciprocal mean cluster size
method, the runs method, and the method of Ferro and
Segers.
\cr
The functiona are:
\tabular{ll}{
\code{thetaSim} \tab Simulates a time Series with known theta, \cr
\code{blockTheta} \tab Computes theta from Block Method, \cr
\code{clusterTheta} \tab Computes theta from Reciprocal Cluster Method, \cr
\code{runTheta} \tab Computes theta from Run Method, \cr
\code{ferrosegersTheta} \tab Computes Theta according to Ferro and Seegers, \cr
\code{exindexPlot} \tab Calculate and Plot Theta(1,2,3), \cr
\code{exindexesPlot} \tab Calculate Theta(1,2) and Plot Theta(1). }
}
\usage{
\S4method{show}{fTHETA}(object)
thetaSim(model = c("max", "pair"), n = 1000, theta = 0.5)
blockTheta(x, block = 22, quantiles = seq(0.950, 0.995, length = 10),
title = NULL, description = NULL)
clusterTheta(x, block = 22, quantiles = seq(0.950, 0.995, length = 10),
title = NULL, description = NULL)
runTheta(x, block = 22, quantiles = seq(0.950, 0.995, length = 10),
title = NULL, description = NULL)
ferrosegersTheta(x, quantiles = seq(0.950, 0.995, length = 10),
title = NULL, description = NULL)
exindexPlot(x, block = c("monthly", "quarterly"), start = 5, end = NA,
doplot = TRUE, plottype = c("thresh", "K"), labels = TRUE, \dots)
exindexesPlot(x, block = 22, quantiles = seq(0.950, 0.995, length = 10),
doplot = TRUE, labels = TRUE, \dots)
}
\arguments{
\item{block}{
[*Theta] - \cr
an integer value, the block size. Currently only integer specified
block sizes are supported.
\cr
[exindex*Plot] - \cr
the block size. Either \code{"monthly"}, \code{"quarterly"} or
an integer value. An integer value is interpreted as the number
of data values in each successive block. The default value is
\code{"monthly"} which correpsond for daily data to an approximately
22-day periods.
}
\item{description}{
a character string which allows for a brief description.
}
\item{doplot}{
a logical, should the results be plotted?
}
\item{labels}{
whether or not axes should be labelled. If set to \code{FALSE}
then user specified lables can be passed through the \code{"..."}
argument.
}
\item{model}{
[thetaSim] - \cr
a character string denoting the name of the model. Either
\code{"max"} or \code{"pair"}, the first representing the
maximimum Frechet series, and the second the paired exponential
series.
}
\item{n}{
[thetaSim] - \cr
an integer value, the length of the time series to be generated.
}
\item{object}{
an object of class \code{"fTHETA"} as returned by the functions
\code{*Theta}.
}
\item{plottype}{
[exindexPlot] - \cr
whether plot is to be by increasing threshold (\code{thresh})
or increasing K value (\code{K}).
}
\item{quantiles}{
[exindexesPlot] - \cr
a numeric vector of quantile values.
}
\item{start, end}{
[exindexPlot] - \cr
\code{start} is the lowest value of \code{K} at which to plot
a point, and \code{end} the highest value; \code{K} is the
number of blocks in which a specified threshold is exceeded.
}
\item{theta}{
[thetaSim] - \cr
a numeric value between 0 and 1 setting the value of the
extremal index for the maximum Frechet time series. (Not used
in the case of the paired exponential series.)
}
\item{title}{
a character string which allows for a project title.
}
\item{x}{
a 'timeSeries' object or any other object which can be transformed
by the function \code{as.vector} into a numeric vector. \code{"monthly"}
and \code{"quarterly"} blocks require \code{x} to be an object of
class \code{"timeSeries"}.
}
\item{\dots}{
additional arguments passed to the plot function.
}
}
\value{
\code{exindexPlot}
\cr
returns a data frame of results with the
following columns: \code{N}, \code{K}, \code{un}, \code{theta2},
and \code{theta}. A plot with \code{K} on the lower x-axis and
threshold Values on the upper x-axis versus the extremal index
is displayed.
\code{exindexesPlot}
\cr
returns a data.frame with four columns:
\code{thresholds}, \code{theta1}, \code{theta2}, and \code{theta3}.
A plot with quantiles on the x-axis and versus the extremal indexes
is displayed.
}
\references{
Embrechts, P., Klueppelberg, C., Mikosch, T. (1997);
\emph{Modelling Extremal Events},
Springer. Chapter 8, 413--429.
}
\seealso{
\code{hillPlot},
\code{gevFit}.
}
\author{
Alexander McNeil, for parts of the \code{exindexPlot} function, and \cr
Diethelm Wuertz for the \code{exindexesPlot} function.
}
\examples{
## Extremal Index for the right and left tails
## of the BMW log returns:
data(bmwRet)
par(mfrow = c(2, 2), cex = 0.7)
exindexPlot( as.timeSeries(bmwRet), block = "quarterly")
exindexPlot(-as.timeSeries(bmwRet), block = "quarterly")
## Extremal Index for the right and left tails
## of the BMW log returns:
exindexesPlot( as.timeSeries(bmwRet), block = 65)
exindexesPlot(-as.timeSeries(bmwRet), block = 65)
}
\keyword{hplot}
fExtremes/man/data.Rd 0000644 0001762 0000144 00000000305 11645005146 014167 0 ustar ligges users \name{TimeSeriesData}
\alias{TimeSeriesData}
\alias{bmwRet}
\alias{danishClaims}
\title{Time Series Data Sets}
\description{
Data sets used in the examples of the timeSeries packages.
}
fExtremes/man/GevDistribution.Rd 0000644 0001762 0000144 00000007455 11645005146 016414 0 ustar ligges users \name{GevDistribution}
\alias{GevDistribution}
\alias{dgev}
\alias{pgev}
\alias{qgev}
\alias{rgev}
\alias{gevMoments}
\alias{gevSlider}
\title{Generalized Extreme Value Distribution}
\description{
Density, distribution function, quantile function, random
number generation, and true moments for the GEV including
the Frechet, Gumbel, and Weibull distributions.
\cr
The GEV distribution functions are:
\tabular{ll}{
\code{dgev} \tab density of the GEV distribution, \cr
\code{pgev} \tab probability function of the GEV distribution, \cr
\code{qgev} \tab quantile function of the GEV distribution, \cr
\code{rgev} \tab random variates from the GEV distribution, \cr
\code{gevMoments} \tab computes true mean and variance, \cr
\code{gevSlider} \tab displays density or rvs from a GEV.}
}
\usage{
dgev(x, xi = 1, mu = 0, beta = 1, log = FALSE)
pgev(q, xi = 1, mu = 0, beta = 1, lower.tail = TRUE)
qgev(p, xi = 1, mu = 0, beta = 1, lower.tail = TRUE)
rgev(n, xi = 1, mu = 0, beta = 1)
gevMoments(xi = 0, mu = 0, beta = 1)
gevSlider(method = c("dist", "rvs"))
}
\arguments{
\item{log}{
a logical, if \code{TRUE}, the log density is returned.
}
\item{lower.tail}{
a logical, if \code{TRUE}, the default, then
probabilities are \code{P[X <= x]}, otherwise, \code{P[X > x]}.
}
\item{method}{
a character sgtring denoting what should be displayed. Either
the density and \code{"dist"} or random variates \code{"rvs"}.
}
\item{n}{
the number of observations.
}
\item{p}{
a numeric vector of probabilities.
[hillPlot] - \cr
probability required when option \code{quantile} is
chosen.
}
\item{q}{
a numeric vector of quantiles.
}
\item{x}{
a numeric vector of quantiles.
}
\item{xi, mu, beta}{
\code{xi} is the shape parameter, \code{mu} the location parameter,
and \code{beta} is the scale parameter. The default values are
\code{xi=1}, \code{mu=0}, and \code{beta=1}. Note, if \code{xi=0}
the distribution is of type Gumbel.
}
}
\value{
\code{d*} returns the density, \cr
\code{p*} returns the probability, \cr
\code{q*} returns the quantiles, and \cr
\code{r*} generates random variates. \cr
All values are numeric vectors.
}
\references{
Coles S. (2001);
\emph{Introduction to Statistical Modelling of Extreme Values},
Springer.
Embrechts, P., Klueppelberg, C., Mikosch, T. (1997);
\emph{Modelling Extremal Events},
Springer.
}
\author{
Alec Stephenson for R's \code{evd} and \code{evir} package, and \cr
Diethelm Wuertz for this \R-port.
}
\examples{
## rgev -
# Create and plot 1000 Weibull distributed rdv:
r = rgev(n = 1000, xi = -1)
plot(r, type = "l", col = "steelblue", main = "Weibull Series")
grid()
## dgev -
# Plot empirical density and compare with true density:
hist(r[abs(r)<10], nclass = 25, freq = FALSE, xlab = "r",
xlim = c(-5,5), ylim = c(0,1.1), main = "Density")
box()
x = seq(-5, 5, by = 0.01)
lines(x, dgev(x, xi = -1), col = "steelblue")
## pgev -
# Plot df and compare with true df:
plot(sort(r), (1:length(r)/length(r)),
xlim = c(-3, 6), ylim = c(0, 1.1),
cex = 0.5, ylab = "p", xlab = "q", main = "Probability")
grid()
q = seq(-5, 5, by = 0.1)
lines(q, pgev(q, xi = -1), col = "steelblue")
## qgev -
# Compute quantiles, a test:
qgev(pgev(seq(-5, 5, 0.25), xi = -1), xi = -1)
## gevMoments:
# Returns true mean and variance:
gevMoments(xi = 0, mu = 0, beta = 1)
## Slider:
# gevSlider(method = "dist")
# gevSlider(method = "rvs")
}
\keyword{models}
fExtremes/man/GpdRisk.Rd 0000644 0001762 0000144 00000021563 12323220004 014614 0 ustar ligges users \name{gpdRisk}
\alias{gpdRisk}
\alias{gpdQPlot}
\alias{gpdQuantPlot}
\alias{gpdSfallPlot}
\alias{gpdShapePlot}
\alias{gpdTailPlot}
\alias{gpdRiskMeasures}
\alias{tailPlot}
\alias{tailSlider}
\alias{tailRisk}
\title{GPD Distributions for Extreme Value Theory}
\description{
A collection and description to functions to compute
tail risk under the GPD approach.
\cr
The GPD modelling functions are:
\tabular{ll}{
\code{gpdQPlot} \tab estimation of high quantiles, \cr
\code{gpdQuantPlot} \tab variation of high quantiles with threshold, \cr
\code{gpdRiskMeasures} \tab prescribed quantiles and expected shortfalls, \cr
\code{gpdSfallPlot} \tab expected shortfall with confidence intervals, \cr
\code{gpdShapePlot} \tab variation of shape with threshold, \cr
\code{gpdTailPlot} \tab plot of the tail, \cr
\code{tailPlot} \tab , \cr
\code{tailSlider} \tab , \cr
\code{tailRisk} \tab . }
}
\usage{
gpdQPlot(x, p = 0.99, ci = 0.95, type = c("likelihood", "wald"),
like.num = 50)
gpdQuantPlot(x, p = 0.99, ci = 0.95, models = 30, start = 15, end = 500,
doplot = TRUE, plottype = c("normal", "reverse"), labels = TRUE,
\dots)
gpdSfallPlot(x, p = 0.99, ci = 0.95, like.num = 50)
gpdShapePlot(x, ci = 0.95, models = 30, start = 15, end = 500,
doplot = TRUE, plottype = c("normal", "reverse"), labels = TRUE,
\dots)
gpdTailPlot(object, plottype = c("xy", "x", "y", ""), doplot = TRUE,
extend = 1.5, labels = TRUE, \dots)
gpdRiskMeasures(object, prob = c(0.99, 0.995, 0.999, 0.9995, 0.9999))
tailPlot(object, p = 0.99, ci = 0.95, nLLH = 25, extend = 1.5, grid =
TRUE, labels = TRUE, \dots)
tailSlider(x)
tailRisk(object, prob = c(0.99, 0.995, 0.999, 0.9995, 0.9999), \dots)
}
\arguments{
\item{ci}{
the probability for asymptotic confidence band; for no
confidence band set to zero.
}
\item{doplot}{
a logical. Should the results be plotted?
}
\item{extend}{
optional argument for plots 1 and 2 expressing how far x-axis
should extend as a multiple of the largest data value. This
argument must take values greater than 1 and is useful for
showing estimated quantiles beyond data.
}
\item{grid}{
...
}
\item{labels}{
optional argument for plots 1 and 2 specifying whether or not
axes should be labelled.
}
\item{like.num}{
the number of times to evaluate profile likelihood.
}
\item{models}{
the number of consecutive gpd models to be fitted.
}
\item{nLLH}{
...
}
\item{object}{
[summary] - \cr
a fitted object of class \code{"gpdFit"}.
}
\item{p}{
a vector of probability levels, the desired probability for the
quantile estimate (e.g. 0.99 for the 99th percentile).
}
\item{reverse}{
should plot be by increasing threshold (\code{TRUE}) or number
of extremes (\code{FALSE}).
}
\item{prob}{
a numeric value.
}
\item{plottype}{
a character string.
}
\item{start, end}{
the lowest and maximum number of exceedances to be considered.
}
\item{type}{
a character string selecting the desired estimation mehtod, either
\code{"mle"} for the maximum likelihood mehtod or \code{"pwm"} for
the probability weighted moment method. By default, the first will
be selected. Note, the function \code{gpd} uses \code{"ml"}.
}
\item{x}{
[dgpd] - \cr
a numeric vector of quantiles.
\cr
[gpdFit] - \cr
the data vector. Note, there are two different names
for the first argument \code{x} and \code{data} depending
which function name is used, either \code{gpdFit} or the
EVIS synonyme \code{gpd}.
\cr
[print][plot] - \cr
a fitted object of class \code{"gpdFit"}.
}
\item{\dots}{
control parameters and plot parameters optionally passed to the
optimization and/or plot function. Parameters for the optimization
function are passed to components of the \code{control} argument of
\code{optim}.
}
}
\value{
\code{gpdSim}
\cr
returns a vector of datapoints from the simulated
series.
\code{gpdFit}
\cr
returns an object of class \code{"gpd"} describing the
fit including parameter estimates and standard errors.
\code{gpdQuantPlot}
\cr
returns invisible a table of results.
\code{gpdShapePlot}
\cr
returns invisible a table of results.
\code{gpdTailPlot}
\cr
returns invisible a list object containing
details of the plot is returned invisibly. This object should be
used as the first argument of \code{gpdqPlot} or \code{gpdsfallPlot}
to add quantile estimates or expected shortfall estimates to the
plot.
}
\details{
\bold{Generalized Pareto Distribution:}
\cr\cr
Compute density, distribution function, quantile function and
generates random variates for the Generalized Pareto Distribution.
\bold{Simulation:}
\cr\cr
\code{gpdSim} simulates data from a Generalized Pareto
distribution.
\cr
\bold{Parameter Estimation:}
\cr\cr
\code{gpdFit} fits the model parameters either by the probability
weighted moment method or the maxim log likelihood method.
The function returns an object of class \code{"gpd"}
representing the fit of a generalized Pareto model to excesses over
a high threshold. The fitting functions use the probability weighted
moment method, if method \code{method="pwm"} was selected, and the
the general purpose optimization function \code{optim} when the
maximum likelihood estimation, \code{method="mle"} or \code{method="ml"}
is chosen.
\cr
\bold{Methods:}
\cr\cr
\code{print.gpd}, \code{plot.gpd} and \code{summary.gpd} are print,
plot, and summary methods for a fitted object of class \code{gpdFit}.
The plot method provides four different plots for assessing fitted
GPD model.
\cr
\bold{gpd* Functions:}
\cr\cr
\code{gpdqPlot} calculates quantile estimates and confidence intervals
for high quantiles above the threshold in a GPD analysis, and adds a
graphical representation to an existing plot. The GPD approximation in
the tail is used to estimate quantile. The \code{"wald"} method uses
the observed Fisher information matrix to calculate confidence interval.
The \code{"likelihood"} method reparametrizes the likelihood in terms
of the unknown quantile and uses profile likelihood arguments to
construct a confidence interval.
\cr
\code{gpdquantPlot} creates a plot showing how the estimate of a
high quantile in the tail of a dataset based on the GPD approximation
varies with threshold or number of extremes. For every model
\code{gpdFit} is called. Evaluation may be slow. Confidence intervals
by the Wald method may be fastest.
\cr
\code{gpdriskmeasures} makes a rapid calculation of point estimates
of prescribed quantiles and expected shortfalls using the output of the
function \code{gpdFit}. This function simply calculates point estimates
and (at present) makes no attempt to calculate confidence intervals for
the risk measures. If confidence levels are required use \code{gpdqPlot}
and \code{gpdsfallPlot} which interact with graphs of the tail of a loss
distribution and are much slower.
\cr
\code{gpdsfallPlot} calculates expected shortfall estimates, in other
words tail conditional expectation and confidence intervals for high
quantiles above the threshold in a GPD analysis. A graphicalx
representation to an existing plot is added. Expected shortfall is
the expected size of the loss, given that a particular quantile of the
loss distribution is exceeded. The GPD approximation in the tail is used
to estimate expected shortfall. The likelihood is reparametrised in
terms of the unknown expected shortfall and profile likelihood arguments
are used to construct a confidence interval.
\cr
\code{gpdshapePlot} creates a plot showing how the estimate of shape
varies with threshold or number of extremes. For every model
\code{gpdFit} is called. Evaluation may be slow.
\cr
\code{gpdtailPlot} produces a plot of the tail of the underlying
distribution of the data.
}
\references{
Embrechts, P., Klueppelberg, C., Mikosch, T. (1997);
\emph{Modelling Extremal Events}, Springer.
Hosking J.R.M., Wallis J.R., (1987);
\emph{Parameter and quantile estimation for the generalized
Pareto distribution},
Technometrics 29, 339--349.
}
\author{
Alec Stephenson for the functions from R's \code{evd} package, \cr
Alec Stephenson for the functions from R's \code{evir} package, \cr
Alexander McNeil for the EVIS functions underlying the \code{evir}
package, \cr
Diethelm Wuertz for this \R-port.
}
\examples{
## Load Data:
danish = as.timeSeries(data(danishClaims))
## Tail Plot:
x = as.timeSeries(data(danishClaims))
fit = gpdFit(x, u = 10)
tailPlot(fit)
## Try Tail Slider:
# tailSlider(x)
## Tail Risk:
tailRisk(fit)
}
\keyword{distribution}
fExtremes/man/GevRisk.Rd 0000644 0001762 0000144 00000014670 12323220004 014624 0 ustar ligges users \name{GevRisk}
\alias{GevRisk}
\alias{gevrlevelPlot}
\title{Generalized Extreme Value Modelling}
\description{
A collection and description functions to estimate
the parameters of the GEV distribution. To model
the GEV three types of approaches for parameter
estimation are provided: Maximum likelihood
estimation, probability weighted moment method,
and estimation by the MDA approach. MDA includes
functions for the Pickands, Einmal-Decker-deHaan,
and Hill estimators together with several plot
variants.
\cr
The GEV modelling functions are:
\tabular{ll}{
\code{gevrlevelPlot} \tab k-block return level with confidence intervals.}
}
\usage{
gevrlevelPlot(object, kBlocks = 20, ci = c(0.90, 0.95, 0.99),
plottype = c("plot", "add"), labels = TRUE,...)
}
\arguments{
\item{add}{
[gevrlevelPlot] - \cr
whether the return level should be added graphically to a
time series plot; if \code{FALSE} a graph of the profile
likelihood curve showing the return level and its confidence
interval is produced.
}
\item{ci}{
[hillPlot] - \cr
probability for asymptotic confidence band; for no
confidence band set \code{ci} to zero.
}
\item{kBlocks}{
[gevrlevelPlot] - \cr
specifies the particular return level to be estimated; default
set arbitrarily to 20.
}
\item{labels}{
[hillPlot] - \cr
whether or not axes should be labelled.
}
\item{object}{
[summary][grlevelPlot] - \cr
a fitted object of class \code{"gevFit"}.
}
\item{plottype}{
[hillPlot] - \cr
whether \code{alpha}, \code{xi} (1/alpha) or
\code{quantile} (a quantile estimate) should be plotted.
}
\item{\dots}{
arguments passed to the plot function.
}
}
\value{
\code{gevSim}
\cr
returns a vector of data points from the simulated series.
\cr
\code{gevFit}
\cr
returns an object of class \code{gev} describing the fit.
\cr
\code{print.summary}
\cr
prints a report of the parameter fit.
\cr
\code{summary}
\cr
performs diagnostic analysis. The method provides two different
residual plots for assessing the fitted GEV model.
\cr
\code{gevrlevelPlot}
\cr
returns a vector containing the lower 95\% bound of the confidence
interval, the estimated return level and the upper 95\% bound.
\cr
\code{hillPlot}
\cr
displays a plot.
\cr
\code{shaparmPlot}
\cr
returns a list with one or two entries, depending on the
selection of the input variable \code{both.tails}. The two
entries \code{upper} and \code{lower} determine the position of
the tail. Each of the two variables is again a list with entries
\code{pickands}, \code{hill}, and \code{dehaan}. If one of the
three methods will be discarded the printout will display zeroes.
}
\details{
\bold{Parameter Estimation:}
\cr\cr
\code{gevFit} and \code{gumbelFit} estimate the parameters either
by the probability weighted moment method, \code{method="pwm"} or
by maximum log likelihood estimation \code{method="mle"}. The
summary method produces diagnostic plots for fitted GEV or Gumbel
models.
\cr
\bold{Methods:}
\cr\cr
\code{print.gev}, \code{plot.gev} and \code{summary.gev} are
print, plot, and summary methods for a fitted object of class
\code{gev}. Concerning the summary method, the data are
converted to unit exponentially distributed residuals under null
hypothesis that GEV fits. Two diagnostics for iid exponential data
are offered. The plot method provides two different residual plots
for assessing the fitted GEV model. Two diagnostics for
iid exponential data are offered.
\cr
\bold{Return Level Plot:}
\cr\cr
\code{gevrlevelPlot} calculates and plots the k-block return level
and 95\% confidence interval based on a GEV model for block maxima,
where \code{k} is specified by the user. The k-block return level
is that level exceeded once every \code{k} blocks, on average. The
GEV likelihood is reparameterized in terms of the unknown return
level and profile likelihood arguments are used to construct a
confidence interval.
\cr
\bold{Hill Plot:}
\cr\cr
The function \code{hillPlot} investigates the shape parameter and
plots the Hill estimate of the tail index of heavy-tailed data, or
of an associated quantile estimate. This plot is usually calculated
from the alpha perspective. For a generalized Pareto analysis of
heavy-tailed data using the \code{gpdFit} function, it helps to
plot the Hill estimates for \code{xi}.
\cr
\bold{Shape Parameter Plot:}
\cr\cr
The function \code{shaparmPlot} investigates the shape parameter and
plots for the upper and lower tails the shape parameter as a function
of the taildepth. Three approaches are considered, the \emph{Pickands}
estimator, the \emph{Hill} estimator, and the
\emph{Decker-Einmal-deHaan} estimator.
}
\note{
\bold{GEV Parameter Estimation:}
\cr\cr
If method \code{"mle"} is selected the parameter fitting in \code{gevFit}
is passed to the internal function \code{gev.mle} or \code{gumbel.mle}
depending on the value of \code{gumbel}, \code{FALSE} or \code{TRUE}.
On the other hand, if method \code{"pwm"} is selected the parameter
fitting in \code{gevFit} is passed to the internal function
\code{gev.pwm} or \code{gumbel.pwm} again depending on the value of
\code{gumbel}, \code{FALSE} or \code{TRUE}.
}
\references{
Coles S. (2001);
\emph{Introduction to Statistical Modelling of Extreme Values},
Springer.
Embrechts, P., Klueppelberg, C., Mikosch, T. (1997);
\emph{Modelling Extremal Events},
Springer.
}
\author{
Alec Stephenson for R's \code{evd} and \code{evir} package, and \cr
Diethelm Wuertz for this \R-port.
}
\examples{
## Load Data:
# BMW Stock Data - negative returns
x = -as.timeSeries(data(bmwRet))
colnames(x)<-"BMW"
head(x)
## gevFit -
# Fit GEV to monthly Block Maxima:
fit = gevFit(x, block = "month")
print(fit)
## gevrlevelPlot -
# Return Level Plot:
gevrlevelPlot(fit)
}
\keyword{models}
fExtremes/man/GevModelling.Rd 0000644 0001762 0000144 00000023653 11645005146 015645 0 ustar ligges users \name{GevModelling}
\alias{GevModelling}
\alias{fGEVFIT}
\alias{fGEVFIT-class}
\alias{show,fGEVFIT-method}
\alias{gevSim}
\alias{gumbelSim}
\alias{gevFit}
\alias{gumbelFit}
\alias{plot.fGEVFIT}
\alias{summary.fGEVFIT}
\title{Generalized Extreme Value Modelling}
\description{
A collection and description functions to estimate
the parameters of the GEV distribution. To model
the GEV three types of approaches for parameter
estimation are provided: Maximum likelihood
estimation, probability weighted moment method,
and estimation by the MDA approach. MDA includes
functions for the Pickands, Einmal-Decker-deHaan,
and Hill estimators together with several plot
variants.
\cr
The GEV modelling functions are:
\tabular{ll}{
\code{gevSim} \tab generates data from the GEV distribution, \cr
\code{gumbelSim} \tab generates data from the Gumbel distribution, \cr
\code{gevFit} \tab fits data to the GEV distribution, \cr
\code{gumbelFit} \tab fits data to the Gumbel distribution, \cr
\code{print} \tab print method for a fitted GEV object, \cr
\code{plot} \tab plot method for a fitted GEV object, \cr
\code{summary} \tab summary method for a fitted GEV object, \cr
\code{gevrlevelPlot} \tab k-block return level with confidence intervals. }
}
\usage{
gevSim(model = list(xi = -0.25, mu = 0, beta = 1), n = 1000, seed = NULL)
gumbelSim(model = list(mu = 0, beta = 1), n = 1000, seed = NULL)
gevFit(x, block = 1, type = c("mle", "pwm"), title = NULL, description = NULL, \dots)
gumbelFit(x, block = 1, type = c("mle", "pwm"), title = NULL, description = NULL, \dots)
\S4method{show}{fGEVFIT}(object)
\method{plot}{fGEVFIT}(x, which = "ask", \dots)
\method{summary}{fGEVFIT}(object, doplot = TRUE, which = "all", \dots)
}
\arguments{
\item{block}{
block size.
}
\item{description}{
a character string which allows for a brief description.
}
\item{doplot}{
a logical. Should the results be plotted?
\cr
[shaparmPlot] - \cr
a vector of logicals of the same lengths as tails
defining for wich tail depths plots should be created,
by default plots will be generated for a tail depth of 5
percent. By default \code{c(FALSE, FALSE, FALSE, FALSE,
TRUE, FALSE, FALSE, FALSE, FALSE, FALSE)}.
}
\item{model}{
[gevSim][gumbelSim] - \cr
a list with components \code{shape}, \code{location} and
\code{scale} giving the parameters of the GEV distribution.
By default the shape parameter has the value -0.25, the
location is zero and the scale is one.
To fit random deviates from a Gumbel distribution set
\code{shape=0}.
}
\item{n}{
[gevSim][gumbelSim] - \cr
number of generated data points, an integer value.
\cr
[rgev] - \cr
the number of observations.
}
\item{object}{
[summary][grlevelPlot] - \cr
a fitted object of class \code{"gevFit"}.
}
\item{seed}{
[gevSim] - \cr
an integer value to set the seed for the random number generator.
}
\item{title}{
[gevFit] - \cr
a character string which allows for a project title.
}
\item{type}{
a character string denoting the type of parameter estimation,
either by maximum likelihood estimation \code{"mle"}, the
default value, or by the probability weighted moment menthod
\code{"pwm"}.
}
\item{which}{
[plot][summary] - \cr
a vector of logicals, one for each plot, denoting which plot
should be displayed. Alkternatively if \code{which="ask"} the
user will be interactively asked which of the plots should be
desplayed. By default \code{which="all"}.
}
\item{x}{
[dgev][devd] - \cr
a numeric vector of quantiles.
\cr
[gevFit] - \cr
data vector. In the case of \code{method="mle"} the interpretation
depends on the value of block: if no block size is specified then
data are interpreted as block maxima; if block size is set, then data
are interpreted as raw data and block maxima are calculated.
\cr
[hillPlot][shaparmPlot] - \cr
the data from which to calculate the shape parameter, a
numeric vector.
\cr
[print][plot] - \cr
a fitted object of class \code{"gevFit"}.
}
\item{xi, mu, beta}{
[*gev] - \cr
\code{xi} is the shape parameter, \code{mu} the location parameter,
and \code{sigma} is the scale parameter. The default values are
\code{xi=1}, \code{mu=0}, and \code{beta=1}. Note, if \code{xi=0}
the distribution is of type Gumbel.
}
\item{\dots}{
[gevFit] - \cr
control parameters optionally passed to the
optimization function. Parameters for the optimization
function are passed to components of the \code{control} argument of
\code{optim}.
\cr
[hillPlot] - \cr
other graphics parameters.
\cr
[plot][summary] - \cr
arguments passed to the plot function.
}
}
\value{
\code{gevSim}
\cr
returns a vector of data points from the simulated series.
\cr
\code{gevFit}
\cr
returns an object of class \code{gev} describing the fit.
\cr
\code{print.summary}
\cr
prints a report of the parameter fit.
\cr
\code{summary}
\cr
performs diagnostic analysis. The method provides two different
residual plots for assessing the fitted GEV model.
\cr
\code{gevrlevelPlot}
\cr
returns a vector containing the lower 95\% bound of the confidence
interval, the estimated return level and the upper 95\% bound.
\cr
\code{hillPlot}
\cr
displays a plot.
\cr
\code{shaparmPlot}
\cr
returns a list with one or two entries, depending on the
selection of the input variable \code{both.tails}. The two
entries \code{upper} and \code{lower} determine the position of
the tail. Each of the two variables is again a list with entries
\code{pickands}, \code{hill}, and \code{dehaan}. If one of the
three methods will be discarded the printout will display zeroes.
}
\details{
\bold{Parameter Estimation:}
\cr\cr
\code{gevFit} and \code{gumbelFit} estimate the parameters either
by the probability weighted moment method, \code{method="pwm"} or
by maximum log likelihood estimation \code{method="mle"}. The
summary method produces diagnostic plots for fitted GEV or Gumbel
models.
\cr
\bold{Methods:}
\cr\cr
\code{print.gev}, \code{plot.gev} and \code{summary.gev} are
print, plot, and summary methods for a fitted object of class
\code{gev}. Concerning the summary method, the data are
converted to unit exponentially distributed residuals under null
hypothesis that GEV fits. Two diagnostics for iid exponential data
are offered. The plot method provides two different residual plots
for assessing the fitted GEV model. Two diagnostics for
iid exponential data are offered.
\cr
\bold{Return Level Plot:}
\cr\cr
\code{gevrlevelPlot} calculates and plots the k-block return level
and 95\% confidence interval based on a GEV model for block maxima,
where \code{k} is specified by the user. The k-block return level
is that level exceeded once every \code{k} blocks, on average. The
GEV likelihood is reparameterized in terms of the unknown return
level and profile likelihood arguments are used to construct a
confidence interval.
\cr
\bold{Hill Plot:}
\cr\cr
The function \code{hillPlot} investigates the shape parameter and
plots the Hill estimate of the tail index of heavy-tailed data, or
of an associated quantile estimate. This plot is usually calculated
from the alpha perspective. For a generalized Pareto analysis of
heavy-tailed data using the \code{gpdFit} function, it helps to
plot the Hill estimates for \code{xi}.
\cr
\bold{Shape Parameter Plot:}
\cr\cr
The function \code{shaparmPlot} investigates the shape parameter and
plots for the upper and lower tails the shape parameter as a function
of the taildepth. Three approaches are considered, the \emph{Pickands}
estimator, the \emph{Hill} estimator, and the
\emph{Decker-Einmal-deHaan} estimator.
}
\note{
\bold{GEV Parameter Estimation:}
\cr\cr
If method \code{"mle"} is selected the parameter fitting in \code{gevFit}
is passed to the internal function \code{gev.mle} or \code{gumbel.mle}
depending on the value of \code{gumbel}, \code{FALSE} or \code{TRUE}.
On the other hand, if method \code{"pwm"} is selected the parameter
fitting in \code{gevFit} is passed to the internal function
\code{gev.pwm} or \code{gumbel.pwm} again depending on the value of
\code{gumbel}, \code{FALSE} or \code{TRUE}.
}
\references{
Coles S. (2001);
\emph{Introduction to Statistical Modelling of Extreme Values},
Springer.
Embrechts, P., Klueppelberg, C., Mikosch, T. (1997);
\emph{Modelling Extremal Events},
Springer.
}
\author{
Alec Stephenson for R's \code{evd} and \code{evir} package, and \cr
Diethelm Wuertz for this \R-port.
}
\examples{
## gevSim -
# Simulate GEV Data, use default length n=1000
x = gevSim(model = list(xi = 0.25, mu = 0 , beta = 1), n = 1000)
head(x)
## gumbelSim -
# Simulate GEV Data, use default length n=1000
x = gumbelSim(model = list(xi = 0.25, mu = 0 , beta = 1))
## gevFit -
# Fit GEV Data by Probability Weighted Moments:
fit = gevFit(x, type = "pwm")
print(fit)
## summary -
# Summarize Results:
par(mfcol = c(2, 2))
summary(fit)
}
\keyword{models}
fExtremes/man/ExtremesData.Rd 0000644 0001762 0000144 00000025245 11645005146 015656 0 ustar ligges users \name{ExtremesData}
\alias{ExtremesData}
\alias{emdPlot}
\alias{qqparetoPlot}
\alias{mePlot}
\alias{mrlPlot}
\alias{mxfPlot}
\alias{msratioPlot}
\alias{recordsPlot}
\alias{ssrecordsPlot}
\alias{sllnPlot}
\alias{lilPlot}
\alias{xacfPlot}
\alias{normMeanExcessFit}
\alias{ghMeanExcessFit}
\alias{hypMeanExcessFit}
\alias{nigMeanExcessFit}
\alias{ghtMeanExcessFit}
\title{Explorative Data Analysis}
\description{
A collection and description of functions for
explorative data analysis. The tools include
plot functions for emprical distributions, quantile
plots, graphs exploring the properties of exceedences
over a threshold, plots for mean/sum ratio and for
the development of records.
\cr
The functions are:
\tabular{ll}{
\code{emdPlot} \tab Plot of empirical distribution function, \cr
\code{qqparetoPlot} \tab Exponential/Pareto quantile plot, \cr
\code{mePlot} \tab Plot of mean excesses over a threshold, \cr
\code{mrlPlot} \tab another variant, mean residual life plot, \cr
\code{mxfPlot} \tab another variant, with confidence intervals, \cr
\code{msratioPlot} \tab Plot of the ratio of maximum and sum, \cr
\code{recordsPlot} \tab Record development compared with iid data, \cr
\code{ssrecordsPlot} \tab another variant, investigates subsamples, \cr
\code{sllnPlot} \tab verifies Kolmogorov's strong law of large numbers, \cr
\code{lilPlot} \tab verifies Hartman-Wintner's law of the iterated logarithm, \cr
\code{xacfPlot} \tab ACF of exceedences over a threshold, \cr
\code{normMeanExcessFit} \tab fits mean excesses with a normal density, \cr
\code{ghMeanExcessFit} \tab fits mean excesses with a GH density, \cr
\code{hypMeanExcessFit} \tab fits mean excesses with a HYP density, \cr
\code{nigMeanExcessFit} \tab fits mean excesses with a NIG density, \cr
\code{ghtMeanExcessFit} \tab fits mean excesses with a GHT density. }
}
\usage{
emdPlot(x, doplot = TRUE, plottype = c("xy", "x", "y", " "),
labels = TRUE, \dots)
qqparetoPlot(x, xi = 0, trim = NULL, threshold = NULL, doplot = TRUE,
labels = TRUE, \dots)
mePlot(x, doplot = TRUE, labels = TRUE, \dots)
mrlPlot(x, ci = 0.95, umin = mean(x), umax = max(x), nint = 100, doplot = TRUE,
plottype = c("autoscale", ""), labels = TRUE, \dots)
mxfPlot(x, u = quantile(x, 0.05), doplot = TRUE, labels = TRUE, \dots)
msratioPlot(x, p = 1:4, doplot = TRUE, labels = TRUE, \dots)
recordsPlot(x, ci = 0.95, doplot = TRUE, labels = TRUE, \dots)
ssrecordsPlot(x, subsamples = 10, doplot = TRUE, plottype = c("lin", "log"),
labels = TRUE, \dots)
sllnPlot(x, doplot = TRUE, labels = TRUE, \dots)
lilPlot(x, doplot = TRUE, labels = TRUE, \dots)
xacfPlot(x, u = quantile(x, 0.95), lag.max = 15, doplot = TRUE,
which = c("all", 1, 2, 3, 4), labels = TRUE, \dots)
normMeanExcessFit(x, doplot = TRUE, trace = TRUE, \dots)
ghMeanExcessFit(x, doplot = TRUE, trace = TRUE, \dots)
hypMeanExcessFit(x, doplot = TRUE, trace = TRUE, \dots)
nigMeanExcessFit(x, doplot = TRUE, trace = TRUE, \dots)
ghtMeanExcessFit(x, doplot = TRUE, trace = TRUE, \dots)
}
\arguments{
\item{ci}{
[recordsPlot] - \cr
a confidence level. By default 0.95, i.e. 95\%.
}
\item{doplot}{
a logical value. Should the results be plotted? By
default \code{TRUE}.
}
\item{labels}{
a logical value. Whether or not x- and y-axes should be automatically
labelled and a default main title should be added to the plot.
By default \code{TRUE}.
}
\item{lag.max}{
[xacfPlot] - \cr
maximum number of lags at which to calculate the autocorrelation
functions. The default value is 15.
}
\item{nint}{
[mrlPlot] - \cr
the number of intervals, see \code{umin} and \code{umax}. The
default value is 100.
}
\item{p}{
[msratioPlot] - \cr
the power exponents, a numeric vector. By default a sequence from
1 to 4 in unit integer steps.
}
\item{plottype}{
[emdPlot] - \cr
which axes should be on a log scale: \code{"x"} x-axis only;
\code{"y"} y-axis only; \code{"xy"} both axes; \code{""}
neither axis.
\cr
[msratioPlot] - \cr
a logical, if set to \code{"autoscale"}, then the scale of the
plots are automatically determined, any other string allows user
specified scale information through the \code{\dots} argument.
\cr
[ssrecordsPlot] - \cr
one from two options can be select either \code{"lin"}
or \code{"log"}. The default creates a linear plot.
}
\item{subsamples}{
[ssrecordsPlot] - \cr
the number of subsamples, by default 10, an integer value.
}
\item{threshold, trim}{
[qPlot][xacfPlot] - \cr
a numeric value at which data are to be left-truncated, value
at which data are to be right-truncated or the thresold value,
by default 95\%.
}
\item{trace}{
a logical flag, by default \code{TRUE}. Should the calculations
be traced?
}
\item{u}{
a numeric value at which level the data are to be truncated. By
default the threshold value which belongs to the 95\% quantile,
\code{u=quantile(x,0.95)}.
}
\item{umin, umax}{
[mrlPlot] - \cr
range of threshold values. If \code{umin} and/or \code{umax} are
not available, then by default they are set to the following
values: \code{umin=mean(x)} and \code{umax=max(x)}.
}
\item{which}{
[xacfPlot] - \cr
a numeric or character value, if \code{which="all"} then all
four plots are displayed, if \code{which} is an integer between
one and four, then the first, second, third or fourth plot will
be displayed.
}
\item{x, y}{
numeric data vectors or in the case of x an object to be plotted.
}
\item{xi}{
the shape parameter of the generalized Pareto distribution.
}
\item{\dots}{
additional arguments passed to the FUN or plot function.
}
}
\details{
\bold{Empirical Distribution Function:}
\cr\cr
The function \code{emdPlot} is a simple explanatory function. A
straight line on the double log scale indicates Pareto tail behaviour.
\cr
\bold{Quantile--Quantile Pareto Plot:}
\cr\cr
\code{qqparetoPlot} creates a quantile-quantile plot for threshold
data. If \code{xi} is zero the reference distribution is the
exponential; if \code{xi} is non-zero the reference distribution
is the generalized Pareto with that parameter value expressed
by \code{xi}. In the case of the exponential, the plot is
interpreted as follows: Concave departures from a straight line are a
sign of heavy-tailed behaviour, convex departures show thin-tailed
behaviour.
\cr
\bold{Mean Excess Function Plot:}
\cr\cr
Three variants to plot the mean excess function are available:
A sample mean excess plot over increasing thresholds, and two mean
excess function plots with confidence intervals for discrimination
in the tails of a distribution.
In general, an upward trend in a mean excess function plot shows
heavy-tailed behaviour. In particular, a straight line with positive
gradient above some threshold is a sign of Pareto behaviour in tail.
A downward trend shows thin-tailed behaviour whereas a line with
zero gradient shows an exponential tail. Here are some hints:
Because upper plotting points are the average of a handful of extreme
excesses, these may be omitted for a prettier plot.
For \code{mrlPlot} and \code{mxfPlot} the upper tail is investigated;
for the lower tail reverse the sign of the \code{data} vector.
\cr
\bold{Plot of the Maximum/Sum Ratio:}
\cr\cr
The ratio of maximum and sum is a simple tool for detecting heavy
tails of a distribution and for giving a rough estimate of
the order of its finite moments. Sharp increases in the curves
of a \code{msratioPlot} are a sign for heavy tail behaviour.
\cr
\bold{Plot of the Development of Records:}
\cr\cr
These are functions that investigate the development of records in
a dataset and calculate the expected behaviour for iid data.
\code{recordsPlot} counts records and reports the observations
at which they occur. In addition subsamples can be investigated
with the help of the function \code{ssrecordsPlot}.
\cr
\bold{Plot of Kolmogorov's and Hartman-Wintern's Laws:}
\cr\cr
The function \code{sllnPlot} verifies Kolmogorov's strong law of
large numbers, and the function \code{lilPlot} verifies
Hartman-Wintner's law of the iterated logarithm.
\cr
\bold{ACF Plot of Exceedences over a Thresold:}
\cr\cr
This function plots the autocorrelation functions of heights and
distances of exceedences over a threshold.
\cr
}
\value{
The functions return a plot.
}
\note{
The plots are labeled by default with a x-label, a y-label and
a main title. If the argument \code{labels} is set to \code{FALSE}
neither a x-label, a y-label nor a main title will be added to the
graph. To add user defined label strings just use the
function \code{title(xlab="\dots", ylab="\dots", main="\dots")}.
}
\references{
Coles S. (2001);
\emph{Introduction to Statistical Modelling of Extreme Values},
Springer.
Embrechts, P., Klueppelberg, C., Mikosch, T. (1997);
\emph{Modelling Extremal Events}, Springer.
}
\author{
Some of the functions were implemented from Alec Stephenson's
R-package \code{evir} ported from Alexander McNeil's S library
\code{EVIS}, \emph{Extreme Values in S}, some from Alec Stephenson's
R-package \code{ismev} based on Stuart Coles code from his book,
\emph{Introduction to Statistical Modeling of Extreme Values} and
some were written by Diethelm Wuertz.
}
\examples{
## Danish fire insurance data:
data(danishClaims)
danishClaims = as.timeSeries(danishClaims)
## emdPlot -
# Show Pareto tail behaviour:
par(mfrow = c(2, 2), cex = 0.7)
emdPlot(danishClaims)
## qqparetoPlot -
# QQ-Plot of heavy-tailed Danish fire insurance data:
qqparetoPlot(danishClaims, xi = 0.7)
## mePlot -
# Sample mean excess plot of heavy-tailed Danish fire:
mePlot(danishClaims)
## ssrecordsPlot -
# Record fire insurance losses in Denmark:
ssrecordsPlot(danishClaims, subsamples = 10)
}
\keyword{hplot}