Skip to content

skateddu/italian-tech-salaries-analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Italian Tech Salaries Analysis

Python 3.10+ License: MIT uv Ruff Dataset: HuggingFace Jupyter Notebook

Analisi statistica dei salari nel settore tech italiano, basata sul dataset datapizza-ai-lab/salaries di HuggingFace.


Panoramica

Il notebook esplora il mercato tech italiano rispondendo a quattro domande concrete, usando test statistici appropriati e verificando le assunzioni alla base di ciascuno:

  1. Quanto conta l'esperienza? - Progressione salariale per seniority e impatto di ogni anno aggiuntivo
  2. Dove conviene lavorare? - Divario Nord-Sud nel tech, stratificato per esperienza
  3. Esistono disuguaglianze strutturali? - Gender pay gap, leaky pipeline e analisi a parita di esperienza
  4. Cosa fa davvero la differenza? - Peso relativo di ogni fattore tramite regressione multipla

L'analisi segue uno schema consolidato per ogni sezione: cosa si analizza, perche, quale test e come funziona, come leggere i risultati, seguito dai dati e dall'interpretazione.

Risultati Principali

  • Esperienza e il fattore dominante: un senior guadagna oltre il 50% in piu di un junior (Cohen's d = 1.01), con un incremento significativo per ogni anno aggiuntivo
  • Divario Nord-Sud confermato: gap di ~7k tra Nord e Sud, che si amplifica con la seniority. Il Centro si posiziona a meta strada
  • Gender pay gap reale e strutturale: persiste a ogni livello di esperienza, anche controllando per regione e dimensione aziendale. A questo si aggiunge il fenomeno del leaky pipeline (quota femminile in calo ai livelli senior)
  • Gerarchia dei fattori (regressione multipla): esperienza > regione > gender > dimensione azienda > work mode. Dimensione aziendale e work mode, spesso sopravvalutati, hanno un impatto modesto

Metodi Statistici Utilizzati

Test Scopo
ANOVA / Kruskal-Wallis Confronto tra 3+ gruppi (parametrico / non parametrico)
t-test Confronto tra 2 gruppi
Tukey HSD Post-hoc per identificare quali coppie differiscono
Cohen's d Dimensione dell'effetto (rilevanza pratica)
Chi Quadro Indipendenza tra variabili categoriche
Regressione OLS Effetto netto di ciascun fattore, controllando per gli altri
Shapiro-Wilk / Levene Verifica assunzioni ANOVA (normalita, omoschedasticita)

Struttura del Progetto

italian-tech-salaries-analysis/
├── data_analysis.ipynb          # Notebook principale dell'analisi
├── src/
│   ├── config.mplstyle          # Stile Matplotlib personalizzato
│   ├── data/
│   │   ├── dataset.py           # Caricamento dataset da HuggingFace
│   │   ├── descriptive.py       # Statistiche descrittive (describe + skew/kurtosis)
│   │   ├── features.py          # Feature engineering
│   │   └── geo_mapper.py        # Mappatura province -> regioni -> macro-regioni
│   ├── statistics/
│   │   ├── effect_size.py       # Cohen's d
│   │   ├── results.py           # Dataclass per risultati (ANOVA, Chi2, TTest, AssumptionResult)
│   │   └── tests.py             # t-test, ANOVA, Kruskal-Wallis, Chi2, verifica assunzioni
│   └── visualization/
│       └── plots.py             # Barplot, boxplot, heatmap
├── tests/
│   ├── conftest.py              # Fixture condivise (DataFrame, gruppi numerici)
│   ├── test_descriptive.py      # Test statistiche descrittive
│   ├── test_effect_size.py      # Test Cohen's d
│   ├── test_features.py         # Test feature engineering
│   ├── test_geo_mapper.py       # Test mappatura geografica
│   ├── test_results.py          # Test dataclass risultati
│   └── test_tests.py            # Test wrapper test statistici
├── pyproject.toml
├── uv.lock
└── LICENSE

Dipendenze

Package Descrizione Link
pandas Manipolazione e analisi dati tabulari Docs
NumPy Array numerici e operazioni matematiche Docs
SciPy Test statistici (t-test, ANOVA, Kruskal-Wallis, Chi Quadro) Docs
statsmodels Regressione OLS e ANOVA fattoriale Docs
Matplotlib Grafici e visualizzazione dati Docs
seaborn Visualizzazione statistica (boxplot, heatmap, histplot) Docs
datasets Caricamento dataset da HuggingFace Hub Docs

Quick Start

Requisiti: Python >= 3.10, uv

Installazione

git clone https://github.com/skateddu/italian-tech-salaries-analysis.git
cd italian-tech-salaries-analysis
uv sync

Utilizzo

Aprire data_analysis.ipynb in Jupyter o VS Code. Il dataset viene scaricato automaticamente da HuggingFace al primo avvio.

Test

uv run pytest tests/ -v

About

Analisi statistica dei salari nel settore tech italiano: esperienza, regione, gender pay gap e regressione multipla su dati HuggingFace.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors