detecting-layers {PINstimation} | R Documentation |
Layer detection in trade-data
Description
Detects the number of information layers present in trade-data using the algorithms in Ersan (2016), Ersan and Ghachem (2022a), and Ghachem and Ersan (2022a).
Usage
detectlayers_e(data, confidence = 0.995, correction = TRUE)
detectlayers_eg(data, confidence = 0.995)
detectlayers_ecm(data, hyperparams = list())
Arguments
data |
A dataframe with 2 variables: the first corresponds to buyer-initiated trades (buys), and the second corresponds to seller-initiated trades (sells). |
confidence |
A number from |
correction |
A binary variable that determines whether the
data will be adjusted prior to implementing the algorithm of
Ersan (2016). The default value is |
hyperparams |
A list containing the hyperparameters of the |
Details
The argument 'data' should be a numeric dataframe, and contain
at least two variables. Only the first two variables will be considered:
The first variable is assumed to correspond to the total number of
buyer-initiated trades, while the second variable is assumed to
correspond to the total number of seller-initiated trades. Each row or
observation correspond to a trading day. NA
values will be ignored.
The argument hyperparams
contains the hyperparameters of the ECM
algorithm. It is either empty or contains one or more of the following
elements:
-
maxeval
: (integer
) It stands for maximum number of iterations of theECM
for each initial parameter set. When missing,maxeval
takes the default value of100
. -
tolerance
(numeric
) TheECM
algorithm is stopped when the (relative) change of log-likelihood is smaller than tolerance. When missing,tolerance
takes the default value of0.001
. -
maxinit
: (integer
) It is the maximum number of initial parameter sets used for theECM
estimation per layer. When missing,maxinit
takes the default value of20
. -
maxlayers
(integer
) It is the upper limit of number of layers used in the ECM algorithm. To find the optimal number of layers, the ECM algorithm will estimate a model for each value of the number of layers between1
andmaxlayers
, and then picks the model that has the lowest Bayes information criterion (BIC). When missing,maxlayers
takes the default value of8
.
Value
Returns an integer corresponding to the number of layers detected in the data.
References
Ersan O (2016).
“Multilayer Probability of Informed Trading.”
Available at SSRN 2874420.
Ersan O, Ghachem M (2022a).
“Identifying information types in probability of informed trading (PIN) models: An improved algorithm.”
Available at SSRN 4117956.
Ghachem M, Ersan O (2022a).
“Estimation of the probability of informed trading models via an expectation-conditional maximization algorithm.”
Available at SSRN 4117952.
Examples
# There is a preloaded quarterly dataset called 'dailytrades' with 60
# observations. Each observation corresponds to a day and contains the
# total number of buyer-initiated trades ('B') and seller-initiated
# trades ('S') on that day. To know more, type ?dailytrades
xdata <- dailytrades
# Detect the number of layers present in the dataset 'dailytrades' using the
# different algorithms and display the results
e.layers <- detectlayers_e(xdata)
eg.layers <- detectlayers_eg(xdata)
em.layers <- detectlayers_ecm(xdata)
show(c(e = e.layers, eg = eg.layers, em = em.layers))