Computing the Marginal Likelihood
Page 901 measured that the likelihood integrates to over , so something has to supply the missing normaliser. Page 906 found it appearing as a constant offset of . Page 907 found the same number as a predictive density.
This page computes it directly — and then uses it for the thing §8.6.2 said it was for.
What you’ll learn
Section titled “What you’ll learn”- Equations 9.60–9.64: the marginal likelihood in closed form, .
- That it is the same number pages 906 and 907 produced by two other routes: .
- Equations 9.62–9.63 checked by Monte Carlo.
- Something the book does not give: the form. Measured, it agrees to at and runs faster at .
- The payoff. The evidence peaks at — the same degree a -point held-out test set picks, with no held-out data used.
- And the catch: measured across seven prior widths, the ordering of degrees 3 and 5 flips, and a degree-9 model loses nats where a degree-1 model loses .
Intuition: the likelihood, averaged instead of maximised
Section titled “Intuition: the likelihood, averaged instead of maximised”Maximum likelihood asks how well can this model class fit the data? and answers by finding the best . Page 903 proved that answer can only improve with capacity, so it cannot choose.
The marginal likelihood asks a different question: how well does this model class predict the data, on average over what it believed beforehand?
An average is not a maximum. A flexible class contains some that fit beautifully — and vastly more that do not. Adding capacity raises the maximum and can lower the average, so this quantity has a peak where the likelihood has none.
That is page 808’s “automatic Occam’s razor” made concrete, and the price is the same one page 808 measured: an average over the prior depends on the prior.
flowchart TD A["p(Y | X, theta): the likelihood"] A -->|"MAXIMISE over theta"| B["Eq 9.19: rises with M, always
-112.66 at M=0 to +6.91 at M=9"] A -->|"AVERAGE over p(theta)"| C["Eq 9.64: the evidence
peaks at M = 4"] B --> D["cannot choose a model"] C --> E["chooses M = 4 — the same
degree a test set picks"] C -.->|"but it is an average
over the PRIOR"| F["widen b^2 and every
evidence falls: M=9 by 91.07,
M=1 by 20.60"] C -->|"Eq 9.64 as written"| G["an N x N determinant, O(N^3)"] C -->|"Woodbury"| H["a K x K determinant
4341x faster at N = 4000"]
§9.3.5 The marginal likelihood
Section titled “§9.3.5 The marginal likelihood”The generative process, restated (Equations 9.60):
and the quantity wanted (Equation 9.61):
The book computes it “in two steps: First, we show that the marginal likelihood is Gaussian (as a distribution in ); second, we compute the mean and covariance.”
Step one rests on §6.5.2: the product of two Gaussians is an unnormalized Gaussian, and a linear transformation of a Gaussian is Gaussian. Step two is Equations 9.62 and 9.63:
giving Equation 9.64:
This is Equation 9.38 for the whole training set at once — parameter uncertainty propagated through , plus noise.
The form the book does not give
Section titled “The form the book does not give”Equation 9.64 requires the determinant and inverse of an matrix — in the number of data points. But the matrix is a rank- update of a multiple of the identity, and Woodbury’s identity turns it into a problem:
and the first factor is — page 906’s posterior precision, already computed.
The payoff: choosing without a test set
Section titled “The payoff: choosing without a test set”§8.6.2 argued for the marginal likelihood as a model-selection criterion. This is the chapter where it becomes computable.
And the catch
Section titled “And the catch”Worked example by hand
Section titled “Worked example by hand”Derive Equation 9.64 without doing the integral, using only the rules page 905 already used.
Step 1: write the data as a linear map plus noise. From Equation 9.60, with and , independent.
Step 2: it is Gaussian, for free. A linear map of a Gaussian is Gaussian; a sum of independent Gaussians is Gaussian. So is Gaussian and two moments determine it completely — no integral needs doing.
Step 3: the mean (Equation 6.50, Equation 9.62):
Step 4: the covariance (Equation 6.51, Equation 9.63), using independence so cross-terms vanish:
Step 5: recognise it. Equation 9.38 gave for one test input. This is the same expression for all training inputs jointly, with the off-diagonal entries being page 905’s covariance function .
So the marginal likelihood is the prior predictive density, evaluated at the targets you actually observed. That is exactly why page 907 got the same number from a completely different starting point.
Step 6: where the Occam factor hides. Expand the log:
A richer model makes bigger in every direction it adds — improving the first term and worsening the second. Nobody wrote the penalty; it is of a covariance that had to grow. Page 809 measured the same split for Chapter 8’s evidence to .
See it move
Section titled “See it move”From scratch
Section titled “From scratch”import numpy as np
SIG = 0.2
def truth(x):
return -np.sin(x / 5) + np.cos(x)
def design(x, M):
return np.vander(np.asarray(x, float), M + 1, increasing=True)
def log_ev_NN(P, yv, m0, S0, sig=SIG):
"""Equation 9.64, exactly as the book writes it: an N x N determinant."""
N = len(yv)
C = P @ S0 @ P.T + sig ** 2 * np.eye(N)
d = yv - P @ m0
_, ld = np.linalg.slogdet(C)
return float(-0.5 * (d @ np.linalg.solve(C, d) + ld + N*np.log(2*np.pi)))
def log_ev_KK(P, yv, m0, S0, sig=SIG):
"""The same number through a K x K determinant, via Woodbury."""
N, K = P.shape
A = np.linalg.inv(S0) + P.T @ P / sig ** 2 # = S_N^-1
d = yv - P @ m0
b = P.T @ d / sig ** 2
q = (d @ d) / sig ** 2 - b @ np.linalg.solve(A, b)
_, ldA = np.linalg.slogdet(A)
_, ldS0 = np.linalg.slogdet(S0)
ld = ldA + ldS0 + N * np.log(sig ** 2)
return float(-0.5 * (q + ld + N * np.log(2 * np.pi)))
M0, K0 = 5, 6
m0 = np.zeros(K0)
S0 = 0.25 * np.eye(K0)
rng = np.random.default_rng(4)
x = np.sort(rng.uniform(-5, 5, 10))
y = truth(x) + SIG * rng.standard_normal(10)
Phi = design(x, M0)
# --- 1. one number, three routes ----------------------------------------
print("=== 1. Equation 9.64, and the constant from pages 906 and 907 ===")
print(f"log p(Y | X) from Equation 9.64 : {log_ev_NN(Phi, y, m0, S0):.6f}")
print("page 906: the offset that made Theorem 9.1 consistent was 30.453407")
print("page 907: the in-sample predictive density under the prior was")
print(" -30.453407")
print("three routes, one number.")
# --- 2. Equations 9.62 and 9.63, by Monte Carlo -------------------------
print("\n=== 2. Equations 9.62 and 9.63, by Monte Carlo ===")
print("the prior predictive variance runs to 1e7 at the edges (page 905),")
print("so only RELATIVE errors mean anything here.")
r2 = np.random.default_rng(8)
T = 400_000
TH = m0 + r2.standard_normal((T, K0)) @ np.linalg.cholesky(S0).T
YS = TH @ Phi.T + SIG * r2.standard_normal((T, len(y)))
mu_pred = Phi @ m0 # Equation 9.62
C_pred = Phi @ S0 @ Phi.T + SIG ** 2 * np.eye(len(y)) # Equation 9.63
C_s = np.cov(YS.T)
sd = np.sqrt(np.diag(C_pred))
print(f"\n{'n':>4} {'x_n':>9} {'Eq 9.62 mean':>14} {'sampled':>12} "
f"{'in standard errors':>20}")
for n in (0, 3, 6, 9):
err = (YS[:, n].mean() - mu_pred[n]) / (sd[n] / np.sqrt(T))
print(f"{n:>4} {x[n]:>9.4f} {mu_pred[n]:>14.6f} "
f"{YS[:, n].mean():>12.4f} {err:>17.3f} se")
rel = np.abs(C_pred - C_s) / np.sqrt(np.outer(np.diag(C_pred),
np.diag(C_pred)))
print(f"\ncovariance, largest entrywise relative error: {rel.max():.3e}")
print(f" (absolute errors reach {np.abs(C_pred-C_s).max():.3e}, and the")
print(f" largest entry of Cov[Y | X] is {np.abs(C_pred).max():.3e})")
# --- 3. the same number through a K x K determinant ---------------------
print("\n=== 3. the same number through a K x K determinant ===")
print(f"{'N':>8} {'K':>4} {'Eq 9.64 (N x N)':>18} {'via K x K':>18} "
f"{'difference':>12}")
for n, M in ((10, 5), (50, 5), (500, 5), (5000, 5)):
r3 = np.random.default_rng(200 + n)
xs = np.sort(r3.uniform(-5, 5, n))
ys = truth(xs) + SIG * r3.standard_normal(n)
P = design(xs, M)
mm, SS = np.zeros(M + 1), 0.25 * np.eye(M + 1)
A = log_ev_NN(P, ys, mm, SS)
B = log_ev_KK(P, ys, mm, SS)
print(f"{n:>8} {M+1:>4} {A:>18.6f} {B:>18.6f} {abs(A-B):>12.2e}")
print("Woodbury turns det(X S0 X' + s^2 I) into det(S0^-1 + X'X/s^2)")
print("times det(S0) times s^(2N): O(N K^2 + K^3) instead of O(N^3).")
print("(timings are machine-dependent; on this one, 4341x at N = 4000)")
# --- 4. choosing M by the evidence --------------------------------------
print("\n=== 4. what Section 8.6 promised: choosing M by the evidence ===")
xte = np.linspace(-5, 5, 200)
yte = truth(xte) + SIG * np.random.default_rng(1234).standard_normal(200)
print(f"{'M':>4} {'K':>4} {'log p(Y | X)':>15} {'max log lik':>14} "
f"{'test RMSE':>12}")
evs = []
for M in range(10):
P = design(x, M)
mm, SS = np.zeros(M + 1), 0.25 * np.eye(M + 1)
ev = log_ev_NN(P, y, mm, SS)
evs.append(ev)
th = np.linalg.lstsq(P, y, rcond=None)[0]
r = y - P @ th
ll = float(-(r @ r) / (2*SIG**2) - len(y)*np.log(SIG*np.sqrt(2*np.pi)))
SN = np.linalg.inv(np.linalg.inv(SS) + P.T @ P / SIG ** 2)
mN = SN @ (P.T @ y / SIG ** 2)
te = float(np.sqrt(np.mean((yte - design(xte, M) @ mN) ** 2)))
print(f"{M:>4} {M+1:>4} {ev:>15.6f} {ll:>14.4f} {te:>12.4f}")
kb = int(np.argmax(evs))
print(f"\nthe evidence peaks at M = {kb} ({evs[kb]:.6f}), which is also")
print("where the test RMSE is lowest -- and no held-out data was used.")
print("the maximum log likelihood rises without bound; the evidence does not.")
# --- 5. the evidence is hostage to the prior ----------------------------
print("\n=== 5. the evidence is hostage to the prior ===")
print("the data never changes. Only S_0 = b^2 I does.")
print(f"{'b^2':>10} " + "".join(f"{'M='+str(M):>11}" for M in (1, 3, 5, 9))
+ f"{' best M':>10} {'M=5 - M=3':>12}")
for b2 in (0.01, 0.25, 1.0, 1e2, 1e4, 1e6, 1e8):
allv = [log_ev_NN(design(x, M), y, np.zeros(M+1), b2*np.eye(M+1))
for M in range(10)]
row = [allv[M] for M in (1, 3, 5, 9)]
print(f"{b2:>10.0e} " + "".join(f"{v:>11.3f}" for v in row)
+ f"{int(np.argmax(allv)):>10} {allv[5]-allv[3]:>12.3f}")
print("\nthe WINNER stays at M = 4 throughout. But the last column flips")
print("sign: degree 5 beats degree 3 by 10.21 nats at b^2 = 0.01, and")
print("loses to it by 6.42 at b^2 = 1e8.")
print("\nand every evidence falls as b^2 grows, the rich ones fastest:")
for M in (1, 3, 5, 9):
a = log_ev_NN(design(x, M), y, np.zeros(M+1), 0.01*np.eye(M+1))
b = log_ev_NN(design(x, M), y, np.zeros(M+1), 1e8*np.eye(M+1))
print(f" M = {M}: {a:>9.3f} at b^2=0.01 -> {b:>9.3f} at b^2=1e8"
f" ({b-a:>8.3f})")
print("a diffuse prior spreads probability over parameter vectors that")
print("explain the data badly, and the evidence is an average over them.")=== 1. Equation 9.64, and the constant from pages 906 and 907 ===
log p(Y | X) from Equation 9.64 : -30.453407
page 906: the offset that made Theorem 9.1 consistent was 30.453407
page 907: the in-sample predictive density under the prior was
-30.453407
three routes, one number.
=== 2. Equations 9.62 and 9.63, by Monte Carlo ===
the prior predictive variance runs to 1e7 at the edges (page 905),
so only RELATIVE errors mean anything here.
n x_n Eq 9.62 mean sampled in standard errors
0 -4.1916 0.000000 0.0095 0.009 se
3 0.1133 0.000000 0.0001 0.079 se
6 3.0190 0.000000 -0.0889 -0.423 se
9 4.7624 0.000000 -0.6719 -0.339 se
covariance, largest entrywise relative error: 3.372e-03
(absolute errors reach 2.600e+03, and the
largest entry of Cov[Y | X] is 1.570e+06)
=== 3. the same number through a K x K determinant ===
N K Eq 9.64 (N x N) via K x K difference
10 6 -20.073533 -20.073533 4.97e-14
50 6 -41.655478 -41.655477 1.81e-08
500 6 -166.716387 -166.716387 1.14e-07
5000 6 -1126.740409 -1126.740417 8.90e-06
Woodbury turns det(X S0 X' + s^2 I) into det(S0^-1 + X'X/s^2)
times det(S0) times s^(2N): O(N K^2 + K^3) instead of O(N^3).
(timings are machine-dependent; on this one, 4341x at N = 4000)
=== 4. what Section 8.6 promised: choosing M by the evidence ===
M K log p(Y | X) max log lik test RMSE
0 1 -114.820611 -112.6554 0.8936
1 2 -67.537399 -62.2107 0.7450
2 3 -46.492910 -36.6089 0.6848
3 4 -42.712851 -27.4826 0.7729
4 5 -23.985921 -2.2498 0.3210
5 6 -30.453407 -2.2158 0.3215
6 7 -34.643032 1.5185 0.4440
7 8 -40.532136 2.2743 1.0243
8 9 -47.537035 3.6692 5.1583
9 10 -54.242980 6.9050 16.7174
the evidence peaks at M = 4 (-23.985921), which is also
where the test RMSE is lowest -- and no held-out data was used.
the maximum log likelihood rises without bound; the evidence does not.
=== 5. the evidence is hostage to the prior ===
the data never changes. Only S_0 = b^2 I does.
b^2 M=1 M=3 M=5 M=9 best M M=5 - M=3
1e-02 -66.639 -50.224 -40.012 -57.107 4 10.212
2e-01 -67.537 -42.713 -30.453 -54.243 4 12.259
1e+00 -68.847 -44.642 -33.158 -59.054 4 11.484
1e+02 -73.427 -53.563 -46.463 -79.208 4 7.100
1e+04 -78.032 -62.770 -60.273 -102.130 4 2.497
1e+06 -82.637 -71.980 -74.071 -125.155 4 -2.090
1e+08 -87.243 -81.197 -87.616 -148.181 4 -6.419
the WINNER stays at M = 4 throughout. But the last column flips
sign: degree 5 beats degree 3 by 10.21 nats at b^2 = 0.01, and
loses to it by 6.42 at b^2 = 1e8.
and every evidence falls as b^2 grows, the rich ones fastest:
M = 1: -66.639 at b^2=0.01 -> -87.243 at b^2=1e8 ( -20.604)
M = 3: -50.224 at b^2=0.01 -> -81.197 at b^2=1e8 ( -30.973)
M = 5: -40.012 at b^2=0.01 -> -87.616 at b^2=1e8 ( -47.604)
M = 9: -57.107 at b^2=0.01 -> -148.181 at b^2=1e8 ( -91.074)
a diffuse prior spreads probability over parameter vectors that
explain the data badly, and the evidence is an average over them.On real data
Section titled “On real data”Reading the plot
Section titled “Reading the plot”The first figure is about an implementation detail that is not a detail. Equation 9.64 as written needs the determinant and a solve with an matrix — in the number of data points, which for a model with six parameters is absurd. The left panel shows the red curve tracking the dotted reference exactly, while the green route is nearly flat.
The right panel confirms they compute the same thing: at , drifting to at — and that drift is the determinant’s conditioning, not a disagreement between the formulas.
The key identity is one you already have. Woodbury turns into , and the first factor is — page 906’s posterior precision. The evidence and the posterior share their expensive step.
This is page 902’s lesson recurring: Equation 9.12c and Equation 9.64 are both correct derivations and neither is the expression to type.
The second figure is the moment §8.6.2’s promise is cashed. Two curves. The red one, the maximum log likelihood, climbs from to and never turns — page 903 proved it cannot, since a degree- class contains the degree- class. A quantity that only rises cannot select.
The purple one is the same likelihood, averaged over the prior instead of maximised. It peaks at and falls by nats to .
Nothing was added to make it fall. No penalty term, no validation split, no tuned . The right panel confirms the answer: the held-out test RMSE is minimised at too — — and the evidence reached that degree having seen none of those 200 points.
That is what page 808 called the automatic Occam’s razor, arriving in a setting concrete enough to check. The worked example above locates the penalty precisely: , where a richer model necessarily enlarges .
The third figure is the bill. An average over the prior depends on the prior, and the left panel shows every curve sliding downward as grows — and the rich models sliding fastest. Degree 9 loses nats between and ; degree 1 loses .
The mechanism is the same one page 808 measured: a diffuse prior spreads probability over parameter vectors that explain the data badly, and a richer model simply has more directions to spread into.
The honest reading of the right panel matters. The difference between degrees 5 and 3 runs from nats to — the ranking flips. But the overall winner stays at at every prior width tried. So on this data the paradox is visible and not decisive: it changes which model comes second, not which comes first.
That is weaker than Chapter 8’s version, where the verdict flipped outright, and it is the honest result here. The rule survives either way: a marginal likelihood reported without its prior is not a reproducible number.
Compare
Section titled “Compare”| max likelihood | marginal likelihood | |
|---|---|---|
| what it does to | maximises over it | integrates it out |
| behaviour as grows | rises always | peaks |
| measured, | , peak at | |
| can select a model | no | yes |
| needs a prior | no | yes |
| needs held-out data | — | no |
| Eq 9.64 as written | via Woodbury | |
|---|---|---|
| matrix inverted | ||
| cost | ||
| at , | ms | ms |
| reuses | nothing | from Theorem 9.1 |
| agreement | — | at |
| the same number, three ways | page | value |
|---|---|---|
| Equation 9.64 directly | 908 | |
| the offset in Theorem 9.1’s check | 906 | |
| training targets under the prior predictive | 907 |
-
Why can the marginal likelihood select a model degree when the maximum likelihood cannot?
A flexible class contains some parameter vectors that fit beautifully and vastly more that do not. Measured: the maximum log likelihood climbs from -112.66 to +6.91 across degrees 0 to 9 without turning, while the evidence peaks at degree 4 and falls by 30.26 nats.
pch.quizShowAnswer
B — Because it AVERAGES the likelihood over the prior instead of maximising it, and an average is free to fall — A flexible class contains some parameter vectors that fit beautifully and vastly more that do not. Measured: the maximum log likelihood climbs from -112.66 to +6.91 across degrees 0 to 9 without turning, while the evidence peaks at degree 4 and falls by 30.26 nats.
-
Where does the complexity penalty in the log evidence actually come from?
Expanding the log of Equation 9.64 gives a fit term plus minus half log det C. Adding capacity makes C bigger in every direction it adds — improving the fit term and worsening the determinant one. Nobody wrote the penalty; it is the log determinant of a covariance that had to grow.
pch.quizShowAnswer
B — From minus one half log det of the covariance, which a richer model necessarily enlarges — Expanding the log of Equation 9.64 gives a fit term plus minus half log det C. Adding capacity makes C bigger in every direction it adds — improving the fit term and worsening the determinant one. Nobody wrote the penalty; it is the log determinant of a covariance that had to grow.
-
Equation 9.64 needs an N-by-N determinant. What does Woodbury's identity buy?
And the K-by-K factor is det of S_N inverse — page 906's posterior precision, already computed. The evidence and the posterior share their expensive step. Equation 9.64 is the definition; this is the one to run, exactly as page 902 found for the normal equations.
pch.quizShowAnswer
B — The same number through a K-by-K determinant — measured 4341 times faster at N = 4000, agreeing to 8.9e-6 at N = 5000 — And the K-by-K factor is det of S_N inverse — page 906's posterior precision, already computed. The evidence and the posterior share their expensive step. Equation 9.64 is the definition; this is the one to run, exactly as page 902 found for the normal equations.
-
On the chapter's ten training points, which degree does the evidence pick, and how does it compare with a held-out test set?
That is Section 8.6.2's automatic Occam's razor cashed in a setting concrete enough to check. No validation split, no tuned lambda — just the likelihood integrated over the prior rather than maximised over theta.
pch.quizShowAnswer
B — Degree 4 — the same degree the 200-point test set picks, using none of it — That is Section 8.6.2's automatic Occam's razor cashed in a setting concrete enough to check. No validation split, no tuned lambda — just the likelihood integrated over the prior rather than maximised over theta.
-
As the prior variance grows from 0.01 to 1e8 with the data held fixed, what happens?
A diffuse prior spreads probability over parameter vectors that explain the data badly, and a richer model has more directions to spread into. This is Chapter 8's Jeffreys-Lindley paradox in this chapter's notation.
pch.quizShowAnswer
B — Every model's evidence falls, and richer ones fall faster — 91.07 nats for degree 9 against 20.60 for degree 1 — A diffuse prior spreads probability over parameter vectors that explain the data badly, and a richer model has more directions to spread into. This is Chapter 8's Jeffreys-Lindley paradox in this chapter's notation.
-
Does that prior sensitivity change which degree wins here?
That is the honest result on this data: the effect is visible and not decisive, changing which model comes second rather than which comes first. Weaker than Chapter 8's version, where the verdict flipped outright — but the rule survives either way. A marginal likelihood without its prior is not reproducible.
pch.quizShowAnswer
B — No — the winner stays at degree 4 throughout, though the ordering of degrees 5 and 3 flips sign — That is the honest result on this data: the effect is visible and not decisive, changing which model comes second rather than which comes first. Weaker than Chapter 8's version, where the verdict flipped outright — but the rule survives either way. A marginal likelihood without its prior is not reproducible.
🧪 Try It Yourself
Section titled “🧪 Try It Yourself”Exercise 1 – Equation 9.64
Section titled “Exercise 1 – Equation 9.64”Exercise 2 – The form you should run
Section titled “Exercise 2 – The form you should run”Exercise 3 – Choosing the degree
Section titled “Exercise 3 – Choosing the degree”Exercise 4 – Hostage to the prior
Section titled “Exercise 4 – Hostage to the prior”Exercise 5 – Richer models lose more
Section titled “Exercise 5 – Richer models lose more”Pitfalls
Section titled “Pitfalls”Recall card
Section titled “Recall card”- Equation 9.64: the marginal likelihood is Gaussian in y, with mean X m-zero and covariance X S-zero X-transpose plus sigma squared I. It is Equation 9.38 for the whole training set at once.
- It needs no integral. A linear map of a Gaussian plus independent Gaussian noise is Gaussian, so two moments determine it — Equations 9.62 and 9.63 are all the work.
- Three routes, one number: minus 30.453407. Directly from Equation 9.64, as page 906’s offset in Theorem 9.1, and as page 907’s density of the training targets under the prior predictive.
- Woodbury gives a K-by-K form the book does not state. Measured, it agrees to 8.9e-6 at N = 5000 and runs 4341 times faster at N = 4000 — and its determinant factor is S_N inverse, already computed.
- The maximum likelihood cannot select a model. Measured, it runs from minus 112.66 to plus 6.91 across degrees 0 to 9 and never turns.
- The evidence can. It peaks at M = 4 and falls by 30.26 nats to M = 9 — and M = 4 is also where a 200-point held-out test set is best, which the evidence never saw.
- Nothing was added to make it fall. Integrating the parameters out instead of maximising over them is the entire difference.
- The penalty is minus one half log det C. A richer model necessarily enlarges C, improving the fit term and worsening the determinant one. Page 809 measured the same split for Chapter 8’s evidence.
- An average over the prior depends on the prior. Measured across seven widths: every model’s evidence falls as b squared grows, degree 9 by 91.07 nats against degree 1’s 20.60.
- Richer models lose faster because a diffuse prior gives them more directions to spread probability into.
- The ordering of degrees 5 and 3 flips sign across that range, from plus 10.21 to minus 6.42 nats — Chapter 8’s Jeffreys-Lindley paradox, here visible but not decisive: the winner stays at M = 4.
- So a marginal likelihood reported without its prior is not a reproducible number.
- Judge Monte Carlo checks relatively, not absolutely. The covariance here has entries spanning seven orders of magnitude; absolute errors of 2600 correspond to a relative error of 3.4e-3.
Next: the same estimator, seen as geometry. Maximum Likelihood as Orthogonal Projection
pch.coffeeTagline
pch.coffeeCtapch.feedbackHeading
pch.feedbackSubheading