Background
Financial returns often exhibit statistical behaviour that differs substantially from the assumptions of simple probability models.
Using historical Dow Jones Industrial Average (DJIA) closing prices from 1995 to 2023, I analysed the distribution of daily percentage returns and implemented Maximum Likelihood Estimation (MLE) to estimate the parameters of a Normal distribution directly from the data.
The project addressed two related but distinct questions:
- Can the parameters of a chosen probability model be estimated correctly from observed data?
- Does that probability model adequately describe the empirical distribution in the first place?
The distinction is important because an optimisation procedure can correctly identify the best parameters within a model family even when that family provides an incomplete description of the observed data.
Research Goals
- Construct a daily percentage-return series from historical DJIA prices.
- Examine the empirical return distribution using descriptive statistics and visualisation.
- Implement a Normal log-likelihood objective from scratch.
- Estimate distribution parameters numerically using
scipy.optimize.minimize. - Validate the custom implementation against SciPy's built-in
.fit()estimator. - Compare the fitted Normal density with the empirical return distribution and examine the limitations of the modelling assumption.
Dataset
Historical DJIA closing prices were retrieved from Stooq for the period:
January 1995 – November 2023
Daily percentage returns were derived from consecutive closing prices and examined both numerically and visually before fitting the probability model.
Methodology
Distribution Diagnostics
I examined descriptive characteristics of the return series, including:
- Sample mean
- Sample variance
- Sample skewness
- Sample excess kurtosis
- The empirical return distribution
These diagnostics were used to examine how closely the observed data resembled the symmetric, light-tailed behaviour assumed by a Normal distribution.
Maximum Likelihood Estimation
I implemented a custom negative log-likelihood function for a Normal distribution parameterised by:
- mean,
μ - standard deviation,
σ
The parameters were estimated numerically using scipy.optimize.minimize, with a constraint ensuring that the estimated standard deviation remained positive.
Independent Validation
To verify the implementation, I independently estimated the same parameters using:
scipy.stats.norm.fit
The fitted densities produced by the custom optimisation and SciPy implementation were then compared with each other and with the empirical return distribution.
Results
The custom MLE implementation and SciPy's built-in Normal fitting procedure produced the same estimated parameters to four decimal places.
This provided a useful implementation check: the likelihood function and numerical optimisation were reproducing the standard maximum-likelihood solution correctly.
However, agreement between the two estimators did not imply that the Normal distribution was an adequate model for the empirical returns.
Distributional diagnostics showed substantial departures from the behaviour expected under a simple Normal model, particularly in the tails. The fitted Normal density therefore provided a controlled model for validating the estimation procedure, but did not capture all features of the observed return distribution.
The central result was the distinction between two forms of correctness:
the parameters can be estimated correctly conditional on a chosen model family, while the model family itself can still be an inadequate representation of the data.
Contributions
- Constructed and analysed a long-horizon DJIA daily-return series.
- Examined the empirical distribution using descriptive statistics and distributional visualisation.
- Implemented a negative log-likelihood objective from scratch for Normal parameter estimation.
- Used numerical optimisation to estimate the parameters of the Normal model.
- Independently reproduced the same parameter estimates using
scipy.stats.norm.fit. - Compared the fitted probability model with the empirical return distribution.
- Distinguished between correct parameter estimation within a model family and the appropriateness of the model family itself.
Limitations
The implemented MLE experiment fitted only a Normal distribution.
The empirical diagnostics suggested that distributions capable of representing heavier tails or asymmetry could provide alternative modelling choices, but these families were not estimated and benchmarked within this project.
The results should therefore not be interpreted as identifying the best probability distribution for DJIA returns. The Normal model instead provided a controlled setting for implementing and validating MLE while examining the consequences of an imperfect distributional assumption.
Impact
The central lesson of this project was that a modelling procedure can be implemented correctly without making the resulting model an adequate description of reality.
Two independent estimation procedures can agree on the optimal parameters because they are solving the same optimisation problem. That agreement validates the implementation, but it does not validate the assumptions defining the model itself.
The project therefore provided practical experience in separating estimation correctness from model validity, an important distinction when interpreting statistical and machine-learning results.
