Lineaire regressie of T-test. Hoe te kiezen?
\ We raken vaak verstrikt in de hype rondom geavanceerde machine learning-modellen en doorbraken in deep learning, maar laten we de bescheiden lineaire regressie niet over het hoofd zien.
\ ==In een wereld van LLM en geavanceerde architecturen speelt lineaire regressie in stilte een cruciale rol, en het is tijd dat we belichten hoe het zelfs vandaag nog nuttig kan zijn.==
\ Beschouw een scenario waarin een e-commercebedrijf een nieuwe banner introduceert, en we willen de impact ervan op de gemiddelde sessieduur beoordelen. Om dit te bereiken werd een experiment uitgevoerd en werden gegevens verzameld voor analyse. Laten we de resultaten analyseren.
Laten we een vertrouwd hulpmiddel voor deze taak gebruiken: de t-test.
De resultaten zijn behoorlijk veelbelovend:
De stijging in de metriek is simpelweg het verschil tussen de steekproefgemiddelden van de controle- en behandelingsgroepen. In ons geval is de geschatte stijging 0,56 minuten, wat aangeeft dat gebruikers gemiddeld 33 seconden langer ons product gebruiken.
Laten we nu lineaire regressie toepassen met de behandelingsvector (of de nieuwe banner wordt getoond of niet) als onafhankelijke variabele en de gemiddelde sessieduur als uitvoervariabele.
Vervolgens printen we de samenvatting van ons model:
\
\ Opmerkelijk is dat de coëfficiënt voor de behandelingsvariabele overeenkomt met onze eerdere stijgingsschatting van 0,56. Het is vermeldenswaard dat R-kwadraat slechts 0,008 is, en we verklaren niet al te veel van de variantie met dit model.
Is het toeval dat de stijging die we uit de t-test hebben gekregen en de behandelingscoëfficiënt hetzelfde zijn? Laten we de verbinding onderzoeken.
\ Laten we nadenken over wat de behandelingsvariabele weerspiegelt. Wanneer deze gelijk is aan 1, geeft het de gemiddelde sessieduur aan voor gebruikers die de banner hebben gezien; wanneer deze gelijk is aan 0, geeft het de gemiddelde sessieduur aan voor gebruikers die de banner niet hebben gezien. Dit betekent dat de behandelingsvariabele (of helling in lineaire regressietermen) de verandering in het gemiddelde tussen de controle- en behandelingsgroepen aangeeft.
Wat is de nulhypothese voor de behandelingsvariabele in lineaire regressie?
Wat is de nulhypothese wanneer we de T-test voor het experiment toepassen? Het is volledig hetzelfde.
Daarom blijven onze bevindingen consistent en identiek bij het berekenen van de t-statistieken en p-waarde voor identieke hypothesen.
Maar wat is de reden om lineaire regressie te gebruiken? We willen de zaken niet gewoon onnodig ingewikkeld maken.
\ Laten we eerst nadenken over de vraag of alleen de behandeling verantwoordelijk is voor de verandering in onze primaire metriek.
\ In werkelijkheid is dit mogelijk niet volledig nauwkeurig vanwege de aanwezigheid van selectiebias.
\ Selectiebias in A/B-testen is een type fout wanneer er een systematisch verschil bestaat tussen de groepen die worden vergeleken dat niet te wijten is aan toeval, bijvoorbeeld:
\
We zien dat oude gebruikers vaker aan een nieuwe banner worden blootgesteld dan nieuwe klanten.
\
De willekeurige toewijzing die we in AB-tests gebruiken, helpt ons dit te beperken, maar het is moeilijk om volledig te elimineren.
\ Laten we formuleren hoe we het werkelijke effect kunnen schatten.
ATE: gemiddeld behandelingseffect dat we willen schatten.
\ ATT: gemiddeld behandelingseffect van degenen die zijn behandeld. We kunnen dit ook ACE noemen: gemiddeld causaal effect. We kunnen dit daadwerkelijk berekenen. Het is het verschil tussen de steekproefgemiddelden van de controle- en behandelingsgroepen.
\ SB: selectiebias die we willen minimaliseren.
\ Hoe kunnen we deze minimaliseren?
\ Lineaire regressie stelt ons in staat om covariaten/verstorende variabelen toe te voegen. Laten we dit uitproberen en als verstorende variabele de gemiddelde sessieduur voor gebruikers vóór het experiment toevoegen.
En print de samenvatting van het model:
Onze R-kwadraat is de hoogte ingeschoten! Nu verklaren we 86% van de variantie.
\ Ons behandelingseffect is nu 0,47.
Dus, we hebben twee behandelingseffecten: 0,47 en 0,56; welke is correct?
\ In dit geval weten we zeker wat het werkelijke effect is omdat ik gegevens heb gesimuleerd en de echte stijging: 0,5
import numpy as np import pandas as pd from scipy import stats import statsmodels.api as sm np.random.seed(45) n = 500 x = np.random.normal(loc = 10 ,scale = 3, size= 2 * n) y = x + np.random.normal(loc = 2 , scale = 1 ,size = len(x)) # For 50% of users we simulate treatment effect treat = 1 * (np.random.rand(2 * n) <= 0.5) experiment = pd.DataFrame(x, columns=["covariate"]) experiment['metric'] = y experiment['treatment'] = treat experiment['noise'] = np.random.normal(size = len(experiment)) # Add noise and uplift to 'metric' for rows where 'treat' is equal to 1 # The real uplift is 0.5 experiment['metric'] = experiment.apply(lambda row: row['metric'] + 0.5 * row['treatment'] + row['noise'] if row['treatment'] == 1 else row['metric'], axis=1)
Dat betekent dat 0,47 beter is in termen van absoluut verschil en dichter bij het werkelijke effect ligt.
Het gebruik van lineaire regressie heeft de volgende voordelen:
\ Kunnen we lineaire regressie gebruiken voor andere tests, zoals de Welch t-test of de Chi-kwadraat test?
\ Het simpele antwoord is ja. We moeten echter enkele aanpassingen maken die we in de volgende artikelen zullen bespreken!

![[ANALYSE] Een nadere blik op de beursnotering van Lucio Tan's PNB Holdings op de PSE](https://www.rappler.com/tachyon/2026/01/1thnwww4nv8.jpg)
