Cook’s Distance¶

API-referens¶

Visualisera inflytande och hävstångseffekt för enskilda instanser i en regressionsmodell.

classyellowbrick.regressor.influence.CooksDistance(ax=None, draw_threshold=True, linefmt=’C0-’, markerfmt=’,’, **kwargs)¶

Bases: yellowbrick.base.Visualizer

Cook’s Distance är ett mått på hur inflytelserik en instans är för beräkningen av en regression, t.ex. om instansen tas bort skulle de uppskattade koefficienterna för den underliggande modellen förändras väsentligt? På grund av detta används Cooks avstånd i allmänhet för att upptäcka outliers i standard OLS-regressioner. Faktum är att en allmän tumregel är att D(i) > 4/n är ett bra tröskelvärde för att fastställa att mycket inflytelserika punkter är outliers, och den här visualiseringsverktyget kan rapportera procentandelen data som ligger över det tröskelvärdet.

Den här implementeringen av Cooks distans förutsätter Ordinary Least Squares-regression, och innehåller därför en sklearn.linear_model.LinearRegression under huven.Distansen beräknas via den icke-vita hävstången i projektionsmatrisen, som beräknas inom fit(). Resultaten av denna visualiserare är därför liknande, men inte lika avancerade, som en liknande beräkning med hjälp av statsmodeller. Beräkning av inflytande för andra regressionsmodeller kräver leave one out validering och kan vara dyrt att beräkna.

Se även

För en längre diskussion om att upptäcka outliers i regression och beräkning av hävstångseffekt och inflytande, se linjär regression i python, outliers/leveragedetect av Huiming Song.

Parametrar axmatplotlib Axes, default: Inga

Axlarna som figuren ska plottas på. Om None skickas in kommer de aktuella axlarna att användas (eller genereras vid behov).

draw_thresholdbool, standard: True

Teckna en horisontell linje vid D(i) == 4/n för att enkelt identifiera de mest inflytelserika punkterna i den slutliga regressionen. Detta kommer också att rita en legend som angerprocenten av datapunkterna som ligger över tröskelvärdet.

linefmtstr, default: ’C0-’

En sträng som definierar egenskaperna hos de vertikala linjerna i stamdiagrammet, vanligen kommer detta att vara en färg eller en färg och en linjestil. Standardvärdet är helt enkelt en heldragen linje med den första färgen i färgcykeln.

markerfmtstr, default: ’,’

En sträng som definierar egenskaperna hos markörerna vid stamdiagrammets huvuden. Standardvärdet är ”pixel”, dvs. i princip inget markörhuvud i toppen av stamdiagrammet.

kwargsdict

Nyckelordsargument som skickas till basklassen och som kan påverka den slutliga visualiseringen (t.ex. parametrar för storlek eller titel).

Notes

Cook’s Distance liknar i hög grad DFFITS, en annan diagnostisk metod som är tänkt att visa hur inflytelserik en punkt är i en statistisk regression. Även om de beräknade värdena för Cooks och DFFITS är olika är de konceptuellt identiska och det finns till och med en formel för att omvandla ett värde till ett annat. På grund av detta har vi valt att implementera Cooks avstånd i stället för eller utöver DFFITS.

Attribut distance_array, 1D

Cook’s avståndsvärde för varje instans som anges i X, t.ex. ett 1D-array med formen (X.shape,).

p_values_array, 1D

P-värdena som är kopplade till F-testet av Cooks avståndsfördelning. Ett 1Darray vars form matchar distance_.

influence_threshold_float

En tumregel för att bestämma outliers i regressionsmodellen, definierad som It=4/n.

outlier_percentage_float

Procentandelen instanser vars Cooks avstånd är större än influncetröskeln, procentandelen är 0,0 <= p <= 100,0.

draw()¶

Tecknar en stamdiagram där varje stam är Cooks avstånd för instansen vid det index som anges av x-axeln. Eventuellt ritas en tröskellinje.

finalize()¶

Förbereder visualiseringen för presentation och rapportering.

fit(X, y)¶

Beräknar hävstången för X och använder residualerna av asklearn.linear_model.LinearRegression för att beräkna Cooks avstånd för varje observation i X, deras p-värden och antalet outliers som definieras av det antal observationer som tillhandahålls.

Parametrar Xarray-liknande, 2D

Den exogena designmatrisen, t.ex. träningsdata.

yarray-like, 1D

Den endogena responsvariabeln, t.ex. måldata.

Returnerar selfCooksDistance

Fit returnerar visualiseringsinstansen.

yellowbrick.regressor.influence.cooks_distance(X, y, ax=None, draw_threshold=True, linefmt=’C0-’, markerfmt=’,’, show=True, **kwargs)¶

Cook’s Distance är ett mått på hur inflytelserik en instans är för beräkningen av en regression, t.ex. om instansen avlägsnas skulle de skattade coeficienterna för den underliggande modellen ändras väsentligt? På grund av detta används Cooks avstånd i allmänhet för att upptäcka outliers i standard OLS-regressioner. Faktum är att en allmän tumregel är att D(i) > 4/n är ett bra tröskelvärde för att fastställa att mycket inflytelserika punkter är outliers, och den här visualiseringsverktyget kan rapportera procentandelen data som ligger över det tröskelvärdet.

Den här implementeringen av Cooks distans förutsätter Ordinary Least Squares-regression, och innehåller därför en sklearn.linear_model.LinearRegression under huven.Distansen beräknas via den icke-vita hävstången i projektionsmatrisen, som beräknas inom fit(). Resultaten av denna visualiserare är därför liknande, men inte lika avancerade, som en liknande beräkning med hjälp av statsmodeller. Beräkning av inflytande för andra regressionsmodeller kräver leave one out validering och kan vara dyrt att beräkna.

Se även

För en längre diskussion om upptäckt av outliers i regression och beräkning av hävstångseffekt och inflytande, se linear regression in python, outliers/leveragedetect av Huiming Song.

Parametrar Xarray-like, 2D

Den exogena designmatrisen, t.ex. träningsdata.

yarray-like, 1D

Den endogena responsvariabeln, t.ex. måldata.

axmatplotlib Axes, default: None

Axlarna som figuren ska plottas på. Om None lämnas in kommer de aktuella axlarna att användas (eller genereras vid behov).

draw_thresholdbool, default: True

Teckna en horisontell linje vid D(i) == 4/n för att enkelt identifiera de mest inflytelserika punkterna i den slutliga regressionen. Detta kommer också att rita en legend som angerprocenten av datapunkterna som ligger över tröskelvärdet.

linefmtstr, default: ’C0-’

En sträng som definierar egenskaperna hos de vertikala linjerna i stamdiagrammet, vanligen kommer detta att vara en färg eller en färg och en linjestil. Standardvärdet är helt enkelt en heldragen linje med den första färgen i färgcykeln.

markerfmt: str, default: ’,’

En sträng som definierar egenskaperna hos markörerna vid stamdiagrammets huvuden. Standardvärdet är ”pixel”, t.ex. i princip inget markeringshuvud i toppen av stamdiagrammet.

show: bool, default: Om True, anroparshow(), som i sin tur anroparplt.show(). Du kan dock inte anropaplt.savefigfrån denna signatur, och inte hellerclear_figure. Om False, anropar barafinalize()kwargsdict

Nyckelordsargument som skickas till basklassen och som kan påverka den slutligavisualiseringen (t.ex. storlek eller titelparametrar).

Lämna ett svar

Din e-postadress kommer inte publiceras.