Koks fjerning av avstand i Python

Koks fjerning av avstand i Python
Cooks avstand er en nyttig tilnærming for å identifisere outliers og virkningen av hver observasjon på en bestemt regresjonsmodell. Det kan hjelpe til med fjerning av outliers og undersøkelsen av hvilke punkter som bidrar minst til prediksjon av målvariabler. Vi skal se på regresjon, outliers og hvordan Cooks avstand spiller en rolle i å utvikle en god regresjonsmodell. Senere vil vi også implementere Cooks avstand i Python.

Hva er regresjon?

Regresjonsanalyse er et statistisk verktøy for å analysere sammenhengen mellom uavhengige og avhengige variabler (dette kan også utvides på mange forskjellige måter). Den mest typiske anvendelsen av regresjonsanalyse er å forutsi eller forutsi hvordan en samling av forhold vil påvirke et resultat. Anta at du hadde et sett med data om elever på videregående skole som inkluderte deres GPA, kjønn, alder og SAT -score.

I så fall kan du lage en grunnleggende lineær regresjonsmodell med de avhengige faktorene som GPA, kjønn, etnisitet og alder og de uavhengige variablene som SAT -score. Når du først har modellen, kan du estimere hva ferske studenter vil score på SAT basert på de fire andre faktorene, forutsatt at det er en god passform. Et annet godt eksempel på regresjonsanalyse er husprissprediksjonen basert på antall rom, område og andre faktorer.

Hva mener vi med lineær regresjon?

Lineær regresjon er den vanligste, enkle, men effektive læringsteknikken for å forutsi kontinuerlige variabler. Målet med lineær regresjon er å bestemme hvordan en inngangsvariabel (uavhengig variabel) påvirker en utgangsvariabel (avhengig variabel). Nedenfor er elementene i lineær regresjon:

  1. Inngangsvariabelen er vanligvis kontinuerlig
  2. Utgangsvariabelen er kontinuerlig
  3. Forutsetningene om lineær regresjon holder.

Forutsetningene om lineær regresjon inkluderer et lineært forhold mellom inngangs- og utgangsvariablene, at feil normalt distribueres, og at feilbegrepet er uavhengig av inngangen.

Hva er euklidisk avstand?

Den minste avstanden mellom to spesifiserte objekter i et plan er den euklidiske avstanden. Hvis en høyre trekant trekkes fra de to spesifiserte punktene, tilsvarer den summen av firkanter av trekantens base og dens høyde. Det brukes ofte i geometri til en rekke formål. Dette er den typen rom der linjer som begynner parallelt forblir parallelle og alltid er samme avstand fra hverandre.

Dette ligner tett på plassen som menneskers bor. Dette indikerer at den euklidiske avstanden mellom to objekter er den samme som sunn fornuft forteller deg mens du beregner den korteste avstanden mellom to objekter. Pythagoras 'teorem brukes til å beregne det matematisk. Manhattan -avstanden er en alternativ beregning for å bestemme avstanden mellom to steder.

Hva er Manhattan -avstand?

Manhattan -avstand beregnes hvor flyet er delt inn i blokker, og du kan ikke reise diagonalt. Som et resultat gir ikke Manhattan alltid den mest direkte ruten mellom to punkter. Hvis to punkter i et plan er (x1, y1) og (x2, y2), beregnes Manhattan-avstanden mellom dem som | x1-x2 | + | y1-y2 |. Dette er ofte ansatt i byer der gater er lagt ut i blokker, og det er umulig å gå diagonalt fra ett sted til et annet.

Hva er outliers?

Outliers i et datasett er tall eller datapunkter unormalt høye eller lave sammenlignet med andre datapunkter eller verdier. En outlier er en observasjon som avviker fra en prøves samlede mønster. Outliers bør fjernes når de reduserer modellens nøyaktighet. Outliers er vanligvis visualisert ved hjelp av boksplott. I en klasse av elever kan vi for eksempel forvente at de er mellom 5 og 20. En 50 år gammel elev i klassen vil bli betraktet som en outlier siden han ikke "tilhører" dataens vanlige trend.

Å plotte dataene (typisk med en boksplott) er kanskje den enkleste teknikken for å se noen outliers i datasettet. Statistikkprosesser relatert til kvalitetskontroll kan fortelle deg hvor langt du er statistisk (i henhold til sannsynlighetsstandardavvik og tillitsnivå). Husk imidlertid at en outlier bare er en outlier hvis du har nok informasjon om dataene til å forklare hvorfor det er forskjellig fra de andre datapunktene, og dermed rettferdiggjør begrepet “outlier.”Ellers må dataene behandles som en tilfeldig forekomst. De skal oppbevares i datasettet - og du må godta de mindre ønskelige (i.e., mindre ønskelige) funn på grunn av datapunktets inkludering.

Hva er kokkenes avstand?

Kokkenes avstand i datavitenskap brukes til å beregne påvirkningen fra hvert datapunkt som en regresjonsmodell. Å utføre en minste kvadratregresjonsanalyse er en metode for å identifisere innflytelsesrike outliers i et sett med prediktorvariabler. R. Dennis Cook, en amerikansk statistiker, oppsto dette konseptet, og det er derfor det er oppkalt etter ham. I kokkens avstand blir verdiene sammenlignet for å se om å fjerne den nåværende observasjonen påvirker regresjonsmodellen. Jo større påvirkning av en viss observasjon på modellen, jo større er kokkenes avstand til den observasjonen.
Matematisk er Cooks avstand representert som

Di = (di2 / c * m) * (hii / (1-hii) 2)

hvor:
dJeg er jegth datapunkt
C representerer antall koeffisienter i den gitte regresjonsmodellen
M er gjennomsnittlig kvadratfeil som brukes til å beregne standardavviket for punkter med gjennomsnittet
hii er jegth Utnyttelsesverdi.

Konklusjoner av kokkens avstand

  1. En sannsynlig outlier er et datapunkt med kokkens avstand mer enn tre ganger middelet.
  2. Hvis det er N -observasjoner, anses et hvilket som helst punkt med koks avstand større enn 4/n som innflytelsesrike.

Implementering av Cooks avstand i Python

Leser dataene
Vi vil lese en 2-D-matrise der 'X' representerer den uavhengige variabelen mens 'Y' representerer den avhengige variabelen.

Importer pandaer som PD
#Create DataFrame
df = pd.DataFrame ('x': [10, 20, 30, 40, 50, 60],
'Y': [20, 30, 40, 50, 100, 70])

Opprette regresjonsmodellen

Importer statsmodeller.API som sm
# lagring av avhengige verdier
Y = df ['y']
# Lagring av uavhengige verdier
X = df ['x']
X = sm.add_constant (x)
# Monter modellen
modell = sm.OLS (y, x)
modell.passe()

Beregn kokkens avstand

Importer numpy som NP
np.set_printOptions (Suppress = True)
# skape forekomst av innflytelse
påvirkning = modell.get_influence ()
# Få kokkens avstand for hver observasjon
Cooks_Distances = Influence.Cooks_Distance
# Print Cooks avstander
Print (Cooks_Distances)

Annen outlier deteksjonsteknikk

Interquartile Range (IQR)
Interquartile Range (IQR) er et mål på datadispersjon. Det er spesielt effektivt for betydelig skjevt eller på annen måte ut-av-ordinære data. For eksempel er data om penger (inntekt, eiendommer og bilpriser, sparing og eiendeler, og så videre) ofte skjev til høyre, med de fleste observasjoner som er på den lave enden og noen få spredt på den høye enden. Som andre har påpekt, konsentrerer det interkvartile området seg om den midtre halvdelen av dataene mens de ser bort fra halene.

Konklusjon

Vi gikk gjennom beskrivelsen av Cooks avstand, dens relaterte konsepter som regresjon, outliers og hvordan vi kan bruke den til å finne påvirkningen av hver observasjon i datasettet vårt. Cooks avstand er viktig for å undersøke outliers og hvilken innvirkning hver observasjon har på regresjonsmodellen. Senere implementerte vi også Cooks avstand ved hjelp av Python på en regresjonsmodell.