Nyheter, Prylar, Android, Mobiler, Appnedladdningar, Android

Heteroskedasticitet och homoskedasticitet i regressionslärande – mot AI

Följande artikel hjälper dig: Heteroskedasticitet och homoskedasticitet i regressionslärande – mot AI

Ursprungligen publicerad på Mot AI.

Variabilitet av residuet i regressionsanalys

1. Introduktion

Inom datavetenskap och statistisk analys kan flera utmaningar dyka upp under modelleringsprocessen, vilket gör det svårt att få fram högpresterande modeller. En av dessa utmaningar är instabiliteten eller den höga variabiliteten hos residualer eller fel, vilket är känt som heteroskedasticitet. I den här artikeln kommer vi att utforska exakt vad heteroskedasticitet är och hur det kan påverka prestandan hos datadrivna modeller negativt. Dessutom kommer vi att introducera tekniker som vanligtvis används för att identifiera heteroskedasticitet och strategier som är en del av den arsenal som statistiker och datavetare har för att ta itu med detta problem. Följ med mig genom den här artikeln om heteroskedasticitet så att du kan inkludera den i dina datavetenskapliga och statistiska termer och få insikter för framtida projekt.

2. Vad är heteroskedasticitet och homoskedasticitet?

En utövare av datavetenskap eller statistiker använder termen heteroskedasticitet för att hänvisa till situationer under modellering eller statistisk analys där variabiliteten eller spridningen av felet eller resterna i en datadriven modell inte är konstant över hela intervallet av prediktorvariabler. Däremot innebär homoskedasticitet, eller konstant varians, att variabiliteten av felen förblir konsekvent över prediktordomänen.

Heteroskedasticitet bryter mot ett av nyckelantagandena för regressionsanalys, som antar homoscedasticitet. Således, om heteroskedasticitet inträffar, kan de vanliga minsta kvadraternas uppskattningar vara partiska, ineffektiva och opålitliga.

Förekomsten av heteroskedasticitet kan leda till partiska parameteruppskattningar, antingen uppblåsta eller deflaterade standardfel, och felaktiga hypotestestresultat. Det kan leda till felaktiga slutsatser och påverka modellens övergripande giltighet och tolkningsbarhet.

3. Hur upptäcker man heteroskedasticitet?

Nu, i det här avsnittet, låt oss använda Python för att utforska två tekniker som ofta används för att upptäcka heteroskedasticitet. Ett enkelt alternativ är grafiskt, medan det andra är baserat på slutsatsstatistik:

  • Grafisk teknik: Det grafiska verktyget som används för att upptäcka heteroskedasticitet är restdiagrammet. Plottets x-axel representerar de förutsagda värdena eller oberoende variabler, medan y-axeln representerar residualerna eller felen. En väluppfostrad restplot för homoskedasticitet uppvisar vanligtvis inga extremvärdena noll medelvärde (dvs ett kluster runt noll), inget tydligt mönster eller trend (dvs slumpmässigt mönster), och är relativt konsekvent över hela intervallet av förutsagda värden (dvs konstant spridning).
  • Inferentiell teknik: Statistiker har utvecklat olika inferentiella tekniker för att dra slutsatser om heteroskedasticitet. I den här artikeln kommer vi att använda Breusch-Pagan-testet för att avgöra om variansen för residualerna beror på prediktorvariabeln. I detta test är nollhypotesen homoskedasticitet, medan alternativhypotesen (eller forskningshypotesen) anger heteroskedasticitet (dvs. variansen av residualer är beroende av prediktorvariablerna).

Ett enkelt test för heteroskedasticitet och slumpmässig koefficientvariation på JSTOR

TS Breusch, AR Pagan, ett enkelt test för heteroskedasticitet och slumpmässig koefficientvariation, Econometrica, vol…

www.jstor.org

3.1. Datagenerering

Nu, för att börja med exemplet i Python, låt oss importera de bibliotek som krävs numpy, matplotlib, statsmodels och scipy (för senare). Låt oss skapa två datauppsättningar, var och en med 100 exempel. En av datamängderna kommer att lida av heteroskedasticitet, medan den andra uppfyller homoskedasticitetsantagandet.

# Importera bibliotekimportera numpy som npimportera matplotlib.pyplot som pltimportera statsmodels.api som smfrån statsmodels.stats.diagnostic import het_breuschpagan

# Ställ in slumpmässigt frö för reproducerbarhetnp.random.seed(0)

# Antal datapunktern = 100

# Definiera prediktorvariabel (heteroscedasticitet)X_het = np.linspace(1, 11, n)

# Definiera utfallsvariabel relation (heteroscedasticitet)epsilon = np.random.normal(0, 1, storlek=100)y_het = X_het + epsilon * (1 + X_het/5)

# Definiera prediktorvariabel (homoskedasticitet)X_hom = np.linspace(-5, 5, n)

# Definiera resultatvariabelrelation (homoskedasticitet)y_hom = np.random.normal(loc=0, scale=np.ones_like(X_hom) * 2, size=n)

3.2. Basmodellbeslag

Kodavsnittet som presenteras nedan är en funktion som tränar en vanlig minsta kvadraters (OLS) regression baserat på en datauppsättning och returnerar den anpassade modellen.

def fit_model(X, y):“””Anpassa din regressionsmodell och få residualer

Argument:– X: oberoende variabel– y: beroende variabel

Produktion:– modell: utbildad modell“””

modell = sm.OLS(y, sm.add_constant(X)).fit()

returmodell

Låt oss alltså, med ovanstående funktion, träna olika modeller med OLS-algoritmen. Den första modellen tränas på datasetet med heteroskedasticitet (model_het), medan den andra tränas på datasetet med homoskedasticitet (model_hom).

# Passa modellen (heteroskedasticitet)model_het = fit_model(X_het, y_het)

# Passa modellen (homoskedasticitet)model_hom = fit_model(X_hom, y_hom)

3.2. Återstående tomt

Nu kan vi skapa en funktion som tar emot den tränade modellen som indata så att den kan plotta resterna eller felen (y-axeln) mot de anpassade eller förutsagda värdena (x-axeln). Kodavsnittet nedan presenterar den resulterande Python-funktionen för att generera restdiagrammet.

def plot_residual(modell):“””Rita rester mot förutsagda värden

Argument:– modell: utbildad modell

Produktion:Ingen“””

residualer = modell.resid

fig, ax = plt.subplots()ax.scatter(model.fittedvalues, residuals, alfa=0,8)ax.axhline(y=0, color=’red’, linestyle=’–‘, label=’Horizontal Line’)ax.set_xlabel(“Förutspådda värden”, fontweight=’bold’)ax.set_ylabel(“Rester”, fontweight=’bold’)ax.set_title(“Resterande plot för heteroskedasticitet”, fontweight=’bold’)ax.grid(color=’lightgray’, linestyle=’–‘)plt.show()

Med hjälp av funktionen för generering av restdiagram och kör följande kodrad, låt oss generera restdiagrammet för datamängden med heteroskedasticitet:

# Kontrollera kvarvarande plot (heteroscedasticitet)plot_residual(model_het)

Figur 1. Restplot för datasetet med heteroskedasticitet (Bild av författare).

På samma sätt, låt oss göra samma sak för datamängden med homoskedasticitet genom att köra nedanstående kodavsnitt:

# Kontrollera kvarvarande plot (homoskedasticitet)plot_residual(modell_hom)

Figur 2. Restplot för datasetet med homoskedasticitet (Bild av författare).

Som kan ses i figur 2 är residualerna för datamängden med förutspådd homoskedasticitet normalt fördelade runt nolllinjen. Konsistensen av felet över intervallet av projicerade värden kan också fastställas. Under antagandet om homoskedasticitet kännetecknas det ideala beteendet för den kvarvarande plotten av en slumpmässig fördelning utan extremvärden, en konstant spridning och ingen uppenbar trend. Figur 1 visar dock att felet väsentligen är olikt noll för predikterade värden under 3. Detsamma gäller för siffror över 10. Detta visar heteroskedasticitet (vilket är att förvänta med tanke på vårt fall), som ses ovan.

3.3. Breusch-hednisk test

Restdiagrammet är en användbar metod, men den kräver ett manuellt tillvägagångssätt där utövaren noggrant måste undersöka mönstren som visas på tomten. Av denna anledning är det bra att ha en metod som, när den ingår i ett automatiserat experiment, tillåter ett Python-program att automatiskt härleda resultat baserat på testregler. Som tidigare nämnts kommer Breusch-Pagan-testet att syfta till statistisk inferensbaserad analys. Bilden nedan visar Python-implementeringen för hypotestestet. alfa är signifikansnivån, som som standard är 0,05.

def breusch_pagan_test(modell, X, alfa=0,05):“””Utför Breusch-Pagan test

Argument:– X: oberoende variabel– modell: utbildad modell

Produktion:Ingen“””

residualer = modell.residp_value = het_breuschpagan(rester, sm.add_constant(X))[1]

print(“Breusch-hednisk test p-värde: “, p_värde)print(“Något bevis på heteroskedasticitet?: “, p_värde

Låt oss tillämpa ovannämnda funktion på den heteroskedastiska datamängden. För att se resultaten av testerna på din skärm, kör följande rad:

# Kontrollera Breusch-Pagan-testet (heteroscedasticitet)breusch_pagan_test(model_het, X_het)

Breusch-Pagan test p-värde: 0,007785481845777098

Några bevis på heteroskedasticitet?: Sann

På liknande sätt, låt oss köra den här koden för att få resultaten för den homoscedastiska datamängden:

# Kontrollera Breusch-hednisk test (homoskedasticitet)breusch_pagan_test(modell_hom, X_hom)

Breusch-Pagan test p-värde: 0,8104035079011154

Några bevis på heteroskedasticitet?: Falsk

P-värdet för datasetet är, som förväntat, lägre än signifikansnivån och är mindre än 0,05 för den heteroskedastiska datamängden. Det vill säga, det finns statistiska bevis för att denna datauppsättning är föremål för heteroskedasticitet. Däremot förkastas den alternativa hypotesen för den homoskedastiska datamängden eftersom det inte finns några statistiska bevis som stödjer tanken att data är heteroskedastiska snarare än homoskedastiska.

4. Hur man hanterar Heteroscedasticitet?

De tidigare nämnda metoderna och rönen är både teoretiskt och praktiskt spännande. Även om du har etablerat heteroskedasticitet genom att använda någon av ovanstående metoder eller andra, kanske du fortfarande undrar vad du ska göra härnäst. Tja, beroende på särdragen i ditt fall och din analys, kan en mängd olika metoder vara användbara tillägg till din verktygslåda. Följande är några vanliga metoder för att hantera heteroskedasticitet vid regression, samt några resurser värda att konsultera för ytterligare information:

  • Viktad minsta kvadraters (WLS) regression:

När och hur man använder Weighted Least Squares (WLS) modeller

WLS, OLS försummade kusin

mot datascience.com

Förbi

Jonathan Balaban

University of Virginia Library Research Data Services + Sciences

Samlingar, tjänster, filialer och kontaktinformation.

data.library.virginia.edu

  • Generaliserad minsta kvadraters (GLS) regression:

Generaliserade minsta kvadrater (GLS): Matematiska härledningar och intuition

Introduktion till GLS med relationer till OLS & WLS

mot datascience.com

Förbi

Andrew Rothman

När viktiga variabler för att beskriva problemet saknas eller är felspecificerade, kan bra variabelurval och datainsamling bidra till att minska heteroskedasticitet utöver de tidigare nämnda strategierna.

4.1. Yeo-Johnson förvandling

Att använda transformationer som den logaritmiska hjälper till att normalisera skeva data i ML genom att minimera effekten av extrema resultat. För att generera ett mer linjärt samband mellan variabler används ibland transformationer. För böjda eller olinjära relationer kan transformation hjälpa till med visualisering och tolkning. Utöver de ovan nämnda fördelarna, används ofta transformationer för att hantera heteroskedasticitet genom att minska variansen för den beroende variabeln. Därför kommer Yeo-Johnson-transformationen, en alternativ metod för att minska heteroskedasticitet, att implementeras i denna artikel. Denna transformation möjliggör bearbetning av data med en mängd olika distributioner, transformation av både positiva och negativa värden och mildring av effekten av extremvärden (se länk nedan för mer info👇).

Box-Cox- och Yeo-Johnson-transformationerna för kontinuerliga variabler

Box-Cox- och Yeo-Johnson-transformationerna är två olika sätt att transformera en kontinuerlig (numerisk) variabel så att…

statisticaloddsandends.wordpress.com

Låt oss omsätta den här lösningen i Python och utvärdera de transformerade resultaten. Yeo-Johnson-transformation ingår i scipy-paketet, och efter applicering kan OLS monteras:

# Importera bibliotekimportera scipy.stats som statistik

# Tillämpa Yeo-Johnson-transformationen på den beroende variabelny_het_yeojohnson, lambda_ = stats.yeojohnson(y_het)

# Passa in modellen (efter transformation)model_het_yeojohnson = fit_model(X_het, y_het_yeojohnson)

Låt oss nu kontrollera resultaten, med tanke på de grafiska och statistiska testerna som introducerades tidigare:

# Kontrollera restdiagram (efter transformation)plot_residual(model_het_yeojohnson)

# Kontrollera Breusch-Pagan test (efter transformation)breusch_pagan_test(model_het_yeojohnson, X_het)

Efter att ha tillämpat transformationen på den heteroskedastiska datamängden är felvärdena mycket närmare noll, som illustreras i figur 3. Den skenbara förskjutningen av felfördelningen till en noll- eller x-axel-normalfördelning. Men den grafiska representationen är inte helt självklar. p-värdet för Breusch-Pagan-testet är större än 0,05; därför förkastas inte nollhypotesen. Således, efter Yeo-Johnson-transformationen, har heteroskedasticitet reducerats.

Figur 3. Restplot för datasetet med heteroskedasticitet efter transformation (Bild av författare).

Breusch-Pagan test p-värde: 0,5518034761699758

Några bevis på heteroskedasticitet?: Falsk

Slutsats

Vi använder idén om heteroskedasticitet och dess konsekvenser, särskilt i homoskedasticitetsantagande modeller, till vår fördel i detta arbete. Vi använder ett grafiskt verktyg som kallas en residualplot för att undersöka heteroskedasticitet, och vi introducerar ett statistiskt inferensverktyg som kallas ett Breusch-Pagan-test, som båda hjälper oss att bedöma om det finns tillräckligt med bevis för att dra slutsatsen att heteroskedasticitet faktiskt förekommer. . Dessutom presenterar vi metoder för att hantera heteroskedasticitet, och i synnerhet använde vi Yeo-Johnson-transformationen, som är anpassningsbar till ett brett utbud av datadistributioner och värden. Breusch-Pagan testresultat visade att heteroskedasticitet kunde reduceras genom att använda transformationsmetoden.

Trots dess popularitet i diskussioner om linjär regression, kan heteroskedasticitet också ses i residualer eller prediktionsfel från andra maskininlärningstekniker. Sådana metoder inkluderar regression baserad på Gauss-processen, tidsserieanalys, artificiella neurala nätverk, stödvektormaskiner och trädbaserade algoritmer.

Om du gillar mina inlägg, följ mig vidare Medium För att hålla dig uppdaterad efter mer tankeväckande innehåll, klappa den här publikationen 👏och dela detta material med dina kollegor 🚀

Få ett e-postmeddelande när Jose D. Hernandez-Betancur publicerar.

Få ett e-postmeddelande när Jose D. Hernandez-Betancur publicerar. Ta kontakt med Jose om du gillar innehållet han skapar! 🚀…

medium.com

Föreslaget material

  • W. Rutha och T. Loughin, The Effect of Heteroscedasticity on Regression Trees (2016), arXiv (Cornell University)
  • Q. Le, A. Smola och S. Canu, Heteroskedastic Gaussian Process Regression (2020)
  • H. Park och C. Hwang, Weighted Support Vector Machines for Heteroskedastic Regression (2006), Journal of the Korean Data and Information Science Society
  • A. Stirn, Faithful Heteroskedastic Regression with Neural Networks (2022), arXiv (Cornell University)
  • V. Cerqueira, How to Detect Heteroskedasticity in Time Series (2022), Mot datavetenskap

Publicerad via Mot AI