Code for Bucher & Brandenburger (2022): "Divisive normalization is an efficient code for multivariate Pareto-distributed environments"
Figure 4 is available in better quality here.
The empirical analysis uses the van Hateren image data set (described here) and the Matlab package matlabPyrTools.
- Install nhist in the working directory. matlabPyrTools and export_fig should be included as submodules in externalPackages.
- The MEX files of matlabPyrTools can be compiled by running externalPackages/matlabPyrTools/MEX/compilePyrTools.m (some .c files may only compile after adding "#include <string.h>").
- Save http://pirsquared.org/research/vhatdb/full/vanhateren_iml.zip into a folder and convert to .mat as needed.
- main.py produces figures
- pdfs.py contains the expressions for the various probability densities
- mixtureModel.py generates a random sample of Pareto-distributed random variables as a gamma-weighted mixture of independent Weibull random variables
- plotFunctions.py contains plotting utility functions
- varianceFormulae_verification.py numerically verifies the result on the Pareto distribution as a mixture model and uses it to generate random samples in order to verify that empirical moments coincide with theoretical ones
- main.m Maximum Likelihood Estimation of Pareto model using filter responses to images from the van Hateren dataset
- Pareto_pdf.m contains the pdf of the Pareto distribution
- logLikelihood_Pareto.m computes the log-likelihood under the Pareto distribution
- logLikelihood_mvtdist.m computes the log-likelihood under the multivariate-t-distribution
- filterCorrelationHist.m computes the filter responses of a steerable pyramid using function buildSCFpyr from matlabPyrTools