Partial Cointegration & Statistical Arbitrage

Finance, Risk & Regime Modeling 2017–2018 Applied Prototype

Overview

This project explored a statistical arbitrage strategy based on partial cointegration, a framework in which the spread between two financial assets can contain both a mean-reverting component and a persistent stochastic trend.

The goal was to test whether partial cointegration could generate more robust pairs-trading signals than classical cointegration approaches based on raw spread residuals.

The project was implemented in R and should be interpreted as an applied quantitative finance prototype rather than as a production trading system.

Problem

Classical pairs trading often relies on the idea that the spread between two assets is stationary and mean-reverting. In practice, this assumption can be too restrictive.

Many financial spreads are only partially mean-reverting: one component may revert toward equilibrium, while another component may behave like a persistent random walk.

Partial cointegration addresses this by decomposing the observed spread into a tradable mean-reverting component and a non-stationary component.

Model Idea

Given two asset price series, the spread can be written as:

spread_t = y_t − α − β x_t

In a partial cointegration framework, the spread is decomposed as:

spread_t = M_t + R_t

where M_t is the mean-reverting component and R_t is the persistent random-walk component.

The trading idea is to base entry and exit decisions on the mean-reverting part of the spread, rather than on the raw spread alone.

Dataset and Universe

Example — Trading Signal

A standard pairs-trading signal is based on the normalized spread:

z_t = (spread_t − μ) / σ

Positions are opened when the spread moves sufficiently far from its estimated equilibrium and closed when the spread reverts.

The partial cointegration approach tests whether the latent mean-reverting component produces cleaner and more stable trading signals than the raw spread or a classical Engle–Granger residual.

Technologies and Methods Used

Implemented Elements

Preliminary Results

The prototype compared signals based on classical cointegration with signals derived from the partial cointegration framework.

Preliminary experiments suggested that the partial cointegration approach could produce smoother signals and reduce some false entries relative to raw-spread or classical cointegration strategies.

These results should be interpreted cautiously. A robust trading evaluation requires strict out-of-sample testing, realistic transaction costs, liquidity constraints and controls for data-snooping bias.

Figures

Figures in preparation.

R Implementation Sketch

The implementation was developed in R using a workflow based on pair selection, cointegration diagnostics, partial cointegration estimation and signal construction.

CI  <- egcm(X, Y)
PCI <- fit.pci(X, Y)

spread <- Y - alpha - beta * X
z      <- (spread - mean(spread)) / sd(spread)

This sketch illustrates the logic of the workflow rather than the full implementation.

Evaluation Limits

The project included internal performance diagnostics, but it should not be interpreted as a fully validated trading system.

Methodological Note

The main value of the project is methodological: it treats financial spreads as latent dynamic objects rather than as simple residual series.

This connects naturally to broader themes in quantitative finance and financial risk modeling: observed prices are noisy signals of underlying latent processes, and trading or risk decisions depend on how those latent processes are estimated.

Modern Extension

A modern version of this project would keep the partial cointegration framework but evaluate it with a more rigorous experimental design.

Resources

Technical report in preparation.

Technical Note: Partial Cointegration and Kalman Representation

Code available upon request.

Technical Context