Reality is (Probably) Illusionary¶

Table of Contents¶

  1. Introduction
  2. A Tale of Two Realities
  3. Fragility - Your Life is a Lie
  4. Fateful Encounters
  5. Death and Taxes

Introduction¶

This notebook was motivated by personal experiences to articulate certain thoughts on the existence of objective truth and the deliberate efforts we go through to obfuscate this in favour of preferable narratives. Although the subject matter is abstract in nature, I hope to convey ideas in an intuitive manner using occasional Python prompts for illustrative purposes.

"Have you ever heard of the Gnostics?"

"Is that when you're not sure if God exists, like not quite an atheist?"

"No. Jesus' disciples, they all wrote gospels, right? But they didn't all make it into the Bible. The church only wanted the ones that told the story they were trying to tell."

"I didn't know that."

"Well, the same goes for all history. Same goes for your brain."

"What do you mean?"

"Our brains are just computers that make our life stories make sense."

A Tale of Two Realities¶

I remember a particular incident that took place in my younger years when I used to be fascinated by the world of gambling and casinos. During one of my first experiences playing Blackjack, I was sat alone at the table with a dealer and one other older gentleman, who seemed to have spent his fair share of time playing games of chance. The dealer distributed the cards resulting in two tens for me and a face card for the dealer. In such a situation, the best decision is to stand since the resultant score of twenty already implies a high probability of winning. Instead, I had ignorantly decided to split my hand, which separates the single bet into two independent bets with an additional card dealt to each wager. The dealer looked at me quizzically and asked me if I was certain about my decision. The older man at the table waved his hand and told me to follow my gut instinct. The dealer proceeded with handing me an ace and a jack to his seven, giving him a losing score of seventeen. Elated and slightly relieved from the experience, I had asked the man if I had made the right decision. He casually replied, "the only right decision is the one that ends up winning".

Interestingly, this particular moment which must have happened a decade ago offers a reasonable template for highlighting the difference between two distinct realities - one which bases itself on information known a priori vs the other which discriminates solely on empirical events. My decision was certainly not one based on informed judgement but nonetheless was the winning hand which according to our seasoned gambler's advice, is the only thing that matters. I would say that most people would generally agree with this statement in so much that we designate the word 'reality' to denote something that has already happened, or is currently unfolding. We infer tall tales based on this supposed truth but fail to recognise certain limitations in conditioning on such information. If two men were handed a pistol and told to shoot an innocent bystander, and both men chose to squeeze the trigger but only one of the guns was actually loaded, it would seem logically inconsistent to brand only one of these men as a murderer based on the events which actually occurred.

In the below Monte-Carlo simulation, one-hundred random trajectories were plotted to represent potential realities, each underlining the prospect for unknown unknowns when viewed from the perspective of a singular lens. I believe that a case can be made that these hidden worlds matter just as much as the one we are in.

In [30]:
import numpy as np
import matplotlib.pyplot as plt

# Set the number of time steps and the number of life pathways
num_time_steps = 1000
num_pathways = 100

# Create an array to store life trajectories over time
life_trajectories = np.zeros((num_pathways, num_time_steps + 1))

# Perform Monte Carlo simulations to generate life trajectories
for i in range(num_pathways):
    for t in range(1, num_time_steps + 1):
        change = np.random.normal(0, 0.2)  # Random change at each time step
        life_trajectories[i, t] = life_trajectories[i, t - 1] + change

# Plot the different life pathways over time
time = np.arange(num_time_steps + 1)
for i in range(num_pathways):
    plt.plot(time, life_trajectories[i], label=f'Pathway {i+1}')

plt.xlabel('Time')
#plt.ylabel('Life Trajectory')
plt.title('A Standard Monte Carlo Simulation')
#plt.legend()
plt.grid()
plt.show()

Fragility - Your Life is a Lie¶

Being human can at times be a torturous condition - we are inherantly programmed to be competitive organisms battling it out for scarce resources, further amplified by the fact that we now operate in globally integrated framework with over 8bn other agents. How does one navigate such a playing field? In my opinion, we adapt to this at a subconscious level with certain narrative framing which can help mollify certain inconvenient truths.

One such truth is that it is extremely unlikely that we are the the best at what we do, or pride ourselves on doing. In fact, it is unlikely that we even constitute the top 1% of individuals in our particular domain and even if we were, we would still have to measure ourselves against an enormous number of other candidates with odds stacked increasingly against us. We thus become biased estimators of reality and have a vested interest in keeping things that way. In addition to this, we are not very good at making specific evaluations. For example, I might like to make the claim that I am an excellent driver but what does this actually mean? Am I a better driver than 60% of the population? How about 90%? And what metric could I possibly have at my disposal to ascertain such a claim? This might seem like a trivial example but studies have investigated drivers' perceptions of their own abilities with over 80% considering themselves above average (which is obviously impossible). When there is a particular attribute that we see as desirable, it is not hard to focus our attention on the evidence which point in favour of that fact and neglect the datapoints which prove otherwise. This manufactured overconfidence is surely hazardous when untethered from the truth. Nonetheless such narrative building is endemic to humans as we subconsciously choose to live in willful ignorance when presented with a much more mundane alternative.

Another common behaviour is to place deep causal inferences between specific accomplishments and what this must mean in terms of who we are as individuals. This may be a fallacy if we haven't adjusted our outcomes to accommodate certain basic priors such as social advantages or geographical location, notwithstanding the role of haphazard chance. One might argue that if a person has repeatedly accomplished certain outcomes, that this should be taken as evidence of an individual's true talent but once again, this fails to account for the role of path dependecy which invalidates the potential for independent trials. Ideally, we would test such a hypothesis by re-simulating under different starting conditions and observe whether a similar outcome would be achieved under multiple pathways - but unfortunately such a configuration does not exist, or if it did would be a highly impractical to pilot.

There are many potential errors in rationalising a posteriori effects. As we saw in our Monte-Carlo simulations, randomness can compound in an increasingly bizarre way when we allow sufficient independent trials to run for long enough. Consider the following scenario where a million players participate in a game whereby a coin is flipped repeatedly until landing on tails and the number of flips recorded. Although the outcome of such a game would be based purely on luck, at least a couple of individuals are expected to land a highly unlikely individual result - these individuals might be tempted to infer certain facts if not cautioned otherwise.

In [24]:
import random
import matplotlib.pyplot as plt

def simulate_coin_flips():
    results = []
    
    for _ in range(10**6):
        consecutive_heads = 0
        flips = 0

        while True:
            flip = random.randint(0, 1)  # 0 for tails, 1 for heads
            flips += 1

            if flip == 1:
                consecutive_heads += 1
            else:
                break

        results.append(consecutive_heads)

    return results

# Simulate the process for a million participants and collect the results
results = simulate_coin_flips()

# Plot the distribution of consecutive heads
plt.hist(results, bins=20, edgecolor='black')
plt.xlabel("Number of Consecutive Heads")
plt.ylabel("Frequency")
plt.title("Distribution of Consecutive Heads Achieved by 1M Participants")
plt.show()

Fateful Encounters¶

Monte Carlo simulations are once again run but this time on a two-dimensional grid - each trajectory represents a human life within its corresponding geographical coordinates. Some paths will randomly intersect and provide interactions which may result in large, irreversible and unpredictable outcomes - just imagine if you had not met that one special person who you decided to spend the majority of your waking hours with, or that one particular figure that inspired you to pursue a particular line of work. In my case, I can easily admit that these were oftentimes chance encounters and could not have been predicted beforehand - in fact, had I tied my shoelaces a few seconds earlier during certain key moments, I certainly would not be here writing this particular paragraph.

Apart from the more obvious ways, interactions with others may also result in cementing certain aspects of an individual's identity through feedback mechanisms of varying accuracy depending on the individual's compatibility with his/her environment. Success may be highly dependent on being in the right place at the right time, but also around the right people who can activate an individual's potential and self-worth. Once again though, this is highly contingent on favourable random pathways. It behoves us to question the notion of an overarching fixed reality when its very foundation is supported by such fragile limbs.

In [29]:
import numpy as np
import matplotlib.pyplot as plt

# Set the number of steps and the number of simulations
num_steps = 1000
num_simulations = 10

# Create an array to store the x and y coordinates for each step in each simulation
x_coordinates = np.zeros((num_simulations, num_steps + 1))
y_coordinates = np.zeros((num_simulations, num_steps + 1))

# Perform Monte Carlo simulations
for i in range(num_simulations):
    for step in range(1, num_steps + 1):
        angle = 2 * np.pi * np.random.rand()  # Random angle in radians

        # Introduce an interaction effect by adding a random interaction angle
        interaction_angle = 0.2 * np.pi * np.random.randn()  # Adjust the interaction strength as needed
        angle += interaction_angle

        x_coordinates[i, step] = x_coordinates[i, step - 1] + np.cos(angle)
        y_coordinates[i, step] = y_coordinates[i, step - 1] + np.sin(angle)

# Plot the Monte Carlo pathways
for i in range(num_simulations):
    plt.plot(x_coordinates[i], y_coordinates[i], label=f'Simulation {i+1}')

plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Interaction of Monte Carlo Pathways')
plt.grid()
plt.show()

Death and Taxes¶

Non-linear effects are difficult to reconcile, which may explain why we would preferably ascribe some credible story to our journeys rather than acknowledge life's more chaotic features. There seems to be some kind of human comfort in determinism - unsurprisingly, we have an entire industry dedicated to hedging these unwanted risks.

Despite my irreverant tone towards deterministic interpretations of reality, I believe that there is some comfort to be found in all of this - perhaps another certainty in life is that we are all a lot more similar than we think we are once we strip away the chaos and delusions. Perhaps in the face of such knowledge, we should try less to differentiate ourselves from one another and instead find solace in our common human condition. It might be the case that we are not biologically equipped to accept such truths, or that we would like to take ownership for the shape of our lives but in any case, I would like to convey one particular consolatory remark for those trying to rationalise their current paths.

Be kind to yourself - your reality is just one of many.

In [ ]: