Are there holes in my road map from calculus to malliavin differential geometry, Bayesian hypergraphs, and causal inference?

257 Views Asked by At

I've constructed a directed acyclic graph that leads from introductory subjects, such as calculus (single and multivariable) to some of my current interests including causal inference, Bayesian hypergraphs, and Malliavin differential geometry. The arcs indicate that something in one subject is required by another, with some relaxation in noting that there is transitivity across the graph. I've excluded set theory as too obvious and universal, and hypernetworks and simplicial complexes as merely borderline to my interests as of this moment.

enter image description here

You can produce the diagram for yourself with the following code which is provided below.

from graphviz import Digraph

g = Digraph()

# Calculus
g.edge('Calculus', 'Real\nAnalysis')
g.edge('Calculus', 'Topology')
g.edge('Calculus', 'Differential\nEquations')

# Linear Algebra
g.edge('Linear\nAlgebra', 'Differential\nEquations')
g.edge('Linear\nAlgebra', 'Multilinear\nAlgebra')

# Abstract Algebra
g.edge('Abstract\nAlgebra', 'Multilinear\nAlgebra')

# Real Analysis
g.edge('Real\nAnalysis', 'Measure\nTheory')

# Topology
g.edge('Topology', 'Measure\nTheory')

# Measure Theory
g.edge('Measure\nTheory', 'Probability\nTheory')

# Probability Theory
g.edge('Probability\nTheory', 'Bayesian\nProbability')
g.edge('Probability\nTheory', 'Stochastic\nProcesses')

# Bayesian Probability
g.edge('Bayesian\nProbability', 'Bayesian\nNetworks')

# Graph Theory
g.edge('Graph\nTheory', 'Bayesian\nNetworks')
g.edge('Graph\nTheory', 'Hypergraph\nTheory')
g.edge('Bayesian\nProbability', 'Bayesian\nHypergraphs')

# Hypergraph Theory
g.edge('Hypergraph\nTheory', 'Bayesian\nHypergraphs')

# Bayesian Networks
g.edge('Bayesian\nNetworks', 'Causal\nInference')

# Stochastic Processes
g.edge('Stochastic\nProcesses', 'Stochastic\nCalculus')

# Differential Equations
g.edge('Differential\nEquations', 'Partial\nDifferential\nEquations')
g.edge('Differential\nEquations', 'Stochastic\nCalculus')

# Partial Differential Equations
g.edge('Partial\nDifferential\nEquations', 'Calculus\nof\nVariations')
g.edge('Partial\nDifferential\nEquations', 'Differential\nGeometry')

# Stochastic Calculus
g.edge('Stochastic\nCalculus', 'Stochastic\nDifferential\nEquations')
g.edge('Stochastic\nCalculus', 'Stochastic\nDifferential\nGeometry')

# Stochastic Differential Equations
g.edge('Stochastic\nDifferential\nEquations', 'Malliavin\nCalculus')

# Calculus of Variations
g.edge('Calculus\nof\nVariations', 'Malliavin\nCalculus')

# Topology
g.edge('Topology', 'Differential\nGeometry')

# Multilinear Algebra
g.edge('Multilinear\nAlgebra', 'Differential\nGeometry')

# Differential Geometry
g.edge('Differential\nGeometry', 'Stochastic\nDifferential\nGeometry')

# Malliavin Calculus
g.edge('Malliavin\nCalculus', 'Malliavin\nDifferential\nGeometry')


# Stochastic Differential Geometry
g.edge('Stochastic\nDifferential\nGeometry','Malliavin\nDifferential\nGeometry')


g.view()

What I would like to know is if there are any subjects that I have left out. You're welcome to comment on other flaws in the DAG, and feel free to use the code to show me how you think it 'should' be structured in your answer, but I am primarily interested in missing subjects.