Espartaco

“Is that to say we are against Free Trade? No, we are for Free Trade, because by Free Trade all economical laws, with their most astounding contradictions, will act upon a larger scale, upon the territory of the whole earth; and because from the uniting of all these contradictions in a single group, where they will stand face to face, will result the struggle which will itself eventuate in the emancipation of the proletariat.”

Karl Heinrich Marx · Marx-Engels Collected Works, Vol. VI, p. 290

EnglishEspañol

Tag: Engels

  • Marx, Adam Smith, and the Law of Large Numbers

    Marx, Adam Smith, and the Law of Large Numbers

    A new research uses probability theory — and sixty years of U.S. economic data — to test one of the most consequential (and most overlooked) assumptions in political economy.


    The Assumption Hiding in Plain Sight

    If you’ve ever read a Marxist analysis of how profits equalize across industries, you’ve probably encountered something called the average rate of profit. The idea is straightforward: competition between capitalists drives different rates of profit in different sectors toward a common, system-wide average. This is one of the pillars of Marx’s theory of value in Capital, Volume III.

    But there’s a quieter assumption underneath this one — so quiet that most discussions never mention it explicitly. To arrive at a uniform profit rate, Marx first assumes a uniform rate of surplus value across all productive sectors. In plainer terms: he assumes that the degree to which workers are exploited — the ratio of unpaid labor to paid labor — is roughly the same everywhere, whether you work in steel manufacturing, food processing, or textiles.

    Adam Smith proposed this idea before Marx. Smith argued that if one job were obviously more exploitative (in the sense of yielding far more unpaid surplus per dollar of wages paid), workers and capital would flow toward or away from it until the differences vanished. Marx adopted this observation and, as scholar Jonathan Cogliano notes, elevated it to “the status of a central economic law” within his framework.

    Yet the assumption has been challenged from multiple directions — Marxist and non-Marxist alike. Is it actually justified? Or is it a convenient simplification that distorts our understanding of how capitalism works?

    José Mauricio Gómez Julián, of the Universidad Latina de Costa Rica, decided to approach the question from an unexpected angle: probability theory. His paper, published in Ciencia Económica (2022), asks whether the mathematical law that would need to hold for this assumption to be valid actually does hold — and then checks the answer against six decades of real-world data from the United States.


    The Mathematical Backbone: The Law of Large Numbers

    If you’ve taken any statistics course, you’ve likely met the Law of Large Numbers (LLN). It tells us that as you observe more and more instances of something random — coin flips, dice rolls, stock returns — the average of those observations settles down toward the true expected value.

    There are two versions:

    • The Weak Law (WLLN): With enough observations, the sample average is probably close to the expected value.
    • The Strong Law (SLLN): With enough observations, the sample average is almost certainly equal to the expected value — a much stronger guarantee.

    Gómez Julián’s insight is this: if you think of each productive sector of the economy as a random variable representing that sector’s rate of surplus value, then the LLN tells you what happens to the average across sectors as the number of sectors grows large. In mathematical language:

    • Strong Law: The probability that the average surplus-value rate across sectors equals the global expected value, in the limit, is exactly 1.
    • Weak Law: The probability that the average deviates from the global expected value by more than any tiny amount shrinks to zero.

    If either version holds, you get the result Marx needs: across a sufficiently large number of sectors, the rates of surplus value converge to a common value — uniformity, or at least a powerful tendency toward it.


    The Catch: Independence and Identical Distributions

    Here’s where things get interesting — and where the classical LLN hits a wall.

    The textbook version of the LLN requires two conditions:

    1. Independence: The random variables (sectoral surplus-value rates) must be statistically independent of each other.
    2. Identical distribution: Each variable must follow the same probability distribution.

    Neither condition holds for the real economy. And Gómez Julián is admirably upfront about this. Sectors are deeply intertwined — the steel industry depends on mining, manufacturing depends on steel, services depend on consumer spending powered by manufacturing wages. The idea that one sector’s surplus-value rate has no relationship to another’s is economically unrealistic. Furthermore, different industries have different cost structures, different labor intensities, and different technologies. There is no reason their surplus-value rates should follow the same statistical distribution.

    So does this kill the argument? Not at all. In fact, it’s the most intellectually interesting part of the paper.


    Non-Classical Varieties: When the Rules Relax

    Over the past several decades, mathematicians and econometricians have developed non-classical versions of the LLN that weaken or entirely drop the independence and identical-distribution requirements. Gómez Julián surveys several of these:

    • Li, Rao, and Wang (1995) showed the LLN holds for random variables arranged on a lattice structure under certain conditions — a structure that, as it happens, economic data naturally exhibits.
    • Adler and Rosalsky (1987) proved the law for weighted sums of independent, identically distributed random variables belonging to a normalized sum, generalizing the classical case.
    • Chen and Sung (2016) extended those results further: the variables no longer need to be identically distributed. They only need to be “stochastically dominated” by a single random variable, with certain weighting conditions.
    • Sung (2011) showed that the strong law can hold even when variables are dependent on each other, provided their probability moments (roughly, their averages and variability) satisfy certain finiteness conditions.

    The crucial point: these results collectively tell us that the LLN’s convergence conclusion can survive even when the classical assumptions are substantially violated — which is exactly the situation with sectoral surplus-value rates.

    Gómez Julián argues that the economic dynamics described by Smith — workers and capital moving between sectors in response to unequal advantages — are precisely the kind of compensatory dependence mechanism that these non-classical versions accommodate. The variables aren’t independent, but their dependence is structured in a way that still drives convergence.


    What the Data Actually Shows

    The theoretical argument is compelling, but Gómez Julián doesn’t stop there. He turns to sixty years of U.S. data (1960–2020), sourced from the Bureau of Economic Analysis (BEA), to see what the empirical evidence says.

    He calculates sectoral surplus-value rates using macroeconomic data on gross operating surplus (representing surplus labor time) and employee compensation (representing necessary labor time), following a standard operationalization of Marx’s categories. After carefully determining which sectors qualify as “productive” in the Marxist sense — a nontrivial task, since the service sector includes activities with very different relationships to surplus-value production — he arrives at 36 productive sectors.

    Here’s what the statistical analysis found:

    Finding 1: No Identical Distributions

    A probability distribution fitting exercise (using the Bayesian Information Criterion) revealed that the 36 sectors’ surplus-value rates follow a patchwork of different distributions — Log-Normal, Cauchy, Uniform, Weibull, and Logistic — with none following a normal distribution. The identical-distribution requirement of the classical LLN is not met.

    Finding 2: No Statistical Independence

    A Pearson correlation analysis across all 630 possible sector pairs yielded a mean correlation of about 0.08 and a median of about 0.14. While these may look small, a deeper cut reveals that roughly 40% of sector pairs have correlations of 0.3 or above — a level that’s practically meaningful. The sectors are not independent. This makes intuitive sense: industries are connected through supply chains, labor markets, and shared macroeconomic conditions.

    Finding 3: Differences Tend Toward Zero

    This is the key finding. When Gómez Julián computed the differences between each sector’s surplus-value rate and the global average (both the mean and the median), he found that these differences exhibit a strong tendency toward reciprocal nullification — positive differences roughly cancel out negative ones. The sum of all differences relative to the global mean was essentially zero (on the order of 10⁻¹⁴). The mean of differences relative to the global median was 0.0012 — vanishingly small.

    Distributional fitting on these differences revealed they follow a Cauchy distribution (when measured against the global mean) or a uniform distribution (against the global median), with the medians of these distributions sitting very close to zero.

    In plain language: sectors deviate from the average in different directions, and those deviations largely cancel each other out.


    Why This Matters

    Gómez Julián’s paper makes two types of contributions that are worth distinguishing:

    For Marxist political economy: If the uniformity assumption holds — even approximately, even as a tendency rather than an iron law — then a large body of research on the long-run behavior of the average rate of profit, both within countries and across the global economy, is on sounder footing than critics have suggested. Researchers studying the tendency of the rate of profit to fall (or not) can continue to work without needing to explicitly model sector-by-sector differences in exploitation rates, at least for aggregate, long-run analyses.

    For probability theory and economics: The paper demonstrates a productive intersection between a specific question in political economy and the deep mathematics of convergence theorems. It shows that the non-classical LLN theorems aren’t just abstract curiosities — they have direct relevance to understanding real economic phenomena. The structured dependence between economic sectors isn’t a bug that invalidates the mathematical framework; it’s a feature that the right version of the framework already accounts for.


    A Few Honest Caveats — And Why They No Longer Apply

    The original 2022 paper was unusually transparent about its limitations, and that transparency is one of its strengths. Rather than forcing the data into inappropriate statistical procedures, it openly acknowledged where the available inferential tools broke down.

    At the time, three important caveats remained.

    First, formal hypothesis testing had to be abandoned.

    The reason was purely statistical rather than economic. Classical inferential procedures—Student’s t tests, Wilcoxon tests, and most conventional non-parametric alternatives—are built on assumptions that the data simply did not satisfy. Sectoral surplus-value rates are neither independent nor identically distributed. They are linked through supply chains, technological change, capital mobility, and macroeconomic shocks. Even bootstrap procedures could not fully solve the problem because ordinary resampling may weaken dependence between resamples while leaving the internal dependence structure fundamentally unchanged. Consequently, the 2022 paper relied primarily on descriptive statistics together with probability-theoretic arguments instead of formal significance testing.

    Second, the classification of productive sectors inevitably involved theoretical judgment.

    Although the paper carefully justified the inclusion and exclusion of economic activities using Marxian categories and modern national accounting, reasonable scholars could still debate where certain services belong within the circuit of capital.

    Third, the empirical evidence came exclusively from the United States.

    The descriptive regularities were remarkably strong, but demonstrating that the same convergence mechanism operates under different institutional settings naturally remained an empirical question.

    Those were genuine limitations in 2022.

    Today, however, the first—and arguably the most important—of them has largely been overcome.

    A much more comprehensive methodological paper (Gómez Julián, 2026; SSRN 5172185) develops an entirely new inferential framework specifically designed for exactly the type of data that made the original analysis difficult: dependent, heterogeneous, and unbalanced observations. Instead of trying to force classical statistical tests to work outside the assumptions under which they were derived, the newer paper constructs hypothesis testing from the ground up for this class of problems.

    The key innovation is recognizing that the convergence of sectoral surplus-value rates is fundamentally a law-of-large-numbers problem under dependence, not an independent-samples problem. The framework therefore combines three complementary asymptotic structures—triangular arrays (TAC), correlation-weighted sums (WSC), and mixingale processes (MPC)—which respectively model hierarchical dependence, contemporaneous intersectoral dependence, and temporal dependence. Rather than treating these as competing approaches, the paper proves conditions under which they become metrically equivalent and therefore support the same inferential conclusions.

    The inferential consequences are substantial.

    Instead of abandoning significance testing because dependence invalidates classical procedures, the new framework explicitly extends the Neyman-Pearson paradigm to dependent observations, derives dependence-aware confidence regions, establishes rigorous Type I error control under strong-mixing assumptions, and integrates Bayesian and frequentist inference into a single coherent architecture. Robust procedures—including fixed-b heteroskedasticity-and-autocorrelation-robust inference, block bootstrap techniques that preserve dependence, adaptive conformal inference, composite and Whittle likelihoods, and hierarchical Bayesian estimation—serve as mutually reinforcing validation mechanisms rather than isolated alternatives.

    In other words, what had been acknowledged as a methodological limitation in the 2022 paper became the central research question of the later work.

    Rather than concluding that inference was impossible under dependence, the subsequent research asks a more fundamental question: what should hypothesis testing look like when dependence is the normal state of the data rather than an exception? The result is a unified inferential framework specifically intended for datasets that violate the assumptions of classical statistics—precisely the situation encountered with sectoral surplus-value rates.

    The other caveats remain, although they are considerably less problematic than before. The classification of productive sectors continues to depend on theoretical interpretation, because that issue belongs to political economy rather than statistics. Likewise, expanding the empirical analysis to additional countries remains a desirable avenue for future research. Yet the principal statistical objection—that no valid inferential procedure existed for dependent sectoral data—has now been directly addressed through a purpose-built mathematical framework.

    Looking back, the 2022 paper can therefore be read as identifying an important statistical obstacle, while the later work attempts to remove it. Together, the two papers form a coherent research program: first demonstrating that the convergence hypothesis is theoretically plausible and descriptively supported, and then developing the inferential machinery required to test that hypothesis rigorously without relying on unrealistic assumptions of independence or identical distributions.


    Gómez Julián, J.M. (2022). Sobre la validez del supuesto de uniformidad en las tasas de plusvalía sectorial desde la teoría de las probabilidades. Ciencia Económica, 11(17). DOI: 10.22201/fe.24484962e.2022.11.17.2

    Gómez Julián, J.M. (2026). Hypothesis Testing for Dependent Variables with Unbalanced Data: A Unified Framework: Theory, Robustness, and Software. SSRN Electronic Journal. DOI: 10.2139/ssrn.5172185.

  • bayesianOU: Exploring Market Price Gravitation via Ornstein-Uhlenbeck Process

    bayesianOU: Exploring Market Price Gravitation via Ornstein-Uhlenbeck Process

    You can also find this library at CRAN and download it directly from R and RStudio.

    When Market Prices Gravitate: A Bayesian Look at an Old Question in Economics

    An old question, asked again — properly

    There is a question in economics that is older than most of the academic disciplines that border it. Do market prices — the noisy, day-to-day, here-and-now prices at which goods actually change hands — tend to settle toward some underlying center of gravity? And if they do, how fast, how violently, and through what mechanism?

    Classical political economy, from Smith and Ricardo through Marx, thought they do. The idea was that behind the churning surface of market prices there sit “prices of production”: long-run, cost-anchored prices toward which actual prices are pulled, the way a spring pulls a weight back toward its rest position. In the Marxian version, there is one more layer underneath: those prices of production themselves are supposed to gravitate around “values,” the labour embodied in commodities. Whether any of this is true is an empirical question, and for a long time the empirical tools to answer it were not really up to the job.

    A small R package called bayesianOU, written by José Mauricio Gómez Julián and hosted on GitHub, takes a serious swing at that question. It is not the first attempt to test price gravitation statistically, but it is one of the most technically careful I have seen, and it is built in a way that is instructive far beyond the Marxian debate that motivates it. What follows is a walkthrough of what the package does, why it is interesting, and — just as importantly — where it honestly admits its own limits.

    The tool that makes it possible: the Ornstein-Uhlenbeck process

    Strip the economics away for a moment and the statistical core of the package is a workhorse object from physics: the Ornstein-Uhlenbeck (OU) process. Imagine a particle moving in a fluid, attached to a spring. Brownian motion jiggles it randomly; the spring pulls it back toward a fixed point. The further it drifts away, the harder the pull. The result is a wiggly series that never settles but always tends to settle — a mean-reverting random walk.

    The OU process is exactly the mathematical object you want when you suspect a variable is noisy but anchored. It has a “speed of reversion” (how hard the spring pulls) and an “equilibrium level” (where the spring’s rest point is). Estimate those, and you can say something quantitative about gravitation: not just “yes, prices come back,” but “they come back with a half-life of about nine years.”

    That number — the half-life — is the prize. It is the difference between “market prices eventually settle” (which could mean anything) and “market prices settle on a timescale comparable to a business cycle” (which is a falsifiable, interpretable claim).

    What the package actually builds

    The package fits, by Bayesian inference, a family of models built on the OU process but considerably richer than the textbook version. There are two first-class models, sharing one inference engine.

    The single-level model

    The first model asks: do market prices revert toward an equilibrium that is a function of the prices of production, and what does that reversion look like once we let it be nonlinear, volatile, heavy-tailed, and structurally heterogeneous across sectors?

    Each of those adjectives is doing real work, and each corresponds to a feature that simpler approaches handle poorly or not at all:

    • Nonlinear drift. A plain OU process pulls back with a force proportional to the deviation. The package allows a cubic correction, so the restoring force can strengthen super-linearly when prices are far from equilibrium. This matters: real markets may behave gently near the center and violently at the extremes, and a linear model cannot represent that.
    • Stochastic volatility. Financial data, and economic data generally, go through quiet stretches and turbulent ones. The package does not assume a single noise level; it lets the volatility itself wander over time, following its own mean-reverting process on the log-variance. This is the same idea that powers modern stochastic-volatility models in finance, and it is essential for not fooling yourself about the precision of your estimates.
    • Heavy tails. Economic shocks are not Gaussian. Crashes, booms, and policy shocks produce outliers that a normal distribution would call essentially impossible. The package uses Student-t innovations and estimates the degrees of freedom from the data, so the model can discover for itself just how fat-tailed the world is.
    • Hierarchical structure across sectors. An economy has dozens of sectors, and each one presumably has its own reversion speed, its own equilibrium, its own noise. Estimating each sector in isolation throws away the information that they are all part of the same economy. Estimating them all with one set of parameters pretends they are identical. The package takes the middle path — hierarchical, or “partial pooling,” priors — where each sector’s parameters are drawn from a shared distribution whose properties the model also estimates. Sectors borrow strength from one another without being forced into lockstep.
    • A time-varying coupling. This is the most economically loaded feature. The strength with which market prices track prices of production is allowed to depend on the aggregate profit rate (what the package calls TMG). When the general rate of profit is high, the pull of production prices on market prices may be one thing; when it is low, another. Whether that modulation exists, and in which direction, is a hypothesis the model can test rather than assume.

    All of this is estimated jointly, with full Bayesian uncertainty, using Stan’s Hamiltonian Monte Carlo sampler. You do not get a point estimate of the reversion speed; you get a posterior distribution, and from it a credible interval and a probability statement like “there is a 95% chance the half-life is between six and eighteen years.”

    The nested cascade

    The second model is the more ambitious one, and it is where the package earns its “nested” branding. Instead of market prices reverting to a fixed equilibrium, they revert to a latent production price — a hidden, unobserved series that itself evolves over time according to its own OU process, driven by the general profit rate. And, if you turn on the third level, that latent production price in turn gravitates around an observed “value” index built directly from labour-content accounting.

    So the full structure is a cascade: market price → latent production price → value. Each arrow is an OU reversion, each with its own speed, and the speeds are constrained so that the outer (market) layer reverts faster than the inner (production) layer — an economically natural separation of timescales, enforced softly so the data can push back.

    The reason this matters is that it converts a slogan — “prices of production gravitate around values” — into a literal statistical hierarchy that can be fit to data and compared against alternatives. The headline empirical result, from a fit to 37 US sectors over 1960–2020, is a value-coupling coefficient essentially equal to one, with the posterior probability of it being positive effectively equal to one. In plain terms: in standardized units, prices of production track labour values almost one-for-one. That is a found result, not an assumed one — the prior on the coupling was centred at zero, deliberately neutral.

    The inference engine, and why it is not a footnote

    It would be easy to glance at the model description, nod, and move on. But how these quantities are estimated is half of what makes the package serious, and it is worth a paragraph for readers who do not think about MCMC every day.

    Bayesian inference works by exploring the space of all parameter values consistent with both the data and the prior, and characterizing that space as a probability distribution. For models this complex — with latent volatility paths, hierarchical structure, and hundreds of parameters — you cannot do that with pencil and paper. You use a Markov chain Monte Carlo sampler, specifically Hamiltonian Monte Carlo, which borrows an idea from physics: give the parameter space a “potential energy” (the log-posterior) and a “kinetic energy” (a randomly chosen momentum), and let the system glide around the posterior like a ball rolling over a landscape.

    Stan’s NUTS sampler automates this about as well as it can be automated, and the package uses it with within-chain parallelism (via Stan’s reduce_sum) to handle the fact that the likelihood must be summed over many timepoints and sectors. The diagnostics — R-hat for chain agreement, effective sample size, divergence counts — are surfaced through a validate_ou_fit function, and the package is explicit that you should look at them before believing anything.

    Model comparison is done with PSIS-LOO, a clever technique that approximates leave-one-out cross-validation without refitting the model dozens of times, by reweighting the posterior draws using importance sampling. It is the modern standard, and the package is appropriately cautious about it: because the model has a latent volatility state at every observation, plain LOO is known to be optimistic, and the documentation says so plainly.

    The honesty that makes it credible

    Here is where the package surprised me, and here is why I think it deserves a wider audience than the Marxian-economics niche it lives in.

    A naïve reading of the results would be triumphant: the value coupling is one-to-one, the reversion exists, the half-life is about nine years. But the package’s own validation section does something rare. It runs the model against legitimate rivals on genuinely held-out data — a full decade, 2011 to 2020 — and reports, without spin, that a random walk beats the OU model at forecasting, that a no-gravitation restriction ties or beats it, and that the value term adds no detectable predictive density.

    That sounds like a refutation. The package argues, carefully, that it is nothing of the sort — and the argument is the most intellectually interesting thing here.

    The key move is to distinguish two different questions. One is structural: does a reversion mechanism exist, and how fast is it? The other is predictive: can you forecast next year’s price better than a naïve benchmark? These are related but not identical, and for a slow process they come apart in a specific, predictable way.

    If gravitation is real but slow — a half-life of nine years on a dataset whose test window is a decade — then over the forecast horizon the process looks, to first order, like a random walk. The reversion is there, but it is too weak to show up in a one-step or few-step prediction. The random walk, which assumes no reversion, will forecast almost as well, because over short horizons a barely-reverting process and a non-reverting one are nearly indistinguishable. So the random walk winning the forecasting horse race is not evidence against gravitation; it is evidence consistent with gravitation being slow.

    This is not special pleading. It is a logical point about what different functionals of a model can and cannot tell you. The structural parameters — estimated from the joint likelihood over the whole panel, borrowing strength across 37 sectors and 61 years — use far more information than any single-series forecast. They can pin down a central tendency that a univariate test cannot. And the package shows, through simulation-based calibration and adversarial negative controls, that the estimation pipeline does not manufacture gravitation when none is present: feed it a true random walk and it reports a half-life of about fifty years; feed it a null value-coupling and the posterior honestly covers zero.

    The low-kappa trap, and why it matters to everyone

    The package names a difficulty it calls the low-kappa trap, and it is worth understanding because it is a trap that catches far more than Marxian price theory.

    Kappa is the reversion speed. As kappa shrinks toward zero, the OU process approaches a pure random walk. The trouble is that there is no bright line separating “slow mean reversion” from “no mean reversion.” It is a continuum, and three distinct problems stack up exactly there:

    • Algebraically, reversion speed and discrete-time persistence are two sides of the same coin; kappa going to zero is the same as the autocorrelation going to one. There is no internal frontier.
    • Statistically, the power of a unit-root test — the standard tool for asking “is this a random walk?” — collapses exactly as the truth approaches the random walk boundary. With a finite sample and a half-life comparable to the sample length, the test simply cannot tell. This is a well-known result in econometrics, and it is why decades of “is the real exchange rate stationary?” papers argued past one another.
    • Numerically, if the reversion speed is parameterized to be strictly positive (as it must be, for the sampler to behave), then “the probability that kappa is greater than zero” is trivially one — it tells you nothing. The informative quantity is the half-life, and the probability that the half-life exceeds some sensible horizon.

    The package’s response to the trap is instructive. It does not pretend the trap is not there. It states all three layers explicitly, reports the slow tail honestly (one sector has a non-trivial posterior probability of a half-life beyond forty years), and argues that the joint hierarchical posterior — which pools information across the whole panel — is a more powerful discriminator than any univariate test. That is a defensible position, and it is stated with the caveat attached rather than buried in a footnote.

    This is the broader lesson. Anyone working with time series that might be slowly mean-reverting — interest rates, real exchange rates, commodity prices, climate variables, pollutant concentrations — runs into exactly this trap. The package’s framing of it, in three layers, is one of the clearest expositions I have read, and it would travel well into any of those domains.

    What I appreciate, and what I would watch for

    A few things stand out as genuinely good practice, and they are worth naming because they are rarer than they should be.

    The separation of economic and sampler convergence. The package is scrupulous about not confusing two senses of “convergence.” Economic convergence — does the price revert? — is a statement about kappa and the half-life. Sampler convergence — did the MCMC chains agree? — is a statement about R-hat and divergences. These share a word and nothing else, and conflating them is a classic source of muddled reasoning. The documentation keeps them lexically distinct throughout.

    Neutral priors on the load-bearing hypotheses. The prior on the profit-rate modulation is centred at zero. The prior on the value coupling is centred at zero. The package does not bake the answer into the question. When the posterior then moves clearly away from zero, that means something.

    Out-of-sample integrity by construction. A subtle and common error in time-series work is “leakage”: accidentally letting future information contaminate the training procedure, so that out-of-sample results are secretly in-sample. The package offers a fit_window switch that keeps the two designs genuinely separate, and it computes the common-factor loadings from the training window only. This is the kind of plumbing detail that separates trustworthy work from work that just looks trustworthy.

    The negative results are reported. Many packages, and most blog posts about them, would quietly omit the fact that a random walk out-forecasts the model. This one leads with it and then reasons about it. That is how a field accumulates reliable knowledge rather than just encouraging headlines.

    What should a careful reader watch for? The half-life estimate of about nine years is, by the package’s own account, probably conservatively slow — a controlled study of the disaggregation step suggests the true figure may be closer to seven or eight. The cubic nonlinearity is a minor refinement on this data (its coefficient sits near its prior). The Student-t degrees of freedom and the stochastic-volatility scale are weakly identified when both are present, a known tension the documentation flags but does not resolve. And the headline value-coupling result, while striking, is measured on standardized levels that share a cost-price component by construction; the package defends this with a “wedge” argument — subtracting the shared component and testing the residual — but a sceptical reader should follow that argument itself rather than take it on trust.

    None of these caveats undermine the project. They are the project. A statistical framework that cannot articulate its own soft spots is not a framework you should believe.

    Why it is worth your time

    You do not need to be a Marxian economist, or any kind of economist, to get something out of this package. If you work with time series that exhibit slow, noisy reversion toward a moving target — and a great deal of the physical and social world does — the modelling ideas here are directly portable: the nonlinear OU drift, the stochastic volatility, the hierarchical pooling across groups, the careful separation of structural estimation from forecasting, and the three-layer diagnosis of the low-reversion trap.

    And if you are interested in the classical question of whether prices gravitate toward values, this is about as good a statistical treatment as you will find: modern machinery, honest reporting, and a willingness to let the data argue back against the theory that motivated the exercise in the first place.

    The repository, the full mathematical specification, the validation blocks, and a frank discussion of every methodological decision live at github.com/IsadoreNabi/bayesianOU, with the wiki carrying the complete technical detail. Read the methodology notes before you quote a number; that is what they are there for.

  • topologyR: Turning Time Series into Shapes to Test What Your Models Quietly Assume

    topologyR: Turning Time Series into Shapes to Test What Your Models Quietly Assume

    You can also find this library at CRAN and download it directly from R and RStudio.

    There is a habit so embedded in quantitative work that most practitioners never think to question it. You have a time series — quarterly GDP, an EEG channel, a temperature record — and at some point you fit a smooth curve through it, interpolate a missing value, or estimate a “long-run trend.” All of these moves rest on a single, seldom-checked assumption: that the data form one continuous whole, that a single smooth function can legitimately pass through every point.

    But what if they don’t? What if your series is, structurally, two or three disjoint pieces glued together by the calendar — pieces between which no continuous function can travel? In that case, the spline you just fitted is not an approximation of reality; it is a mathematical fiction painted over a fracture.

    topologyR is an R package that lets you check this before you model. It takes a numeric time series, converts it into a graph, converts that graph into a topological space, and then asks the one question that determines whether global continuous methods are even valid: is this space one connected piece, or several?

    It sounds abstract. It is abstract — but the consequence is concrete. The package is the work of José Mauricio Gómez Julián, and it is open-source, with a GitHub repository, a detailed Wiki, and a companion research paper archived on Zenodo. What follows is a tour of what the package does, why it matters, and where it fits in the broader landscape of topological data analysis.


    The Hidden Assumption

    Think about what happens when you impute a missing value in a time series using a cubic spline. The spline assumes that the points on either side of the gap belong to the same continuous process — that the missing value lies somewhere along a smooth bridge between them. If the series has actually undergone a structural break, a regime change, or a discontinuity between those points, the spline will happily produce a number, and that number will be wrong in a way no confidence interval can capture.

    This is not a niche problem. It appears in econometrics (trend estimation across business cycles), in neuroscience (coherence across brain-state transitions), in climatology (warming trends across regime shifts). The methodological error is always the same: assuming continuity without first verifying that continuity is mathematically possible.

    topologyR’s contribution is to make that verification explicit, parameter-free, and exact.


    From Numbers to Shapes: The Pipeline in Three Steps

    The package’s workflow has an elegant, almost architectural logic. You feed it a series of numbers; it returns a topological verdict. Between input and output, three transformations occur.

    Step 1: The Series Becomes a Graph

    The first move is borrowed from network science: the visibility graph. Imagine your time series plotted as a mountain range — each observation is a peak or a valley at a given time. Two points are connected by an edge if you could stand on one and see the other, with no taller peak blocking the line of sight.

    topologyR implements two flavours. The Horizontal Visibility Graph (HVG) connects two points if every point between them is strictly lower than the shorter of the two — a horizontal line of sight. It runs in linear time and captures the skeleton of the series’ ups and downs. The Natural Visibility Graph (NVG) is more generous: it connects two points if every intermediate point lies below the straight line joining them, regardless of the heights of the endpoints. It is denser, richer, and runs in O(n log n) expected time. The NVG always contains the HVG as a subgraph.

    Both are parameter-free. There is no threshold to tune, no bandwidth to select, no ε to agonise over. The graph is determined entirely by the data’s own geometry. This matters enormously: it eliminates the single largest source of arbitrariness in the entire pipeline.

    Step 2: The Graph Becomes a Topology

    Here is where topologyR departs from ordinary network analysis. A graph tells you who is adjacent to whom. A topology tells you something deeper: what the neighbourhood structure of the entire space looks like — which collections of points form coherent open regions, and how those regions combine.

    The construction follows a method introduced by Nada, El Atik, and Atef in 2018. For each vertex v in the graph, you form its closed neighbourhood — the vertex itself plus all its direct neighbours. This family of closed neighbourhoods serves as a subbase. You then close it under finite intersections to obtain a base, and close the base under arbitrary unions to obtain the full topology.

    If those words feel heavy, think of it this way: the subbase is a rough draft of “who belongs with whom.” Intersecting neighbourhoods refines the draft — “the points that both neighbourhoods agree on.” Taking unions completes the picture — “every region that can be assembled from these building blocks.” The result is a genuine topological space, complete with open sets satisfying the standard axioms, sitting on top of your time series like a scaffolding you didn’t know was there.

    Step 3: The Topology Reveals Its Connectivity

    Now comes the decisive question. A topological space is connected if it cannot be split into two non-empty open pieces — if there is no clean fracture running through it. For finite spaces, there is a beautiful theorem, due to McCord (1966) and Stong (1966), that makes this check exact and tractable. The specialization preorder orders the points by how their neighbourhoods nest inside one another, and the connected components of the resulting structure are precisely the topological connected components.

    The crucial practical point: this computation works directly on the base — the refined building blocks — without ever needing to enumerate the full topology (which can be exponentially large). It runs in polynomial time, and the components it returns are exact, not approximate.


    The Decision Rule

    Everything so far converges on a single, actionable verdict. topologyR hands you a connectedness decision, and that decision has a direct methodological consequence:

    • If the induced topology is connected, then your data are consistent with a single continuous process. Global continuous methods — splines, kriging, polynomial interpolation, moving-average imputation, kernel methods — are mathematically supported. You may proceed.
    • If the induced topology is disconnected, then no single continuous function can cover the entire series. Global continuous methods are invalid by construction. You must segment the series along the connected components the package identifies, and model each piece independently — with regime-switching models, component-wise imputation, or finite mixtures.

    This is the package’s value proposition: a reproducible, topology-first workflow that decides, before you touch a model, whether global continuity is a justified assumption or a silent error.

    Global versus Local

    A subtlety worth flagging: the rule depends on what you are trying to learn. Global properties — a secular trend, a Hurst exponent, total neural synchronisation, a centennial warming signal — depend on relationships among all points and require topological connectivity to be valid. Local properties — instantaneous volatility in a small window, point-to-point rates of change, low-order autocorrelation — are defined on restricted neighbourhoods and remain valid within each connected component, regardless of whether the whole series is one piece or several. The package gives you the component structure to make that distinction operational.


    Time Has an Arrow: Directed Topologies and Irreversibility

    So far, the construction has treated the visibility graph as undirected — time flows, but the edges don’t care which way. That discards information. Time series are inherently directional: time runs from past to future, and many real systems are irreversible — they behave differently forwards and backwards. Economic expansions creep upward over years; recessions collapse in quarters. Neurons fire and recover on different timescales. The undirected graph cannot see this asymmetry.

    topologyR’s directed mode fixes this. With directed = TRUE, each visibility edge is oriented from the earlier time point to the later one, producing a directed acyclic graph (a DAG) in which the time index is a natural topological order. From this directed graph, the package extracts two neighbourhood structures: the forward neighbourhood (who can I see ahead of me?) and the backward neighbourhood (who behind me can see me?).

    Applying the Nada construction to each yields two topologies: a forward topology τ⁺ and a backward topology τ⁻. The pair (X, τ⁺, τ⁻) forms what Kelly (1963) called a bitopological space — a set equipped with two topologies rather than one. The divergence between them is a direct, topological measurement of temporal irreversibility.

    Irreversibility Indices

    In a perfectly reversible process — symmetric dynamics, no privileged direction — the two topologies coincide: τ⁺ ≅ τ⁻. They have the same number of connected components, the same base size, the same connectivity. In an irreversible process, they pull apart.

    topologyR quantifies this with several indices. The component irreversibility measures the normalised difference in the number of connected components between the forward and backward topologies: zero means symmetric, one means maximally asymmetric. The base irreversibility does the same for the sizes of the topological bases. The asymmetry direction — the signed difference in component counts — tells you which way the arrow points: a positive value means the forward topology is more connected (fewer components) than the backward one.

    That last point has a concrete physical interpretation. Consider a time series with gradual expansions and abrupt contractions — the classic shape of a business cycle, where GDP creeps up over years and drops in a quarter. During a gradual rise, forward visibility is relatively unobstructed: looking ahead from a point on the upslope, you can see far. After an abrupt drop, backward visibility is blocked: looking back from the trough, the cliff face hides earlier points. This asymmetry means the forward topology should be more connected than the backward topology — fewer forward components, more backward fragmentation. The package predicts, and the data confirm, a positive asymmetry direction for such series.


    The Alexandrov Layer and the Resolution Hierarchy

    There is a third topology lurking in the directed graph, and it is older than the Nada construction by several decades. The Alexandrov topology τ_A, introduced by Alexandrov in 1937, is the topology whose open sets are the upsets of the reachability relation — the sets that, once you enter them, contain everything reachable downstream. For each vertex, its minimal open set is the collection of all vertices reachable from it via directed paths.

    topologyR computes this efficiently: a reverse-order bitset propagation that processes vertices from last to first, OR-ing reachability sets together in O(nm/64) time, reusing the same high-performance bitset infrastructure as the Nada engine.

    The relationship between the Alexandrov and Nada topologies is precise and informative: τ_A is always a subset of the forward Nada topology. The Alexandrov base captures pure order structure — “who can reach whom” — while the Nada intersection closure generates additional sets that are not upsets, catching finer-grained structure. The difference in base sizes, |B_Nada| − |B_A|, tells you exactly how much extra topological information the Nada pipeline extracts beyond the raw ordering. A large gap means the closure operations are doing real work; a small gap means the order structure already tells most of the story.


    Under the Hood: Performance Without Compromise

    Topological enumeration is, in the worst case, exponential — the number of open sets can in principle double with every additional element. This is an inherent mathematical fact, not a software limitation. But topologyR is engineered so that the decision you actually need — connectedness — never requires that enumeration.

    The connectivity computation works on the base alone, via the specialization preorder, in O(n² · ⌈B/64⌉) time. The C++ backend (via Rcpp) represents every subset as a packed array of 64-bit words, so set operations reduce to machine-level bitwise instructions. A compile-time template dispatch selects single-word operations for series up to 64 points, two-word for up to 128, three-word for up to 192 — zero loop overhead, branch-free. Beyond that, a runtime fallback handles arbitrary sample sizes, and OpenMP parallelisation is available where the build supports it.

    The practical upshot: you can run the connectivity decision on series with thousands of points without ever touching the exponential regime. Safety limits (max_base_sets, max_open_sets) cap the intersection and union closures with informative termination flags, so if a computation does hit resource limits, you know exactly where and why — and the connectivity result remains valid as long as the base closure completes.


    A Real-World Test: Reading the Business Cycle

    The paper accompanying the package applies the framework to quarterly U.S. real GDP growth from 1992 to 2024 — 129 observations spanning over three decades. The bitopological analysis recovers a positive asymmetry direction: the forward topology is more connected than the backward one, exactly as predicted for a series with gradual expansions and abrupt contractions.

    The undirected topology partitions the series into six connected components, each corresponding to a distinct macroeconomic regime. Strikingly, the COVID-19 contraction and its rebound — the deepest and fastest swing in the sample — are classified as a single topological episode: one connected component spanning the collapse and recovery, reflecting the fact that the visibility structure treats the V-shaped episode as one structural unit rather than two separate events.

    This is the kind of insight the package is designed to produce: not a forecast, not a parameter estimate, but a structural classification that tells you where the legitimate boundaries in your data lie — and, critically, whether a global model is appropriate at all.


    Where It Sits: Complementary, Not Competing

    It is important to be clear about what topologyR is not. It is not a general-purpose topological data analysis (TDA) engine. Packages like GUDHI, Ripser, TDAstats, and scikit-TDA compute persistent homology — multi-scale features across all dimensions, capturing higher-order structures (loops, voids) via Betti numbers β₁, β₂ and their persistence across scales. That is a richer and harder enterprise.

    topologyR has a narrower and more focused aim: it zeroes in on β₀ — connectedness — for one-dimensional series, using graph-induced topologies, and it turns that single invariant into an actionable decision rule for method selection. Think of it as a pre-model governance tool: a rigorous gatekeeper that runs before you choose your modelling strategy, telling you whether the continuity assumptions your favourite methods require are actually justified by the data’s structure.

    The two approaches are complementary. For early-warning detection, precursor signals, or multi-channel structure, persistent homology is the right tool. For the binary question “can I legitimately fit a global continuous model to this series?”, topologyR gives a direct, interpretable, and mathematically exact answer. A natural hybrid workflow uses topologyR as a pre-test and persistent homology for deeper multi-scale analysis.


    Honest Limitations

    No tool is universal, and topologyR is transparent about its boundaries:

    1. Graph choice matters. HVG and NVG produce different graphs, and therefore potentially different topologies. The NVG, being denser, tends to produce fewer connected components. The package encourages comparing both and interpreting the difference — the gap itself is diagnostic.
    2. Sampling and noise. Sparse sampling can mimic disconnection; minor overlaps can mimic connection. The connectedness verdict should be treated as prima facie evidence, not absolute truth — especially near the boundary.
    3. β₀ only. The approach focuses on connectedness. It will not capture loops, voids, or higher-order patterns that persistent homology can detect. If your question is about cycles or multi-scale structure rather than fragmentation, you need the heavier machinery.
    4. Enumeration is exponential; connectivity is not. This is handled honestly: the connectivity decision is polynomial and scalable; full topology enumeration (needed for pairwise connectedness in the bitopological sense) is capped by safety limits with transparent reporting.

    The Bigger Picture

    What makes topologyR more than a clever technical exercise is its epistemological stance. It transforms a step that is normally a tacit habit — assuming continuity — into an explicit, testable, mathematical procedure. In doing so, it removes arbitrariness from one of the most consequential decisions in applied quantitative work: the choice between global and segmented methods.

    The package’s central theorem — that the Nada construction extends to directed graphs and yields a bitopological space whose asymmetry quantifies irreversibility — is formalised in Lean 4 against Mathlib, so the mathematical foundation is not merely asserted but machine-checked. The implementation is CRAN-compliant, passes R CMD check --as-cran cleanly, and ships with 68 unit tests covering visibility graphs, topology generation, connectivity, directed topology, Alexandrov topology, and bitopological analysis.

    For anyone who works with time series and has ever fitted a spline, run a kriging model, or estimated a trend — which is to say, for most of applied quantitative science — topologyR offers something rare: a way to check, before you model, whether the smoothness you are about to assume is a property of your data or a story you are telling yourself.


    Links and Credits

    The package is authored by José Mauricio Gómez Julián and released under the MIT licence. It requires R ≥ 4.0.0 with Rcpp and ggplot2. The companion paper, “Bitopological Spaces from Directed Graphs: Extending the Nada Construction to Capture Temporal Irreversibility,” develops the full mathematical theory, including the central theorem, the Alexandrov sublayer, specialization preorder, pairwise connectedness, polynomial-time algorithms, and the Lean 4 formalisation.

    If you use topologyR in your research, please cite the repository release.

  • Discovering the Equations Behind Your Data: A Look at EmpiricalDynamics library in R

    Discovering the Equations Behind Your Data: A Look at EmpiricalDynamics library in R

    You can also find this library at CRAN and download it directly from R and RStudio.

    You have a time series — quarterly GDP, a population count, a sensor reading, the price of something. You suspect a differential equation is governing it, but you don’t know which one. You could guess a form and fit it. Or you could hand the data to an algorithm that searches the space of possible equations and hands you back the law, written in symbols, with a measure of how well it fits and how complex it is.

    That second option is what EmpiricalDynamics does. It’s an R package — with a high-performance Julia backend — for discovering differential and stochastic differential equations directly from empirical time series. In this post I’ll walk through what it is, why it exists, and how it works under the hood. For full mathematical detail and the recovery-test suite, the project Wiki is the authoritative reference; this post is the map.


    The problem it solves

    There’s a field called equation discovery (or “symbolic regression for dynamics”). The idea: instead of assuming dy/dt = α + βy and estimating α, β, you let a genetic algorithm breed candidate expressions — combining variables with +, , ×, ÷, sin, exp, and so on — and you keep the ones that fit well per unit of complexity. The output is a Pareto front of equations trading accuracy against simplicity, from which you pick the one that represents a real law rather than memorised noise.

    EmpiricalDynamics, written by José Mauricio Gómez Julián (v0.1.5, MIT licence), wraps this idea into a complete, rigorous workflow aimed squarely at researchers working with observational data — economists, physicists, epidemiologists, anyone studying dynamical systems they didn’t generate in a lab. The motivation is honest: real-world data is noisy, gappy, and rarely matches a textbook form, so the toolkit has to be robust to all three.


    The architecture: a six-step pipeline

    The package is structured as a pipeline you can read top to bottom. Each step is one or more exported R functions; the heavy symbolic search optionally hands off to Julia.

    1. Preprocessing — numerical differentiation. To discover dZ/dt = f(Z, X), you first need dZ/dt. Differentiating noisy data is famously treacherous, so the package offers several methods. The flagship is Total Variation Regularization (TVR), which solves a convex optimisation balancing reconstruction fidelity against a penalty on jumps in the derivative — promoting piecewise-smooth estimates that tolerate trends and structural breaks. It’s backed by a cascading solver chain (CLARABEL → SCS → OSQP) with internal rescaling so tolerances behave regardless of data scale. Cheaper alternatives — Savitzky-Golay, smoothing splines, finite differences, spectral — are there for cleaner or periodic data, and suggest_differentiation_method() will recommend one based on your data’s characteristics.
    2. Exploration. Before fitting anything, explore_dynamics() and a family of phase-portrait, bivariate, and 3-D surface plots let you eyeball the functional structure — does dZ/dt look linear in Z, quadratic, oscillatory?
    3. Equation discovery. This is the heart. symbolic_search() runs the genetic algorithm and returns a Pareto front of candidate equations. You pick one with select_equation() using AIC, BIC, MDL, or a “knee” heuristic. If you already have a theoretical form (say, a Solow growth model or a logistic equation), fit_specified_equation() is more reliable — it fits your form with Levenberg-Marquardt nonlinear least squares rather than searching blindly. The search has three backends: "r_genetic" (pure R), "r_exhaustive" (small problems), and "julia" (the industrial path).
    4. Residual analysis and SDE construction. Here’s where the package earns its keep for serious work. Once you have a drift function , the residuals tell you whether there’s leftover stochastic structure. A diagnostic suite runs Ljung-Box (autocorrelation), ARCH-LM (conditional heteroscedasticity), Breusch-Pagan, Jarque-Bera, and a runs test. If the residuals carry structure, you’re not done — you have a stochastic differential equation dZ = f dt + g dW, and now you need to recover the diffusion g.
    5. Validation. Cross-validation — critically, block CV for time series, not random CV, which would destroy temporal dependence. Plus trajectory simulation from the discovered SDE and qualitative-behaviour checks (fixed points, stability, bifurcations) to confirm the equation reproduces the dynamics you actually observe.
    6. Output. LaTeX equations, coefficient tables, model-comparison tables, and full markdown/HTML reports — publication-ready.

    The Julia backend

    The R side handles statistics, diagnostics, and orchestration. The Julia side — inst/julia/symbolic_backend.jl, calling SymbolicRegression.jl — handles the expensive evolutionary search, multi-threaded across CPU cores. The Julia code defines a ScientificSearchConfig struct with the usual knobs (population size, iterations, parsimony penalty) and a notable extra: automatic detection of physical constants — π, e, φ, g, c, h, k_B — so that when your data is generated by π·sin(t), the search can return π·sin(t) rather than 3.14159·sin(t). The README reports recovering π and e to 10⁻⁸ precision from noisy data.

    The R↔Julia bridge is JuliaCall (with JuliaConnectoR as an alternative). Recent releases (see NEWS.md) fixed real bugs in this glue — a wrong hard-coded UUID that made setup_julia_backend() falsely report the backend as unavailable, a single-predictor TypeError, and a Hall-of-Fame extraction ParseError. The lesson is mundane but important: the engine was fine; the R-side marshalling had drifted out of sync with current SymbolicRegression.jl. It now works end-to-end.


    The one idea worth understanding deeply

    If you take away a single technical point, take this: the better TVR estimates the drift, the more it destroys the information needed to recover the diffusion.

    TVR works by smoothing the derivative — penalising total variation, which suppresses high-frequency components. But in an SDE, the diffusion coefficient g lives in those high-frequency residuals. So as you crank up TVR’s regularisation to get a clean drift, the residual-based diffusion estimate collapses. The Wiki documents this starkly: across solver generations, residual-based diffusion R² fell from 0.591 to 0.005 as the solver improved.

    EmpiricalDynamics resolves the tension by estimating diffusion from quadratic variation(ΔZ)²/Δt ≈ g²(X) — using the raw increments directly, bypassing TVR entirely. With this method the diffusion R² jumps to 0.985, regardless of how aggressively TVR smoothed the drift. That’s the kind of design decision that separates a toy from a toolkit: it acknowledges a fundamental statistical trade-off and routes around it.


    Does it actually work?

    The Wiki’s recovery test suite is the evidence, and it’s worth reading in full. The epistemological framing is unusually careful: a recovery test generates synthetic data from a known ground-truth equation, hands it to the algorithm “blind,” and checks whether the algorithm rediscovers the law. The Wiki is explicit that this is a necessary but not sufficient condition for genuine causal inference — spurious correlations and unobserved confounders remain possible, and there’s an irreducible simulation-to-reality gap. That honesty matters.

    The headline numbers:

    • Lorenz attractor (chaotic ODE): average R² ≈ 0.937 across the three Lorenz equations, with the TVR solver reporting 30/30 optimal convergences.
    • SDE recovery with drift 10·sin(X) − 2.5·Z³ and diffusion 0.10 + 0.06·|X|: drift R² = 0.841, diffusion R² = 0.985 (via quadratic variation), under a challenging signal-to-noise ratio of 0.29.

    These are strong results, and the Wiki is transparent about where the limits are — diffusion R² above 0.5 is often the practical ceiling when SNR < 1, and the symbolic search is stochastic, so run-to-run variability is real.


    Should you use it?

    If you’re a researcher with time series data and a hypothesis that a differential equation is at work — economic growth, epidemiological spread, predator-prey dynamics, interest-rate feedback — EmpiricalDynamics gives you a principled, end-to-end pipeline rather than a bag of tricks. It won’t hand you causality on a plate (nothing will), but it will tell you, defensibly, what functional form the data is consistent with, how confident you should be, and what the residuals imply about stochastic structure.

    The package is young (v0.1.5, first released late 2025) and the roadmap is ambitious — GPU acceleration, neural-guided search, Bayesian SDEs via Stan. But the core is solid, the methodology is rigorous, and the documentation — both the README and the Wiki — is unusually thorough. If equation discovery is relevant to your work, this is a project worth watching and, more to the point, worth using.

    Links: GitHub repository · Wiki (full theoretical foundations, recovery tests, and API reference)

  • Quantitative Theory of Money or Prices? A Historical, Theoretical, and Econometric Analysis

    Quantitative Theory of Money or Prices? A Historical, Theoretical, and Econometric Analysis

    Does Money Drive Prices, or Do Prices Drive Money?
    Econometrics · Monetary Theory · Machine Learning · Political Economy

    Does Money Drive Prices, or Do Prices Drive Money?

    A 300-year-old debate, four countries, six decades of data, Bayesian statistics, and neural networks — a deep dive into one of the most ambitious monetary studies in recent years

    What you will find in this post
    1. The oldest argument in monetary economics — Hume, Friedman, and why it still matters today
    2. Marx’s forgotten critique — four logical objections that mainstream economics never answered
    3. The role of gold in a post-gold-standard world — why the Fed still dances around the price of gold
    4. A mathematical model for the money-prices relationship — equations explained without the jargon
    5. The data and the methodology — four countries, Bayesian models, neural networks, and random forests
    6. Country-by-country results — what the United States, Canada, the UK, and Brazil each reveal
    7. Why money is never neutral — and what that means for how we think about the economy
    8. Policy implications and open questions — what this means for central banks and for you
    · · ·

    1. The Oldest Argument in Monetary Economics

    There is a question at the heart of economics that sounds deceptively simple: when governments print more money, do prices go up because there is more money chasing the same goods — or does the economy first produce goods at certain prices, and then the amount of money in circulation simply adjusts to match? Put differently: does money cause prices, or do prices cause money?

    This is not an abstract riddle for seminar rooms. The answer determines how central banks set interest rates, whether governments choose austerity or stimulus in a recession, and how we understand inflation. If the quantity of money determines prices, then controlling the money supply is the key to controlling the economy. If prices determine the quantity of money, then the real action is in production, technology, and competition — and monetary policy is, at best, a secondary lever.

    The debate begins with the Scottish philosopher David Hume, writing in the mid-eighteenth century. In his essays on money and trade, Hume proposed what became the foundation of mainstream monetary thought: if you double the quantity of money in an economy while keeping everything else constant, prices will eventually double. Money, in this view, is a veil — it changes the numbers on price tags but does not alter the real productive capacity of the economy. The ratio of money to goods simply adjusts until equilibrium is restored.

    This idea was not without immediate critics. The Scottish economist James Steuart attacked it almost as soon as it appeared (1767). Adam Smith, often considered the father of modern economics, held the opposite view — that prices, not money, are the active variable. But the idea proved remarkably resilient. Over the following two centuries, it was refined into what economists call the Quantity Theory of Money, which reached its most influential modern form in the work of Milton Friedman. For Friedman, Hume was the starting point of all monetary theory. For Robert Lucas, another Nobel laureate, Hume marked the beginning of modern monetary economics.

    But there was always an alternative tradition, running from the classical economists through Karl Marx, that saw the relationship in exactly the opposite direction. A new paper by the Costa Rican economist José Mauricio Gómez Julián, published on arXiv in January 2025, takes this alternative tradition seriously, subjects it to rigorous empirical testing with the most modern tools available — Bayesian statistics, machine learning, deep learning, and ensemble methods — and arrives at conclusions that challenge the mainstream consensus.

    · · ·

    2. Marx’s Forgotten Critique

    When most people hear “Marx” and “money” in the same sentence, they expect ideology. But in his Contribution to the Critique of Political Economy (1859), Marx offered something far more valuable: a meticulous logical dissection of Hume’s reasoning. Gómez Julián’s paper draws on four central aspects of this critique, each of which makes testable claims about the real world.

    First: Money is subordinated to exchange values, not the other way around

    Marx’s fundamental point is that the sphere of circulation (where money changes hands) is ultimately subordinated to the sphere of production (where goods are actually made). This is not just a philosophical claim — it has a concrete implication. The quantity of money in circulation must maintain a certain equilibrium with the quantity of goods and services available for sale. If there is too little money, commercial transactions become difficult — there are not enough means of payment to go around. If there is too much money, sellers can raise prices to absorb the excess.

    But here is the crucial mechanism: if the quantity of money falls below or rises above its “necessary level,” a coercive correction occurs through commodity prices. Prices adjust, and money supply follows — not the other way around. The direction of causation runs from prices to money, mediated by the real commodity foundation of money (in Hume’s and Marx’s time, gold and silver).

    This means that money’s non-neutrality — the fact that changes in the money supply do affect real economic outcomes — is not caused by money determining prices. It is caused by the mediating relationship between prices and the material foundation of money, which creates a feedback loop over time.

    Second: An epistemological critique of Hume’s evidence

    Marx points out that when Hume formulated his theory, he was observing a very specific historical situation: the discovery of American mines and the increase in slave labor, which lowered the extraction cost of gold and silver. Under these conditions, the price of commodities exchanged directly for gold and silver (i.e., exported commodities) did indeed rise. But this rise occurred because gold and silver were functioning as commodities — their production cost had dropped — not because more money was chasing the same goods. The effect on gold as a means of payment (i.e., domestic money) took much longer to materialize. Hume, in Marx’s reading, confused a change in the relative value of a commodity (gold) with a general monetary phenomenon.

    Third: Accounting money vs. means of circulation

    Marx argues that Hume made a fundamental category error: he confused accounting money (the unit in which prices are denominated) with money as a means of circulation (the physical medium of exchange). These are different things with different behaviors. Moreover, Hume failed to consider historical events of his own time that demonstrated the need to account for the exchange value of gold and silver when linking money to prices.

    Fourth: Two critical corollaries

    This is where the theory makes its sharpest predictions. Marx draws two conclusions from his analysis that can be tested empirically:

    Marx’s two testable corollaries
    • Corollary 1: If metallic currency is a symbol of value, then the sum of commodity prices determines the quantity of circulating money. But if the monetary unit is a symbol of value, then the quantity of circulating money is determined by the sum of commodity prices. Marx argues it is the monetary unit — not the metallic currency — that is the symbol of value.
    • Corollary 2: If money derives its value from prices (Marx’s position), then there can be more money in circulation than the sum of commodity prices. But if money determines prices (Hume’s position), then there cannot be more money circulating than the sum of prices. Marx argues that the former is true — and it can be checked against data.

    Gómez Julián checks Corollary 2 directly. “Circulating money” is defined as the monetary aggregate M1 (cash plus checking deposits), and the “sum of commodity prices” is, by definition, nominal GDP. Looking at the statistical systems of the United States, the United Kingdom, Canada, and Brazil, the paper finds that M1 exceeds nominal GDP in multiple years for each country. This is straightforward evidence in favor of Marx’s position. The author also notes that previous work on El Salvador showed M1 consistently below nominal GDP — which might seem to contradict the pattern until one considers El Salvador’s dollarization, which fundamentally changes the monetary dynamics.

    “Marx’s central thesis is that the value of money depends on the purchasing power of the commodity or commodities that underlie it, and this purchasing power, in turn, depends on the general level of prices. Such prices, the market prices, are determined by capitalist competition.” — Gómez Julián, summarizing Marx’s framework

    The value theory question

    One cannot discuss Marx’s monetary theory without addressing the foundation beneath it: the labor theory of value (LTV). Marx argues that market prices oscillate around “prices of production,” which are themselves grounded in the socially necessary labor time required to produce goods. If the LTV is correct, then exchange values have an objective basis in production — and the subordination of money to prices follows naturally.

    The paper acknowledges that these monetary claims stand or fall with the validity of the LTV, but it also notes that the neoclassical alternative — the subjective theory of value based on marginal utility — has its own deep problems. The famous Cambridge Capital Controversy of the 1960s demonstrated that the neoclassical foundations (the so-called “neoclassical parables”) do not provide a coherent scientific explanation of economic phenomena. Even Paul Samuelson, one of the greatest neoclassical economists, admitted that capital aggregation problems can only be resolved by adopting something very close to the labor theory of value. Joan Robinson went further, arguing that capital can be nothing more than “accumulated past labor.” Notably, the Penn World Tables — one of the most important databases in empirical economics — do not use marginal productivity of capital to measure capital remuneration, but instead use the real average internal rate of return, precisely because of the aggregation problem.

    · · ·

    3. The Role of Gold in a Post-Gold-Standard World

    If money is ultimately subordinated to prices, and prices are anchored in the real economy, what gives money its value in the modern era? Since the collapse of the Bretton Woods system in 1971, when President Nixon ended the dollar’s convertibility to gold, most economists have treated modern money as purely “fiduciary” — backed by nothing but government decree and public trust. Gómez Julián argues, with substantial evidence, that this is not the full picture.

    The paper presents three pillars of evidence for gold’s continuing monetary role:

    Gold’s enduring monetary significance
    • Greenspan’s own words: “Gold still represents the ultimate form of payment in the world. Fiat money in extremis is accepted by nobody. Gold is always accepted.” This is not a gold bug’s fantasy — it was stated by the man who chaired the Federal Reserve for nearly two decades.
    • The inverse relationship: Gold and the US dollar consistently move in opposite directions. When gold rises, the dollar tends to fall, and vice versa. This has been documented by multiple financial analysts and is visible in decades of market data.
    • Policy history: After the turbulence of the 1970s (high inflation, debt crises, savings crises), Paul Volcker — who took over as Fed chair in 1979 — formally abandoned the monetarist experiment in 1982 and adopted policies aimed at stabilizing the dollar’s value against gold and other commodities. This was supported by the Plaza Accord (1985) and the Louvre Accord (1987). The result was the “Great Moderation” (1982–2007), a period of unusual macroeconomic stability.

    The paper traces a revealing pattern through subsequent Fed chairs. Greenspan continued Volcker’s gold-aware approach. When Ben Bernanke — an economist who openly declared Friedman as his central intellectual influence — took over in 2006, policies diverged from the gold anchor, and gold price volatility surged to its highest level since the end of Bretton Woods. The dollar declined. Janet Yellen, who succeeded Bernanke in 2014, returned to the Volcker-Greenspan orientation, and gold prices stabilized. Jerome Powell initially followed this path but gradually moved away, declaring in 2019 that tying the dollar to gold would prevent the Fed from maximizing employment.

    Gómez Julián pushes back on Powell’s argument on two grounds. First, periods when the Fed stabilized the dollar around gold showed at least the same level of employment stability as periods when it did not. Second, since Bretton Woods, no country has used the gold standard directly — they have anchored their currencies to the dollar, and the dollar has been anchored (in varying degrees) to gold. So Powell’s claim that “no country uses it” misses the layered structure of the international monetary system.

    The dialectical contradiction of gold

    The paper draws on the Marxist economist Ernest Mandel to explain why the United States both needs and resists the gold standard. The gold standard provides stability — but it also requires contractionary policies during recessions, which can deepen crises and, as the case of Heinrich Brüning’s Germany (1930–1932) showed, can undermine democracy by creating the conditions for fascism. The gold standard also requires a delicate balance between short-term dollar demand (from foreign investors parking reserves) and long-term dollar outflow (from American investments abroad). When this balance tips — as it did in the late 1960s — the result is a monetary crisis.

    “The ‘dollar crisis’ and the search for means of international payment independent both of gold and ‘currency reserves’ reflect clear recognition on the part of big international capital of a contradiction inherent in the present-day capitalist system: the contradiction between the dollar’s role as an ‘international money,’ and its role as an instrument to assure the expansion of the American capitalist economy. To fulfill the first function, a stable money is needed. To fulfill the second function, a flexible money is necessary, i.e., an unstable one. There’s the rub.” — Ernest Mandel, 1968, quoted in the paper

    This dialectical tension — the system needs gold stability but also needs monetary flexibility — explains the recurring oscillation between gold-anchored and gold-detached monetary regimes. The paper describes the current arrangement as a “loose gold standard”: not a formal peg, but a persistent gravitational pull.

    · · ·

    4. A Mathematical Model for the Money-Prices-Gold Relationship

    Gómez Julián formalizes the above arguments into a mathematical model. The basic version is elegant in its simplicity:

    Core equation Qm = λp / λgold · β

    In plain language: the quantity of money in circulation (Qm, measured as M1) is equal to the sum of commodity prices (λp, measured as nominal GDP) divided by the international price of gold (λgold), multiplied by a coefficient (β) that represents the velocity of money circulation (assumed, for simplicity, to equal one).

    This equation encodes several intuitive relationships:

    What the equation says — in words
    • If prices (nominal GDP) rise while gold stays the same, the money supply must increase — more money is needed to express the same goods at higher prices.
    • If the gold price rises while prices stay the same, the money supply decreases — fewer monetary units are needed to express the same sum of prices, because gold is now more valuable per unit.
    • If both prices and gold rise, the effect on money depends on which change is larger — it could go either way.
    • If prices rise and gold falls, money unambiguously increases — both forces push in the same direction.

    The paper works through all eight possible combinations of price and gold movements (both up, both down, one up one down, one fixed one moving, etc.), showing that the model’s predictions are internally consistent. This is not just algebra — it is a stress test of the theory’s logical coherence.

    The model can also be expressed in logarithmic form, which has a practical advantage: when you run a regression on logarithmically transformed variables, the coefficients can be interpreted directly as elasticities — percentage changes. For example, a coefficient of 0.13 means that a 1% increase in prices is associated with a 0.13% increase in the money supply, holding gold constant. This logarithmic transformation also tends to smooth out extreme values in the data, improving statistical performance.

    A more general version of the model simply states that the money supply is a function of both prices and gold, without specifying the exact functional form — leaving the data to reveal the shape of the relationship.

    · · ·

    5. The Data and the Methodology

    Four countries, carefully chosen

    The empirical analysis covers quarterly data from four countries, each chosen for a specific reason:

    Country selection and rationale
    • United States (1959–2022): The most developed Western capitalist economy. Economic laws derived from its study are, to varying degrees, applicable to other capitalist countries. It represents the highest stage of development reached by Western capitalism and serves as a mirror of the future for other economies. 63 years of data — longer than a Kondratieff wave (the long cycles of capitalist dynamics, typically 40–60 years).
    • Canada (1961–2022): Chosen for similar reasons to the UK, but representing the welfare state variant of Western capitalism — a different model from both the US and the UK. 61 years of data.
    • United Kingdom (1986–2022): A major developed capitalist economy with more available data than other candidates like Germany or France. 36 years of data.
    • Brazil (1996–2022): An emerging economy (developing country), chosen to test whether the findings generalize beyond advanced capitalism. Since the study had already been done for El Salvador (an underdeveloped country), verifying the results for Brazil would suggest the patterns are general economic laws of capitalist development. 26 years of data.

    A multi-layered methodological approach

    This is not a paper that runs one regression and calls it a day. The methodology unfolds in several stages, each building on the previous one:

    Stage 1: Pairwise direction analysis. The first question is: for each pair of variables (money-prices, gold-prices, money-gold), which variable best predicts which? This is done using Bayesian simple linear regression, where the direction of the relationship is determined by comparing the Expected Log Pointwise Predictive Density from Leave-One-Out cross-validation (ELPD-LOO) — a rigorous measure of how well a model predicts data it has not seen. Higher (less negative) ELPD-LOO means better predictive performance.

    Stage 2: RESET tests for nonlinearity. Linear models assume straight-line relationships. But what if the real relationship is curved? The paper runs Ramsey’s RESET test with quadratic, cubic, and combined terms, bootstrapped using a Bayesian posterior distribution. This reveals whether linear models are missing important nonlinear patterns — and, if so, what kind of curvature is present.

    Stage 3: Empirical distribution fitting. Before building multivariate models, the paper determines the best-fitting probability distribution for each variable (log-normal, Weibull, Gamma, Normal, etc.) using the maximum goodness-of-fit method, with results selected by the Bayesian Information Criterion (BIC). This is not just a technical exercise — it directly informs how the variables are transformed in later models.

    Stage 4: Bayesian Generalized Linear Models (BGLM). The paper constructs multivariate models using different statistical families (Gamma, Gaussian) and link functions (logarithmic, identity), with gold often transformed into a natural cubic spline (a flexible curve that can capture nonlinear patterns) or fitted as a Weibull random variable. The choice of family, link, and transformation is driven by predictive performance metrics.

    Stage 5: Machine learning and deep learning. Four different ML models are tested individually and in combination:

    Machine learning models used
    • Quantile Random Forest (QRF): An extension of random forests that estimates the entire distribution of the predicted variable, not just its average.
    • Conditional Inference Random Forest: A variant that uses statistical tests to select splitting variables, reducing bias toward variables with many possible splits.
    • Bayesian Regularized Neural Network (BRNN): A neural network that uses Bayesian regularization to prevent overfitting — the model learns to be cautious about its own complexity.
    • Support Vector Machine with Radial Basis Kernel (SVMRadial): A powerful classification/regression method that maps data into higher-dimensional spaces to find optimal decision boundaries.

    Stage 6: Ensemble learning. Finally, the paper tests whether combining multiple models through boosting (a technique where each new model focuses on the errors of the previous ones) produces better predictions than any individual model. The ensemble is structured as a Bayesian Generalized Linear Model with Gaussian family and identity link.

    A critical philosophical point: the paper uses objective Bayesian analysis. This means that all prior information — the starting assumptions the model uses before seeing the data — is derived from empirical analysis of the dataset itself, not from subjective beliefs or assumptions. This approach incorporates what the author calls “epistemological doubt” about parameter estimation, acknowledging that we can never be perfectly certain about any estimated value.

    · · ·

    6. Country-by-Country Results

    United States (1959–2022)

    The pairwise analysis reveals something striking: the simple relationship between M1 and prices is undecidable — both directions fit about equally well by ELPD-LOO. This is already a blow to the simplistic Quantity Theory, which claims a clear causal arrow from money to prices. However, gold is clearly best predicted by prices (not the reverse), and M1 is clearly best predicted by gold (not the reverse). This suggests a chain: prices → gold → money, consistent with Marx’s framework.

    The RESET tests confirm that the relationships are nonlinear. For the M1-prices pair in both directions, all RESET tests yield p-values of zero — meaning the linear models are definitively inadequate. Nonlinearity is everywhere.

    The multivariate model that best fits the data is a BGLM with Gamma family, logarithmic link, and gold transformed into a natural cubic spline with five degrees of freedom. The coefficient on log(prices) is +0.13 — confirming the direct, positive relationship between prices and money supply. The spline coefficients for gold alternate in sign across the five basis functions, confirming the theoretically predicted nonlinear, segment-dependent relationship. The model achieves an MAE of just 0.12 (2.43% of the log(M1) minimum) and an RMSE of 0.21.

    The ensemble model — combining a Bayesian Regularized Neural Network (weight: 0.41) and a Quantile Random Forest (weight: 0.59) — further improves performance: MAE drops to 0.08 on test data, RMSE to 0.25, and the R² reaches 0.985 in training. All coefficients are highly significant (p < 2e-16). The US is the only country where the ensemble outperforms the best individual ML model.

    Canada (1961–2022)

    The pairwise results are cleaner than in the US case: M1 is best predicted by prices, gold is best predicted by prices, and M1 is best predicted by gold. The chain prices → gold → money is clearly visible. RESET tests again confirm pervasive nonlinearity.

    The best multivariate model uses a BGLM with Gamma family, logarithmic link, and gold transformed as a Weibull random variable (shape = 5.88, scale = 6.47). The coefficient on log(prices) is +0.045 — smaller than in the US but still positive and confirming the prices-to-money direction. The Weibull transformation captures the nonlinear gold dynamics in a single parametric term. The model achieves an MAE of 0.23 and RMSE of 0.28.

    Unlike the US, the ensemble did not improve on the best individual ML model. A Quantile Random Forest performed best on its own, achieving a remarkable R² of 0.998 in training and an MAE of just 0.04 on test data. The near-perfect fit suggests that the money-prices-gold relationship in Canada is highly regular and predictable over this period.

    United Kingdom (1986–2022)

    With a shorter sample (36 years), the UK shows a more mixed pattern in pairwise analysis. Notably, the simple relationship between M1 and prices runs in the reverse direction — prices are best predicted by M1, not the other way around. This might seem to support the Quantity Theory, but it only holds in the simple bivariate case. When gold is included in the multivariate model, the direct relationship between prices and money reasserts itself.

    The best multivariate model is a BGLM with Gamma family, logarithmic link, and gold transformed as a natural cubic spline with five degrees of freedom — similar to the US specification. The coefficient on log(prices) is +0.071, and the spline coefficients alternate in sign, as predicted by theory. The model achieves an MAE of 0.06 and RMSE of 0.07 — the tightest fit among the four countries.

    As with Canada, the ensemble did not improve on the best individual model. A Quantile Random Forest again performed best, with R² of 0.993 in training and near-zero RMSE on test data.

    Brazil (1996–2022)

    Brazil, as an emerging economy with a turbulent monetary history, presents the most complex picture. In pairwise analysis, the money-prices relationship again runs in the reverse direction (prices predicted by M1), and the gold-prices relationship is bidirectional. RESET tests show the strongest nonlinearity signals of any country, with many p-values at or near zero.

    The best multivariate model uses a BGLM with Gaussian family (the only country where Gaussian outperformed Gamma), logarithmic link, and gold transformed as a natural cubic spline. The coefficient on log(prices) is +0.05, again confirming the direct relationship. Model performance is solid: MAE of 0.07, RMSE of 0.21.

    Among ML models, a Support Vector Machine with Radial Basis Kernel performed best, achieving R² of 0.991 in training and an MAE of 0.012 on test data. As with Canada and the UK, the ensemble did not improve on this individual model.

    Summary: In all four countries, the multivariate models confirm a positive relationship between prices and money supply, and a nonlinear, segment-dependent relationship between gold and money supply — exactly as the theoretical model predicts.
    · · ·

    7. Why Money Is Never Neutral

    The paper’s central conclusion, stated plainly: money is not neutral at any time horizon — not in the short run, not in the long run, across all four countries studied.

    This is a strong claim, and it contradicts one of the most fundamental assumptions of mainstream economics. The concept of “monetary neutrality” holds that changes in the money supply eventually affect only nominal variables (prices, wages) and leave real variables (output, employment) unchanged. In the long run, the argument goes, the economy returns to its “natural” state regardless of what the central bank does with the money supply.

    Gómez Julián’s results, based on data spanning up to 63 years — longer than a full Kondratieff cycle — provide no support for this proposition. But the paper is careful to explain why money is non-neutral, and the explanation differs from what both mainstream and some heterodox economists might expect.

    Non-neutrality, in this framework, is not caused by the money supply determining prices (the monetarist claim). It is caused by the mediating relationship between prices and the real commodity foundation of money (gold), which determines the money supply. This creates a feedback loop: prices influence gold, gold influences money, and money — through aggregate demand — feeds back into prices. The exchange value of money as a monetary unit is the transmission mechanism.

    Because this feedback is nonlinear (as confirmed by the RESET tests and the spline models across all four countries), and because it operates over time with dynamic lags, the money-prices-gold system constitutes what complexity scientists would call a complex system — a system where small changes can have disproportionate effects, where cause and effect are intertwined, and where linear prediction is fundamentally limited.

    · · ·

    8. Policy Implications and Open Questions

    What this means for policy

    The findings have practical consequences for how we think about monetary policy:

    Policy takeaways
    • The best way to control prices is directly — through industrial policy, competition policy, supply-side interventions, and measures that address the real determinants of production costs. Since prices are ultimately grounded in the sphere of production, intervening there is the most effective approach.
    • But controlling the money supply also works — because the feedback relationship runs in both directions. Contracting M1 can reduce prices, even though the primary direction of causation runs from prices to money. This “theoretically justifies a commonly effective practice in economic policy,” as the author puts it.
    • Friedman’s narrative about the Great Depression is weakened. The Federal Reserve expanded the monetary base during the Depression, yet the Depression happened anyway. During the 2008 crisis, the Fed adopted an aggressive expansionary monetary policy — and it alone was not enough. It had to be accompanied by massive fiscal intervention (the 2009 American Recovery and Reinvestment Act), direct asset purchases, near-zero interest rates, and other measures. As Krugman noted, “The Monetary History thesis has just taken a hit.”
    • The gold standard is not incompatible with employment stability. This challenges the argument, made by Jerome Powell and others, that returning to a gold anchor would sacrifice the Fed’s ability to maximize employment. The historical record shows at least equivalent macroeconomic stability during gold-anchored periods.

    Two open questions for future research

    The paper is transparent about what it does not answer:

    Question 1: In the current loose gold standard, how exactly does the feedback between prices, gold, and the money supply work through specific economic policy instruments? The Fed’s tools — interest rates, quantitative easing, reserve requirements — act as latent variables mediating the gold-money relationship. The paper establishes that this mediation exists but acknowledges that its precise mechanisms require further study.

    Question 2: What are the quantitative and temporal limits of monetary non-neutrality? If too much money enters circulation, commodity prices eventually correct the imbalance through a “coercive correction.” But how large can the distortions become before correction occurs, and how long does the adjustment take? Understanding these limits could illuminate phenomena traditionally attributed to monetary factors — such as the “liquidity trap” — from an entirely new angle.

    A methodological statement

    Beyond its economic findings, the paper is also an argument about method. By combining objective Bayesian statistics with modern machine learning — neural networks, random forests, support vector machines, and boosted ensembles — Gómez Julián demonstrates that the tools of artificial intelligence can serve heterodox economic theory, not just mainstream modeling. Using Bayesian regularized neural networks and gradient-boosted ensembles to test predictions derived from Marx’s nineteenth-century monetary theory is, to put it mildly, unusual. But the results are robust, the fit is strong, and the patterns are consistent across four countries with very different economic structures.

    The paper’s approach to the so-called “transformation problem” — the long-standing debate about how labor values map onto market prices — also deserves attention. By assuming inventory valuation at the cost of reproduction (where the current technological state determines the value of inputs), Gómez Julián shows that the system of equations has a unique solution given the degree of exploitation of labor power, sidestepping a controversy that has occupied Marxist economists for over a century.

    · · ·

    The Takeaway

    Three hundred years after David Hume proposed that money determines prices, and one hundred and sixty-five years after Karl Marx argued the opposite, we still do not have a settled answer. Gómez Julián’s paper does not claim to settle it — but it does something arguably more valuable. It shows, with rigorous data and modern methods across four countries and six decades, that the question itself may be wrongly framed as a binary choice.

    Money and prices, along with gold, form a complex, nonlinear, feedback-driven system in which both directions of causation operate simultaneously. But the relationship is asymmetric: prices hold the upper hand. Money is ultimately subordinated to the real economy — to production, to labor, to the commodities that give currency its value — even as it feeds back into prices through aggregate demand. Money is never neutral, but it is never the master either. It is, in the deepest sense, a dependent variable that nonetheless shapes the system it depends on.

    In an era of quantitative easing debates, cryptocurrency experiments, inflation anxiety, and questions about the very nature of money, this is not just an academic finding. It is a framework for thinking about the monetary world we actually inhabit — one that is messier, more dynamic, and more deeply rooted in material reality than either Hume or Friedman imagined.