Ilona Pawełoszek

Blog i laboratorium cyfrowych technologii w zarządzaniu

Jak działa regresja hierarchiczna? Analiza szczęścia narodów krok po kroku

✏️Słowo wstępu

Regresja hierarchiczna to prosta, ale niezwykle użyteczna metoda, która pozwala zrozumieć, jak kolejne grupy czynników wpływają na badane zjawisko.
Zamiast wrzucać wszystkie zmienne naraz, budujemy model krok po kroku — i sprawdzamy, czy nowe zmienne naprawdę poprawiają dopasowanie modelu.

W tym wpisie pokażę, jak można zastosować tę metodę na rzeczywistych danych z raportu World Happiness Report 2015, aby odpowiedzieć na pozornie banalne pytanie:
czy szczęście narodów zależy tylko od pieniędzy, czy również od relacji, zdrowia i wolności?

👉 Jeśli nie czytałaś/eś mojego wcześniejszego wpisu Jak dobrać odpowiedni rodzaj regresji? Praktyczny przewodnik, warto tam zajrzeć – znajdziesz w nim krótkie przypomnienie podstawowych typów regresji i wskazówki, kiedy który model warto zastosować.

📘 Wprowadzenie do zbioru danych

Zbiór pochodzi z raportu World Happiness Report 2015, który klasyfikuje kraje świata według poziomu odczuwanego szczęścia.

Plik do analiz pobrałam z: https://www.kaggle.com/datasets/unsdsn/world-happiness https://www.kaggle.com/datasets/unsdsn/world-happiness
Każdy wiersz reprezentuje jeden kraj, a kolumny opisują różne czynniki, które mogą wpływać na jego wynik w rankingu szczęścia.

🧩 Struktura danych

Nazwa kolumnyOpisTyp danychPrzykład
CountryNazwa krajutekstSwitzerland
RegionRegion geograficznytekstWestern Europe
Happiness RankPozycja kraju w rankingu (1 = najwyższe szczęście)liczba całkowita1
Happiness ScoreŚredni poziom szczęścia w skali 0–10liczba zmiennoprzecinkowa7.587
Standard ErrorBłąd standardowy pomiaru szczęścialiczba zmiennoprzecinkowa0.03411
Economy (GDP per Capita)Wskaźnik dobrobytu ekonomicznego (PKB per capita)liczba zmiennoprzecinkowa1.39651
FamilyWskaźnik wsparcia społecznego (poczucie, że można liczyć na innych)liczba zmiennoprzecinkowa1.34951
Health (Life Expectancy)Oczekiwana długość życia w zdrowiuliczba zmiennoprzecinkowa0.94143
FreedomWskaźnik wolności podejmowania decyzji życiowychliczba zmiennoprzecinkowa0.66557
Trust (Government Corruption)Poziom zaufania do instytucji publicznych (odwrotność korupcji)liczba zmiennoprzecinkowa0.41978
GenerosityWskaźnik hojności obywateliliczba zmiennoprzecinkowa0.29678
Dystopia ResidualCzęść wyniku szczęścia, której nie wyjaśniają powyższe zmienne (rezerwa dla porównań)liczba zmiennoprzecinkowa2.51738

🎯 Cel analizy

W regresji hierarchicznej będziemy badać, które grupy czynników w największym stopniu wyjaśniają poziom szczęścia (Happiness Score).

Proponowany układ:

  • Model 1: czynniki ekonomiczne → Economy (GDP per Capita)
  • Model 2: + czynniki społeczne → Family, Health (Life Expectancy)
  • Model 3: + czynniki psychologiczne i kulturowe → Freedom, Trust, Generosity

💰Model 1 – czynniki ekonomiczne

Poniżej kod w Pythonie, który wczytuje dane z pliku 2015.csv, oblicza Model 1 i wyświetla wyniki.

mport statsmodels.api as sm
import pandas as pd

# Wczytanie przesłanego pliku
file_path = "2015.csv"
df = pd.read_csv(file_path)
# Model 1: tylko czynnik ekonomiczny (PKB per capita)
X1 = sm.add_constant(df["Economy (GDP per Capita)"])
y = df["Happiness Score"]

model1 = sm.OLS(y, X1).fit()
summary1 = model1.summary()

summary1

🧮 Wyniki modelu

WskaźnikWartość
0.610
Skorygowany R²0.607
F-statystyka243.9 (p < 0.001)
Liczba obserwacji158
Współczynnik dla PKB per capita2.218 (p < 0.001)
Wyraz wolny (const)3.499

📊 Interpretacja

  • Model wyjaśnia około 61% zróżnicowania poziomu szczęścia między krajami.
  • Zmienna Economy (GDP per Capita) ma bardzo silny i dodatni wpływ – im wyższy PKB na mieszkańca, tym wyższy wynik szczęścia.
  • Współczynnik 2.22 oznacza, że wzrost o 1 jednostkę wskaźnika ekonomicznego przekłada się średnio na wzrost wyniku szczęścia o 2.218 punktu (w skali 0–10).
  • Wartość p < 0.001 wskazuje, że zależność jest statystycznie istotna.

💬 Krótkie podsumowanie

W 2015 roku różnice w zamożności krajów tłumaczą ponad połowę różnic w deklarowanym poziomie szczęścia.
Sam czynnik ekonomiczny okazuje się więc bardzo silnym predyktorem, ale z pewnością nie jedynym. Dlatego w kolejnym kroku sprawdzimy, czy dodanie czynników społecznych (rodzina, zdrowie) poprawi dopasowanie modelu.

Model 2 – czynniki społeczne

Poniższy kod oblicza wyniki modelu regresji po dodaniu czynników społecznych

# Model 2: PKB + czynniki społeczne (Family, Health)
X2 = df[["Economy (GDP per Capita)", "Family", "Health (Life Expectancy)"]]
X2 = sm.add_constant(X2)

model2 = sm.OLS(y, X2).fit()
summary2 = model2.summary()

# Porównanie R² między modelem 1 i 2
r2_comparison = {
    "Model 1 R²": model1.rsquared,
    "Model 2 R²": model2.rsquared,
    "ΔR²": model2.rsquared - model1.rsquared
}

summary2, r2_comparison

🧮 Wyniki modelu 2

WskaźnikWartość
0.727
Skorygowany R²0.722
ΔR² (wzrost względem Modelu 1)+0.118
F-statystyka137.0 (p < 0.001)
Liczba obserwacji158

📊Interpretacja modelu 2

ZmiennaWspółczynnik βp-wartośćInterpretacja
Economy (GDP per Capita)0.888< 0.001wpływ ekonomiczny nadal istotny, lecz mniejszy po dodaniu czynników społecznych
Family1.697< 0.001silny dodatni wpływ – kraje z większym wsparciem społecznym są znacznie szczęśliwsze
Health (Life Expectancy)1.1800.001dłuższe i zdrowsze życie sprzyja wyższemu poziomowi szczęścia

PKB per capita: pozostaje istotnym predyktorem szczęścia (β = 0.888, p < 0.001), choć jego wpływ spadł w porównaniu z modelem 1 (β = 2.218).

Family: najsilniejszy czynnik w modelu 2 (β = 1.697, p < 0.001).

Health: również istotny (β = 1.180, p = 0.001).

Wzrost R² o 0.118 oznacza, że dodanie zmiennych społecznych znacząco poprawia dopasowanie modelu.

📘 Model 3 – pełny model szczęścia

# Model 3: ekonomiczne + społeczne + psychologiczne/kulturowe
X3 = df[[
    "Economy (GDP per Capita)", "Family", "Health (Life Expectancy)",
    "Freedom", "Trust (Government Corruption)", "Generosity"
]]
X3 = sm.add_constant(X3)

model3 = sm.OLS(y, X3).fit()

# Porównanie R² między modelami 1, 2, 3
r2_comparison_all = {
    "Model 1 R²": round(model1.rsquared, 3),
    "Model 2 R²": round(model2.rsquared, 3),
    "Model 3 R²": round(model3.rsquared, 3),
    "ΔR² (2→3)": round(model3.rsquared - model2.rsquared, 3)
}

summary3 = model3.summary()
summary3, r2_comparison_all
WskaźnikWartość
0.777
Skorygowany R²0.768
ΔR² (vs. Model 2)+0.050
F-statystyka87.810 (p < 0.001)
N = 158

📊Interpretacja modelu 3

Poniższa tabela przedstawia wyniki pełnego modelu regresji hierarchicznej (Model 3), w którym uwzględniono czynniki ekonomiczne, społeczne oraz psychologiczno-kulturowe. Współczynniki β pokazują kierunek i siłę wpływu poszczególnych predyktorów na poziom szczęścia (Happiness Score), przy kontrolowaniu pozostałych zmiennych.
Kolumny zawierają wartości współczynników nieznormalizowanych (β), błędy standardowe (SE), statystyki t oraz odpowiadające im poziomy istotności (p).
Wartości p < 0.05 wskazują na statystycznie istotny wpływ danego czynnika.

ZmiennaβSEtp
Stała (const)1.8600.1909.766< 0.001
Economy (GDP per Capita)0.8610.2203.907< 0.001
Family1.4090.2236.327< 0.001
Health (Life Expectancy)0.9750.3163.0840.002
Freedom1.3330.3853.4630.001
Trust (Government Corruption)0.7850.4371.7970.074
Generosity0.3890.3910.9950.321

📊 Porównanie modeli

ModelZmienne w modeluΔR²
1Economy (GDP)0.610
2+ Family, Health0.727+0.118
3+ Freedom, Trust, Generosity0.777+0.050

🧩 Interpretacja

  • Po dodaniu czynników psychologicznych i kulturowych dopasowanie modelu wzrosło o kolejne 0.050 punktu R².
  • Freedom (β = 1.333, p = 0.001) okazała się bardzo silnym predyktorem — swoboda wyborów życiowych znacząco zwiększa poziom szczęścia.
  • Trust (β = 0.785, p = 0.074) jest na granicy istotności — zaufanie do instytucji może mieć wpływ, ale niepewny statystycznie.
  • Generosity (β = 0.389, p = 0.321) nie osiągnęła istotności – hojność sama w sobie nie tłumaczy różnic między krajami.
  • PKB, zdrowie i relacje społeczne pozostają istotne nawet po uwzględnieniu czynników psychologicznych.

💬 Podsumowanie

Wskaźniki ekonomiczne stanowią silną bazę wyjaśniania różnic w poziomie szczęścia,
jednak czynniki społeczne i psychologiczne wnoszą istotną wartość dodaną.
Łącznie model 3 wyjaśnia ponad 77% zróżnicowania w poziomie szczęścia między krajami świata w 2015 roku.

Wnioski końcowe

Regresja hierarchiczna polega na stopniowym dodawaniu grup zmiennych objaśniających i obserwowaniu, czy dopasowanie modelu (R²) poprawia się po każdym kroku.

  • Wartość mówi, jak dobrze zmienne niezależne „tłumaczą” zmienność zmiennej zależnej.
    Im bliższe 1, tym lepiej model dopasowuje się do danych.
  • W naszym przykładzie model 1 (tylko ekonomiczny) wyjaśniał 61% zróżnicowania poziomu szczęścia.
    Po dodaniu czynników społecznych dopasowanie wzrosło do 73%,
    a po dodaniu psychologicznych – do 78%.
  • Oznacza to, że każdy kolejny zestaw czynników wnosi dodatkowe informacje, które pomagają lepiej zrozumieć, od czego naprawdę zależy szczęście społeczeństw.

Innymi słowy:

Model 3 ma najwyższe R², więc jest najlepiej dopasowany,
ale dopiero porównanie wszystkich modeli – ΔR² (czytane: „delta R kwadrat”) – pokazuje, które czynniki najbardziej poprawiają trafność wyjaśniania.


💬 Uwagi terminologiczne

W literaturze można spotkać dwa różne znaczenia pojęcia regresja hierarchiczna.
W niniejszym wpisie używam go w sensie „hierarchicznego wprowadzania zmiennych do modelu” (ang. hierarchical entry regression),
czyli metody pozwalającej ocenić, czy dodanie kolejnych grup czynników poprawia dopasowanie modelu.

Nie należy tego mylić z modelami wielopoziomowymi (multilevel models),
które również bywają określane jako hierarchical, lecz dotyczą danych zagnieżdżonych (np. uczniów w szkołach, pracowników w firmach).

📘 Hierarchical vs. Stepwise Regression — na czym polega różnica?

Regresja hierarchiczna (hierarchical regression) polega na świadomym, teoretycznie uzasadnionym dodawaniu grup zmiennych w kolejnych krokach modelu.
Badacz sam decyduje, które czynniki wprowadzić najpierw (np. ekonomiczne), a które później (np. społeczne, psychologiczne), aby sprawdzić, jak zmienia się dopasowanie modelu (ΔR²).
To podejście służy testowaniu hipotez i pokazuje wartość dodaną kolejnych grup predyktorów.

Regresja krokowa (stepwise regression) natomiast jest metodą automatycznej selekcji zmiennych — program dodaje lub usuwa predyktory według kryteriów statystycznych (np. wartości p, AIC, BIC).
Celem jest znalezienie najbardziej „ekonomicznego” modelu, ale bez koniecznego oparcia w teorii.

CechaRegresja hierarchicznaRegresja krokowa
Kolejność zmiennychUstalana przez badaczaWyznaczana automatycznie
Kryterium wyboruZałożenia teoretyczneStatystyki (p-value, AIC/BIC)
CelOcena przyrostu R² po dodaniu grup zmiennychWybór najlepszego zestawu predyktorów
Typ kontroliPełna kontrola badaczaAlgorytmiczna selekcja

📚 Przydatne źródła:

  • Field, A. (2018). Discovering Statistics Using IBM SPSS Statistics (5th ed.). Sage.
    → Rozdział 8: „Hierarchical and Stepwise Multiple Regression”
  • Tabachnick, B. G., & Fidell, L. S. (2019). Using Multivariate Statistics (7th ed.). Pearson.
    → Sekcja 5.4: „Hierarchical versus Stepwise Approaches”
  • Pallant, J. (2020). SPSS Survival Manual (7th ed.). Open University Press.
    → Rozdział: „Multiple Regression”

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *