The Model Complexity Myth

The Model Complexity Myth

(or, Yes You Can Fit Models With More Parameters Than Data Points)

An oft-repeated rule of thumb in any sort of statistical model fitting is "you can't fit a model with more parameters than data points". This idea appears to be as wide-spread as it is incorrect. On the contrary, if you construct your models carefully, you can fit models with more parameters than datapoints, and this is much more than mere trivia with which you can impress the nerdiest of your friends: as I will show here, this fact can prove to be very useful in real-world scientific applications.

A model with more parameters than datapoints is known as an under-determined system, and it's a common misperception that such a model cannot be solved in any circumstance. In this post I will consider this misconception, which I call the model complexity myth. I'll start by showing where this model complexity myth holds true, first from from an intuitive point of view, and then from a more mathematically-heavy point of view. I'll build from this mathematical treatment and discuss how underdetermined models may be addressed from a frequentist standpoint, and then from a Bayesian standpoint. (If you're unclear about the general differences between frequentist and Bayesian approaches, I might suggest reading my posts on the subject). Finally, I'll discuss some practical examples of where such an underdetermined model can be useful, and demonstrate one of these examples: quantitatively accounting for measurement biases in scientific data.

The Root of the Model Complexity Myth

While the model complexity myth is not true in general, it is true in the specific case of simple linear models, which perhaps explains why the myth is so pervasive. In this section I first want to motivate the reason for the underdetermination issue in simple linear models, first from an intuitive view, and then from a more mathematical view.

I'll start by defining some functions to create plots for the examples below; you can skip reading this code block for now:

In [1]:
# Code to create figures
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
plt.style.use('ggplot') def plot_simple_line():
rng = np.random.RandomState(42)
x = 10 * rng.rand(20)
y = 2 * x + 5 + rng.randn(20)
p = np.polyfit(x, y, 1)
xfit = np.linspace(0, 10)
yfit = np.polyval(p, xfit)
plt.plot(x, y, 'ok')
plt.plot(xfit, yfit, color='gray')
plt.text(9.8, 1,
"y = {0:.2f}x + {1:.2f}".format(*p),
ha='right', size=14); def plot_underdetermined_fits(p, brange=(-0.5, 1.5), xlim=(-3, 3),
plot_conditioned=False):
rng = np.random.RandomState(42)
x, y = rng.rand(2, p).round(2)
xfit = np.linspace(xlim[0], xlim[1])
for r in rng.rand(20):
# add a datapoint to make model specified
b = brange[0] + r * (brange[1] - brange[0])
xx = np.concatenate([x, [0]])
yy = np.concatenate([y, [b]])
theta = np.polyfit(xx, yy, p)
yfit = np.polyval(theta, xfit)
plt.plot(xfit, yfit, color='#BBBBBB')
plt.plot(x, y, 'ok') if plot_conditioned:
X = x[:, None] ** np.arange(p + 1)
theta = np.linalg.solve(np.dot(X.T, X)
+ 1E-3 * np.eye(X.shape[1]),
np.dot(X.T, y))
Xfit = xfit[:, None] ** np.arange(p + 1)
yfit = np.dot(Xfit, theta)
plt.plot(xfit, yfit, color='black', lw=2) def plot_underdetermined_line():
plot_underdetermined_fits(1) def plot_underdetermined_cubic():
plot_underdetermined_fits(3, brange=(-1, 2),
xlim=(0, 1.2)) def plot_conditioned_line():
plot_underdetermined_fits(1, plot_conditioned=True)

Fitting a Line to Data

The archetypical model-fitting problem is that of fitting a line to data: A straight-line fit is one of the simplest of linear models, and is usually specified by two parameters: the slope m and intercept b. For any observed value x, the model prediction for y under the model M is given by

yM=mx+b

for some particular choice of m and b. Given N obverved data points {xi,yi}Ny=1, it is straightforward (see below) to compute optimal values for m and b which fit this data:

In [2]:
plot_simple_line()
 
aaarticlea/png;base64,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" alt="" />

The simple line-plus-intercept is a two-parameter model, and it becomes underdetermined when fitting it to fewer than two datapoints. This is easy to understand intuitively: after all, you can draw any number of perfectly-fit lines through a single data point:

In [3]:
plot_underdetermined_line()
 
aaarticlea/png;base64,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" alt="" />

The single point simply isn't enough to pin-down both a slope and an intercept, and the model has no unique solution.

Fitting a More General Linear Model

While it's harder to see intuitively, this same notion extends to models with more terms. For example, let's think consider fitting a general cubic curve to data. In this case our model is

yM=θ0+θ1x+θ2x2+θ3x3

Note that this is still a linear model: the "linear" refers to the linearity of model parameters θrather than linearity of the dependence on the data x. Our cubic model is a four-parameter linear model, and just as a two-parameter model is underdetermined for fewer than two points, a four-parameter model is underdetermined for fewer than four points. For example, here are some of the possible solutions of the cubic model fit to three randomly-chosen points:

In [4]:
plot_underdetermined_cubic()
 
aaarticlea/png;base64,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" alt="" />

For any such simple linear model, an underdetermined system will lead to a similar result: an infinite set of best-fit solutions.

The Mathematics of Underdetermined Models

To make more progress here, let's quickly dive into the mathematics behind these linear models. Going back to the simple straight-line fit, we have our model

yM(x | θ)=θ0+θ1x

where we've replaced our slope m and intercept b by a more generalizable parameter vector θ=[θ0,θ1]. Given some set of data {xn,yn}Nn=1 we'd like to find θ which gives the best fit. For reasons I'll not discuss here, this is usually done by minimizing the sum of squared residuals from each data point, often called the χ2 of the model in reference to its expected theoretical distribution:

χ2=∑n=1N[yn−yM(xn | θ)]2

We can make some progress by re-expressing this model in terms of matrices and vectors; we'll define the vector of y values:

y=[y1,y2,y3,⋯yN]

We'll also define the design matrix which we'll call X; this contains all the information about the form of the model:

X=⎡⎣⎢⎢⎢⎢11⋮1x1x2⋮xN⎤⎦⎥⎥⎥⎥

With this formalism, the vector of model values can be expressed as a matrix-vector product:

yM=Xθ

and the χ2 can be expressed as a simple linear product as well:

χ2=(y−Xθ)T(y−Xθ)

We'd like to minimize the χ2 with respect to the parameter vector θ, which we can do by the normal means of differentiating with respect to the vector θ and setting the result to zero (yes, you can take the derivative with respect to a vector!):

dχ2dθ=−2XT(y−Xθ)=0

Solving this for θ gives the Maximum Likelihood Estimate (MLE) for the parameters,

θ^MLE=[XTX]−1XTy

Though this matrix formalism may seem a bit over-complicated, the nice part is that it straightforwardly generalizes to a host of more sophisticated linear models. For example, the cubic model considered above requires only a larger design matrix X:

X=⎡⎣⎢⎢⎢⎢⎢11⋮1x1x2⋮xNx21x22⋮x2Nx31x32⋮x3N⎤⎦⎥⎥⎥⎥⎥

The added model complexity is completely encapsulated in the design matrix, and the expression to compute θ^MLE from X is unchanged!

Why Underdetermined Models Break

Taking a look at this Maximum Likelihood solution for θ, we see that there is only one place that it might go wrong: the inversion of the matrix XTX. If this matrix is not invertible (i.e. if it is asingular matrix) then the maximum likelihood solution will not be well-defined.

The number of rows in X corresponds to the number of data points, and the number of columns in X corresponds to the number of parameters in the model. It turns out that a matrix C=XTX will always be singular if X has fewer rows than columns, and this is the source of the problem. For underdetermined models, XTX is a singular matrix, and so the maximum likelihood fit is not well-defined.

Let's take a look at this in the case of fitting a line to the single point shown above, (x=0.37,y=0.95). For this value of x, here is the design matrix:

In [5]:
X = np.array([[1, 0.37]])

We can use this to compute the normal matrix, which is the standard name for XTX:

In [6]:
C = np.dot(X.T, X)

If we try to invert this, we will get an error telling us the matrix is singular:

In [7]:
np.linalg.inv(C)
 
---------------------------------------------------------------------------
LinAlgError Traceback (most recent call last)
<ipython-input-7-a6d66d9f99af> in <module>()
----> 1 np.linalg.inv(C) /Users/jakevdp/anaconda/envs/py34/lib/python3.4/site-packages/numpy/linalg/linalg.py in inv(a)
518 signature = 'D->D' if isComplexType(t) else 'd->d'
519 extobj = get_linalg_error_extobj(_raise_linalgerror_singular)
--> 520 ainv = _umath_linalg.inv(a, signature=signature, extobj=extobj)
521 return wrap(ainv.astype(result_t))
522 /Users/jakevdp/anaconda/envs/py34/lib/python3.4/site-packages/numpy/linalg/linalg.py in _raise_linalgerror_singular(err, flag)
88
89 def _raise_linalgerror_singular(err, flag):
---> 90 raise LinAlgError("Singular matrix")
91
92 def _raise_linalgerror_nonposdef(err, flag): LinAlgError: Singular matrix

Evidently, if we want to fix the underdetermined model, we'll need to figure out how to modify the normal matrix so it is no longer singular.

Fixing an Underdetermined Model: Conditioning

One easy way to make a singular matrix invertible is to condition it: that is, you add to it some multiple of the identity matrix before performing the inversion (in many ways this is equivalent to "fixing" a divide-by-zero error by adding a small value to the denominator). Mathematically, that looks like this:

C=XTX+σI

For example, by adding σ=10−3 to the diagonal of the normal matrix, we condition the matrix so that it can be inverted:

In [8]:
cond = 1E-3 * np.eye(2)
np.linalg.inv(C + cond)
Out[8]:
array([[ 121.18815362, -325.16038316],
[-325.16038316, 879.69065823]])

Carrying this conditioned inverse through the computation, we get the following intercept and slope for our underdetermined problem:

In [9]:
b, m = np.linalg.solve(C + cond,
np.dot(X.T, [0.95]))
print("Conditioned best-fit model:")
print("y = {0:.3f} x + {1:.3f}".format(m, b))
 
Conditioned best-fit model:
y = 0.309 x + 0.835
In [10]:
plot_conditioned_line()
 
aaarticlea/png;base64,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" alt="" />

This conditioning caused the model to settle on a particular one of the infinite possibilities for a perfect fit to the data. Numerically we have fixed our issue, but this arbitrary conditioning is more than a bit suspect: why is this particular result chosen, and what does it actually mean in terms of our model fit? In the next two sections, we will briefly discuss the meaning of this conditioning term from both a frequentist and Bayesian perspective.

Frequentist Conditioning: Regularization

In a frequentist approach, this type of conditioning is known as regularization. Regularization is motivated by a desire to penalize large values of model parameters. For example, in the underdetermined fit above (with (x,y)=(0.37,0.95)), you could fit the data perfectly with a slope of one billion and an intercept near negative 370 million, but in most real-world applications this would be a silly fit. To prevent this sort of canceling parameter divergence, in a frequentist setting you can "regularize" the model by adding a penalty term to the χ2:

χ2reg=χ2+λ θTθ

Here λ is the degree of regularization, which must be chosen by the person implementing the model.

Using the expression for the regularized χ2, we can minimize with respect to θ by again taking the derivative and setting it equal to zero:

dχ2dθ=−2[XT(y−Xθ)−λθ]=0

This leads to the following regularized maximum likelihood estimate for θ:

θ^MLE=[XTX+λI]−1XTy

Comparing this to our conditioning above, we see that the regularization degree λ is identical to the conditioning term σ that we considered above. That is, regulariation of this form is nothing more than a simple conditioning of XTX, with λ=σ. The result of this conditioning is to push the absolute values of the parameters toward zero, and in the process make an ill-defined problem solvable.

I'll add that the above form of regularization is known variably as L2-regularization or Ridge Regularization, and is only one of the possible regularization approaches. Another useful form of regularization is L1-regularization, also known as Lasso Regularization, which has the interesting property that it favors sparsity in the model.

Bayesian Conditioning: Priors

Regularization illuminates the meaning of matrix conditioning, but it still sometimes seems like a bit of black magic. What does this penalization of model parameters within the χ2 actually mean? Here, we can make progress in understanding the problem by examining regularization from a Bayesian perspective.

As I pointed out in my series of posts on Frequentism and Bayesianism, for many simple problems, the frequentist likelihood (proportional to the negative exponent of the χ2) is equivalent to the Bayesian posterior – albeit with a subtlely but fundamentally different interpretation.

The Bayesian posterior probability on the model parameters θ is given by

P(θ | D,M)=P(D | θ,M)P(θ | M)P(D | M)

where the most important terms are the likelihood P(D | θ,M) and the prior P(θ | M). From the expected correspondence with the frequentist result, we can write:

P(D | θ,M)P(θ | M)∝exp[−χ2]

Because the term on the right-hand-side has no θ dependence, we can immediately see that

P(D | θ,M)∝exp[−χ2]P(θ | M)∝1

That is, the simple frequentist likelihood is equivalent to the Bayesian posterior for the model with an implicit flat prior on θ.

To understand the meaning of regularization, let's repeat this exercise with the regularized χ2:

P(D | θ,M)P(θ | M)∝exp[−χ2−λ |θ|2]

The regularization term in the χ2 becomes a second term in the product which depends only on θ, thus we can immediately write

P(D | θ,M)∝exp[−χ2]P(θ | M)∝exp[−λ |θ|2]

So we see that ridge regularization is equivalent to applying a Gaussian prior to your model parameters, centered at θ=0 and with a width σP=(2λ)−2. This insight lifts the cover off the black box of regularization, and reveals that it is simply a roundabout way of adding a Bayesian prior within a frequentist paradigm. The stronger the regularization, the narrower the implicit Gaussian prior is.

Returning to our single-point example above, we can quickly see how this intuition explains the particular model chosen by the regularized fit; it is equivalent to fitting the line while taking into account prior knowledge that both the intercept and slope should be near zero:

In [11]:
plot_conditioned_line()
 
aaarticlea/png;base64,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" alt="" />

The benefit of the Bayesian view is that it helps us understand exactly what this conditioning means for our model, and given this understanding we can easily extend use more general priors. For example, what if you have reason to believe your slope is near 1, but have no prior information on your intercept? In the Bayesian approach, it is easy to add such information to your model in a rigorous way.

But regardless of which approach you use, this central fact remains clear: you can fit models with more parameters than data points, if you restrict your parameter space through the use of frequentist regularization or Bayesian priors.

Underdetermined Models in Action

There are a few places where these ideas about underdetermined models come up in real life. I'll briefly discuss a couple of them here, and then walk through the solution of a simple (but rather interesting) problem that demonstrates these ideas.

Compressed Sensing: Image Reconstruction

One area where underdetermined models are often used is in the field of Compressed Sensing. Compressed sensing comprises a set of models in which underdetermined linear systems are solved using a sparsity prior, the classic example of which is the reconstruction of a full image from just a handful of its pixels. As a simple linear model this would fail, because there are far more unknown pixels than known pixels. But by carefully training a model on the structure of typical images and applying priors based on sparsity, this seemingly impossible problem becomes tractable. This 2010 Wired article has a good popular-level discussion of the technique and its applications, and includes this image showing how a partially-hidden input image can be iteratively reconstructed from a handful of pixels using a sparsity prior:

In [12]:
from IPython.display import Image
Image('http://www.wired.com/magazine/wp-content/images/18-03/ff_algorithm2_f.jpg')
Out[12]:
aaarticlea/jpeg;base64,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" alt="" />

Kernel-based Methods: Gaussian Processes

Another area where a classically underdetermined model is solved is in the case of Gaussian Process Regression. Gaussian Processes are an interesting beast, and one way to view them is that rather than fitting, say, a two-parameter line or four-parameter cubic curve, they actually fit aninfinite-dimensional model to data! They accomplish this by judicious use of certain priors on the model, along with a so-called "kernel trick" which solves the infinite dimensional regression implicitly using a finite-dimensional representation constructed based on these priors.

In my opinion, the best resource to learn more about Gaussian Process methods is the Gaussian Processes for Machine Learning book, which is available for free online (though it is a bit on the technical side). You might also take a look at the scikit-learn Gaussian Process documentation. If you'd like to experiment with a rather fast Gaussian Process implementation in Python, check out the george library.

Imperfect Detectors: Extrasolar Planets

Another place I've seen effective use of the above ideas is in situations where the data collection process has unavoidable imperfections. There are two basic ways forward when working with such noisy and biased data:

  • you can pre-process the data to try to remove and/or correct data imperfections, and then fit a conventional model to the corrected data.
  • you can account for the data imperfections along with interesting model parameters as part of a unified model: this type of unified approach is often preferable in scientific settings, where even the most careful pre-processing can lead to biased results.

If you'd like to see a great example of this style of forward-modeling analysis, check out the efforts of David Hogg's group in finding extrasolar planets in the Kepler survey's K2 data; there's a nice astrobytes post which summarizes some of these results. While the group hasn't yet published any results based on truly underdetermined models, it is easy to imagine how this style of comprehensive forward-modeling analysis could be pushed to such an extreme.

Example: Fitting a Model to Biased Data

While it might be fun to dive into the details of models for noisy exoplanet searches, I'll defer that to the experts. Instead, as a more approachable example of an underdetermined model, I'll revisit a toy example in which a classically underdetermined model is used to account for imperfections in the input data.

Imagine you have some observed data you would like to model, but you know that your detector is flawed such that some observations (you don't know which) will have a bias that is not reflected in the estimated error: in short, there are outliers in your data. How can you fit a model to this data while accounting for the possibility of such outliers?

To make this more concrete, consider the following data, which is drawn from a line with noise, and includes several outliers:

In [13]:
rng = np.random.RandomState(42)
theta = [-10, 2]
x = 10 * rng.rand(10)
dy = 2 + 2 * rng.rand(10)
y = theta[0] + theta[1] * x + dy * rng.randn(10)
y[4] += 15
y[7] -= 10
plt.errorbar(x, y, dy, fmt='ok', ecolor='gray');
 
aaarticlea/png;base64,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" alt="" />

If we try to fit a line using the standard χ2 minimization approach, we will find an obviously biased result:

In [14]:
from scipy import optimize

def chi2(theta, x=x, y=y, dy=dy):
y_model = theta[0] + theta[1] * x
return np.sum(0.5 * ((y - y_model) / dy) ** 2) theta1 = optimize.fmin(chi2, [0, 0], disp=False) xfit = np.linspace(0, 10)
plt.errorbar(x, y, dy, fmt='ok', ecolor='gray')
plt.plot(xfit, theta1[0] + theta1[1] * xfit, '-k')
plt.title('Standard $\chi^2$ Minimization');
 
aaarticlea/png;base64,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uHABa9aswZAhQwAAFRUVWLZsGSIjIwEAI0aMwKOPPuqYaomIqE96HfpRUVF44oknsH379g7P6XQ6rFu3rk+FERGR4/U69FuP5ImIyH30OvS7UlFRgSeffBKBgYH42c9+hlGjRkmxGyIislOXob969WrU1NR0WD537lwkJCTYfI1Go8GWLVtw00034ezZs3jxxRexfv16BAQEWK1nNpthNpvFx8nJyTAYDL3lWXziAAAFBElEQVR5Dx5JrVbLXYLLYFu0YVu0YVu0ycnJEX83Go0wGo2dryz00apVq4QzZ870+vlW77zzTl9L8RhsizZsizZsizZsizb2toXDL9msq6tDS0sLAKC8vBylpaWIiIhw9G6IiKgXet2nf/ToUWRlZaGurg5r1qxBTEwMMjIy8NVXX2H37t3w9vaGSqXCokWL0L9/f0fWTEREvdTr0J80aRImTZrUYfmtt96KW2+91e7tddkHpTBsizZsizZsizZsizb2toVKEARBolqIiMjFcBoGIiIFYegTESkIQ5+ISEEkGZFrr1OnTuGNN95AS0sLZs6ciTlz5shdkiwuXbqETZs2oba2FiqVCrfffjvuueceucuSVUtLC55++mloNBo8/fTTcpcjmytXruD111/H+fPnAQDp6ekYMWKEzFXJY8+ePThw4ABUKhWioqKwZMkS9OvXT+6ynGLz5s04efIkgoKCkJmZCQC4fPkyNmzYgEuXLkGr1WLZsmVdXjEp+5F+S0sLdu7ciYyMDKxfvx4HDx4UP9hK4+Pjg/nz52P9+vV44YUX8Omnnyq2LVp9/PHHGDhwIFQqldylyCorKwsTJkzAhg0b8NJLL2HgwIFylySLiooKfPbZZ1i7di0yMzPR0tKCgwcPyl2W08yYMQMZGRlWy3JzcxEbG4uNGzdi7NixyM3N7XIbsod+QUEBdDodwsPD4ePjg8TERBw/flzusmQREhKCwYMHAwD8/f0RGRmJ6upqeYuSUWVlJU6ePImZM2dCyReZXb16FV9//TVmzpwJAPD29kZgYKDMVckjMDAQ3t7esFgsaG5uhsVigUajkbsspxk9enSHo/jjx48jKSkJADB9+nQcO3asy23I3r1TVVWFsLAw8bFGo0FBQYGMFbmGiooKFBUVYfjw4XKXIps333wTDz30EK5duyZ3KbKqqKhAUFAQNm/ejOLiYsTExCA1NRV+fn5yl+Z0N910E2bPno0lS5bA19cXcXFxiI2NlbssWdXW1iIkJAQAEBwcjNra2i7Xl/1InzpqaGjA+vXrsWDBAvj7+8tdjizy8/MRFBSEmJgYRR/lA0BzczMKCwtx5513Yu3atfD39+/2K7ynKisrw0cffYRNmzZh69ataGhowIEDB+Quy2X0pBtU9tDXaDSorKwUH1dWVirq69qNmpqakJmZialTp9oc8awU33zzDfLz87F06VJs3LgRZrMZr732mtxlySIsLAwajQbDhg0DcH3Ue2FhocxVyePs2bMYOXIk1Go1vL29ccstt+Cbb76RuyxZBQcHi7MhV1dXIzg4uMv1ZQ/9oUOHoqysDBUVFWhqasKhQ4c6nbbZ0wmCgNdffx2RkZG499575S5HVikpKdiyZQs2bdqExx9/HEajEY899pjcZckiJCQEAwYMQElJCQDgyy+/VOyJXIPBgP/+979obGyEIAiKbotWCQkJ2LdvHwBg//79mDhxYpfru8Q0DCdPnrS6ZPO+++6TuyRZfP3113j22WcRFRUlfk1LSUnB+PHjZa5MXl999RU+/PBDPPXUU3KXIpuioiJs3boVTU1NiIiIwJIlSxR7Mvf999/H/v37oVKpEBMTg8WLF8PHR/bTk07x8ssv4/Tp06irq0NISAiSk5MxceJEuy7ZdInQJyIi55C9e4eIiJyHoU9EpCAMfSIiBWHoExEpCEOfiEhBGPpERArC0CciUpD/B9ddHFaeMhX1AAAAAElFTkSuQmCC" alt="" />

This reflects a well-known deficiency of χ2 minimization: it is not robust to the presence of outliers.

What we would like to do is propose a model which somehow accounts for the possibility that each of these points may be the result of a biased measurement. One possible route is to add Nnew model parameters: one associated with each point which indicates whether it is an outlier or not. If it is an outlier, we use the standard model likelihood; if not, we use a likelihood with a much larger error. The result for our straight-line fit will be a model with N+2 parameters, where N is the number of data points. An overzealous application of lessons from simple linear models might lead you to believe this model can't be solved. But, if carefully constructed, it can!

Let's show how it can be done.

Our linear model is:

yM(x | θ)=θ0+θ1x

For a non-outlier (let's call it an "inlier") point at x, y, with error on y given by dy, the likelihood is

Lin,i(D | θ)=12πdy2i−−−−−√exp−[yi−yM(xi | θ)]22dy2i

For an "outlier" point, the likelihood is

Lout,i(D | θ)=12πσ2y−−−−√exp−[yi−yM(xi | θ)]22σ2y

where σy is the standard deviation of the y data: note that the only difference between the "inlier" and "outlier" likelihood is the width of the Gaussian distribution.

Now we'll specify N additional binary model parameters {gi}Ni=1 which indicate whether point iis an outlier (gi=1) or an inlier (gi=0). With this, the overall Likelihood becomes:

L(D | θ,g)=∏i[(1−gi) Lin,i+gi Lout,i]

We will put a prior on these indicator variables g which encourages sparsity of outliers; this can be accomplished with a simple L1 prior, which penalizes the sum of the g terms:

P(g)=exp[−∑igi]

where, recall, gi∈{0,1}.

Though you could likely solve for a point estimate of this model, I find the Bayesian approach to be much more straightforward and interpretable for a model this complex. To fit this, I'll make use of the excellent emcee package. Because emcee doesn't have categorical variables, we'll instead allow gi to range continuously between 0 and 1, so that any single point will be some mixture of "outlier" and "inlier".

We start by defining a function which computes the log-posterior given the data and model parameters, using some computational tricks for the sake of floating-point accuracy:

In [15]:
# theta will be an array of length 2 + N, where N is the number of points
# theta[0] is the intercept, theta[1] is the slope,
# and theta[2 + i] is the weight g_i def log_prior(theta):
g = theta[2:]
#g_i needs to be between 0 and 1
if (np.any(g < 0) or np.any(g > 1)):
return -np.inf # recall log(0) = -inf
else:
return -g.sum() def log_likelihood(theta, x, y, dy):
sigma_y = np.std(y)
y_model = theta[0] + theta[1] * x
g = np.clip(theta[2:], 0, 1) # g<0 or g>1 leads to NaNs in logarithm
# log-likelihood for in-lier
logL_in = -0.5 * (np.log(2 * np.pi * dy ** 2) + ((y - y_model) / dy)** 2)
# log-likelihood for outlier
logL_out = -0.5 * (np.log(2 * np.pi * sigma_y ** 2) + ((y - y_model) / sigma_y) ** 2)
return np.sum(np.logaddexp(np.log(1 - g) + logL_in,
np.log(g) + logL_out)) def log_posterior(theta, x, y, dy):
return log_prior(theta) + log_likelihood(theta, x, y, dy)

Now we use the emcee package to run this model. Note that because of the high dimensionality of the model, the run_mcmc command below will take a couple minutes to complete:

In [16]:
import emcee

ndim = 2 + len(x)  # number of parameters in the model
nwalkers = 50 # number of MCMC walkers
nburn = 10000 # "burn-in" period to let chains stabilize
nsteps = 15000 # number of MCMC steps to take # set walkers near the maximum likelihood
# adding some random scatter
rng = np.random.RandomState(0)
starting_guesses = np.zeros((nwalkers, ndim))
starting_guesses[:, :2] = rng.normal(theta1, 1, (nwalkers, 2))
starting_guesses[:, 2:] = rng.normal(0.5, 0.1, (nwalkers, ndim - 2)) sampler = emcee.EnsembleSampler(nwalkers, ndim, log_posterior, args=[x, y, dy])
sampler.run_mcmc(starting_guesses, nsteps) sample = sampler.chain # shape = (nwalkers, nsteps, ndim)
sample = sampler.chain[:, nburn:, :].reshape(-1, ndim)
 
-c:21: RuntimeWarning: divide by zero encountered in log
-c:22: RuntimeWarning: divide by zero encountered in log

The Runtime warnings here are normal – they just indicate that we've hit log(0) = -inf for some pieces of the calculation.

With the sample chain determined, we can plot the marginalized distribution of samples to get an idea of the value and uncertainty of slope and intercept with this model:

In [17]:
plt.plot(sample[:, 0], sample[:, 1], ',k', alpha=0.1)
plt.xlabel('intercept')
plt.ylabel('slope');
 
aaarticlea/png;base64,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" alt="" />

Finally, we can make use of the marginalized values of all N+2 parameters and plot both the best-fit model, along with a model-derived indication of whether each point is an outlier:

In [18]:
theta2 = np.mean(sample[:, :2], 0)
g = np.mean(sample[:, 2:], 0)
outliers = (g > 0.5) plt.errorbar(x, y, dy, fmt='ok', ecolor='gray')
plt.plot(xfit, theta1[0] + theta1[1] * xfit, color='gray')
plt.plot(xfit, theta2[0] + theta2[1] * xfit, color='black')
plt.plot(x[outliers], y[outliers], 'ro', ms=20, mfc='none', mec='red')
plt.title('Bayesian Fit');
 
aaarticlea/png;base64,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" alt="" />

The red circles mark the points that were determined to be outliers by our model, and the black line shows the marginalized best-fit slope and intercept. For comparison, the grey line is the standard maximum likelihood fit.

Notice that we have successfully fit an (N+2)-parameter model to N data points, and the best-fit parameters are actually meaningful in a deep way – the N extra parameters give us individual estimates of whether each of the N data points has misreported errors. I think this is a striking example of how a model that would be considered impossible under the model complexity myth can be solved in practice to produce very useful results!

Conclusion

I hope you will see after reading this post that the model complexity myth, while rooted in a solid understanding of simple linear models, should not be assumed to apply to all possible models. In fact, it is possible to fit models with more parameters than datapoints: and for the types of noisy, biased, and heterogeneous data we often encounter in scientific research, you can make a lot of progress by taking advantage of such models. Thanks for reading!

This post was written entirely in the IPython notebook. You can download this notebook, or see a static view here.

上一篇:vue-cli报错:Class constructor FileManager cannot be invoked without 'new'


下一篇:JAVA图片相关