# 🧮 Big Five Life Outcomes Calculator Enter a personality profile, background and lifestyle, and three machine learning models estimate **income**, **job performance** and **life satisfaction** together. > [!tip] How to use it > 1. Set **sex and age**, then move the **Big Five** sliders (0–100). > 2. Add **ability, education, family background and lifestyle**. > 3. The three tiles update live. Each shows the prediction, its typical error, and where it falls among 50,000 people. > 4. Under **What's moving your prediction**, see which inputs push each outcome up or down compared with a typical person. > 5. Already know your income, for example? Open **Already know one of the outcomes?** and enter it. The other two outcomes are then predicted around your real value. <div class="bigfive-calculator-embed"><p><em>The interactive calculator loads on the published site.</em></p></div> --- ## How it works The calculator runs the three models from [[Big Five Personality & Life Outcomes|my ML project]] directly in your browser. Nothing is sent to a server. | Outcome | Model | Inputs | |---|---|---| | 💰 Income | Ridge regression (α = 100) | 14 profile inputs + job performance + life satisfaction | | 📈 Job performance | Gradient boosting (200 trees, depth 2) | 14 profile inputs + income + life satisfaction | | 😊 Life satisfaction | Ridge regression (α = 100) | 14 profile inputs + income + job performance | > [!question]- Why solve the three models together? > Each model was trained with the **other two outcomes as inputs**. For example, income depends partly on job performance, and job performance depends partly on income. So one outcome can't be computed without the others. > > The calculator starts every outcome at the population median, then updates them in turn until they stop changing (a *damped fixed-point iteration*): > $ > y^{(t+1)}_k = y^{(t)}_k + \lambda\Big(f_k\big(x,\ y^{(t)}_{-k}\big) - y^{(t)}_k\Big),\qquad \lambda = 0.5 > $ > where $f_k$ is the model for outcome $k$, $x$ is your inputs and $y_{-k}$ is the other two outcomes. It converges in under a millisecond. On the test set, every one of the 7,500 people reached a stable answer. > [!info]- What "what's moving your prediction" means > For each input, the calculator resets **just that input** to its typical (median) value, re-solves all three models, and shows how much the prediction changes. > > These effects include **knock-on effects through the other outcomes**. For example, high neuroticism lowers predicted life satisfaction, and because the income model uses life satisfaction as an input, predicted income drops a little too. That's why an input can move an outcome more here than its coefficient alone would suggest. ## How accurate is it? Tested on **7,500 people** the models never saw: | Outcome | Typical error (RMSE) | R², predicted jointly (calculator) | R², if the other two outcomes are known | |---|---:|---:|---:| | Income | ± $17,967 | 0.37 | 0.40 | | Job performance | ± 0.72 (1–5 scale) | 0.19 | 0.22 | | Life satisfaction | ± 1.39 (1–10 scale) | 0.24 | 0.25 | Predicting all three together costs very little accuracy compared with feeding in the real values. The JavaScript version matches the original scikit-learn models to within **0.0000001** on 2,000 test people. > [!warning] Read the results as tendencies, not destiny > - The models explain **19–37%** of the variation in each outcome. Most of what makes two similar people different isn't in the data. > - Predictions **shrink toward the average**. Very high or very low values are underestimated. > - The data are observational, so these are **associations, not causes**. Raising your extraversion slider won't raise your life satisfaction. > - The tool is for exploring what the models learned, not for judging real people. ## What the models learned ![[bigfive-shap-share-heatmap.png|600]] - **Income** depends mostly on education, age, parental SES and cognitive ability. Personality accounts for less than a fifth of what the model uses. - **Job performance** is split roughly half and half between ability and income on one side and personality (led by conscientiousness) on the other. - **Life satisfaction** is almost all personality. **Neuroticism** alone accounts for about a third. Full analysis: [[Big Five Personality & Life Outcomes]] > [!note]- Technical notes > - **Data:** Big Five Personality & Life Outcomes, 50,000 people. Train 42,500 / test 7,500. > - **Preprocessing (same as training):** median imputation and standard scaling for numeric inputs; one-hot encoding for sex. > - **Export:** Ridge coefficients and the 200 gradient boosting trees were exported from scikit-learn 1.9.1 into a single self-contained web page (about 57 KB). Tree splits use float32 comparisons, like scikit-learn. > - **Hosting:** the calculator is its own site on Cloudflare Pages ([bigfive-calculator.mrcsstatstory.com](https://bigfive-calculator.mrcsstatstory.com/)). `publish.js` embeds it here as an iframe that resizes itself and follows the site's light/dark theme, the same way the [[Wealth Calculator]] embed works.