Computes the causality strengths based on the comparison between predicted and real patterns and signatures in a system's dynamic model. It applies a normalization function to measure the intensity of causal influences and uses an error function for weighting if required.
Usage
fillPCMatrix(
weighted,
predictedPatternY,
realPatternY,
predictedSignatureY,
realSignatureY,
patternX,
signatureX
)
Arguments
- weighted
Logical, if TRUE, the causality strength is calculated using the error function for normalization, otherwise a binary indication (1 for accurate prediction and 0 otherwise) is used.
- predictedPatternY
Numeric vector, the predicted pattern of variable Y at a future time step.
- realPatternY
Numeric vector, the actual observed pattern of variable Y at the same future time step.
- predictedSignatureY
Numeric vector, the predicted signature vector derived from the system model for Y.
- realSignatureY
Numeric vector, the actual observed signature vector for Y.
- patternX
Numeric vector, the current observed pattern of variable X, used as the basis for prediction.
- signatureX
Numeric vector, the current observed signature vector of variable X.
Value
A dataframe with two columns: 'real' and 'predicted', representing the real and predicted causality strengths.
Details
Fill Pattern Causality Matrix with Causality Strengths
This function calculates and fills the causality strengths between predicted and real patterns and signatures for a complex system analysis. It evaluates the accuracy of predictions and computes the strength of causal relationships based on norm vectors and optionally weights these strengths using the error function (erf).
Examples
set.seed(123)
E <- 3
tau <- 1
Mx <- matrix(rnorm(200), nrow = 20)
My <- matrix(rnorm(200), nrow = 20)
Dx <- distanceMatrix(Mx, "minkowski")
Dy <- distanceMatrix(My, "minkowski")
SMx <- signatureSpace(Mx, E)
SMy <- signatureSpace(My, E)
PSMx <- patternSpace(SMx, E)
PSMy <- patternSpace(SMy, E)
CCSPAN <- (E - 1) * tau
NNSPAN <- E + 1
i <- 15
h <- 2
NNx <- pastNNsInfo(CCSPAN, NNSPAN, Mx, Dx, SMx, PSMx, i, h)
timesX <- NNx$times
projNNy <- projectedNNsInfo(My, Dy, SMy, PSMy, timesX, i, h)
pSY <- predictionY(E, projNNy, zeroTolerance = E - 1)$predictedSignatureY
pPY <- predictionY(E, projNNy, zeroTolerance = E - 1)$predictedPatternY[1]
rSY <- SMy[(i + h), ]
rPY <- PSMy[i + h]
signatureX <- SMx[i, ]
patternX <- PSMx[i, ]
weighted <- 0
pc <- fillPCMatrix(weighted, pPY, rPY, pSY, rSY, patternX, signatureX)