Data Envelopment Analysis Tutorial PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Veiledning for dataomslutningsanalyse

Data Envelopment Analysis, også kjent som DEA, er en ikke-parametrisk metode for å utføre grenseanalyse. Den bruker lineær programmering for å estimere effektiviteten til flere beslutningsenheter, og den brukes ofte i produksjon, ledelse og økonomi. Teknikken ble først foreslått av Charnes, Cooper og Rhodes i 1978 og siden den gang ble det et verdifullt verktøy for å estimere produksjonsgrenser.

Oppdatering: Datumbox Machine Learning Framework er nå åpen kildekode og gratis å nedlasting. Sjekk ut pakken com.datumbox.framework.algorithms.dea for å se implementeringen av Data Envelopment Analysis i Java.

Da jeg første gang møtte metoden for 5-6 år siden, ble jeg overrasket over algoritmens originalitet, dens enkelhet og smarte ideer den brukte. Jeg ble enda mer overrasket over å se at teknikken fungerte godt utenfor de vanlige bruksområdene (økonomi, driftsundersøkelser osv.) Siden den kunne brukes med hell innen online markedsføring, søkemotorrangering og for å lage sammensatte beregninger. Til tross for dette, diskuteres DEA i dag nesten utelukkende innenfor forretningssammenheng. Derfor vil jeg i denne artikkelen dekke de grunnleggende ideene og matematiske rammene bak DEA, og i neste innlegg vil jeg vise deg noen nye applikasjoner av algoritmen på webapplikasjoner.

Hvorfor analyse av datainnsamling er interessant?

Data Envelopment Analysis er en metode som gjør det mulig for oss å sammenligne og rangere poster (butikker, ansatte, fabrikker, nettsider, markedsføringskampanjer osv.) Basert på deres funksjoner (vekt, størrelse, kostnad, inntekter og andre beregninger eller KPIer) uten å gjøre noen tidligere antakelser om viktigheten eller vekten av funksjonene. Den mest interessante delen av denne teknikken er at den lar oss sammenligne poster som består av flere funksjoner som har helt forskjellige måleenheter. Dette betyr at vi kan ha poster med funksjoner målt i kilometer, kilogram eller monetære enheter og fremdeles være i stand til å sammenligne, rangere dem og finne de beste / verste og gjennomsnittlig utførte postene. Høres interessant ut? Fortsett å lese.

Beskrivelsen og forutsetningene for analyse av datainnhylling

Data-innhylling-analyse-graf
Som vi diskuterte tidligere, er DEA en metode som ble oppfunnet for å måle produktiviteten i virksomheten. Dermed kommer flere av ideene fra måten produktivitet måles i denne sammenhengen. En av kjerneegenskapene til metoden er separasjonen av postfunksjonene i to kategorier: input og output. Hvis vi for eksempel måler effektiviteten til en bil, kan vi si at inngangen er liter bensin og effekten er antall kilometer den kjører.

I DEA må alle funksjoner være positive, og det antas at jo høyere verdien deres er, desto mer er input / output. I tillegg antar Data Envelopment Analysis at funksjonene kan kombineres lineært som en vektet sum av ikke-negative vekter og danner et forhold mellom inngang og utgang som vil måle effektiviteten til hver post. For at en post skal være effektiv, må den gi oss en "god" produksjon i forhold til den angitte inngangen. Effektiviteten måles ved forholdet mellom utgang og inngang og sammenlignes deretter med forholdet mellom de andre postene.

Den geniale ideen bak DEA

Det vi dekket så langt er sunn fornuft / praksis. Vi bruker input og output, vektede summer og forhold for å rangere våre poster. Den smarte ideen til DEA er i måten vektene til funksjonene beregnes på. I stedet for å måtte stille inn vektene til funksjonene og bestemme hvor viktig de er før vi kjører analysen, beregner Data Envelopment Analysis dem ut fra dataene. Dessuten er vektene IKKE de samme for hver plate!

Slik velger du vekter: Vi prøver å maksimere forholdet mellom hver plate ved å velge passende funksjonsvekter; samtidig må vi sørge for at hvis vi bruker de samme vektene til å beregne forholdet mellom alle de andre postene, vil ingen av dem bli større enn 1.

Ideen høres litt rart ut i begynnelsen. Vil ikke dette føre til beregning av forskjellig vektede forholdstall? Svaret er ja. Betyr ikke dette at vi faktisk beregner forholdene for hver plate? Svaret er igjen ja. Så hvordan fungerer dette? Svaret er enkelt: For hver post, med tanke på egenskapene, prøver vi å finne den "ideelle situasjonen" (vekter) der forholdet vil være så høyt som mulig og dermed gjøre det så effektivt som mulig. MEN samtidig, gitt denne "ideelle situasjonen", skal ingen av utgangs- / inngangsforholdene til de andre postene være større enn 1, noe som betyr at de ikke kan være mer effektive enn 100%! Når vi har beregnet forholdstallene for alle poster under hver "ideelle situasjon", bruker vi forholdene for å rangere dem.

Så hovedideen til DEA kan oppsummeres i følgende: ”Finn den ideelle situasjonen der vi kan oppnå best poengsum basert på egenskapene til hver plate. Beregn så dette ideelle forholdet for hver plate og bruk det til å sammenligne effektiviteten.

La oss se et eksempel

La oss se et eksempel der vi kunne bruke DEA.

Anta at vi er interessert i å evaluere effektiviteten til supermarkedbutikkene i en bestemt kjede basert på en rekke egenskaper: totalt antall ansatte, størrelsen på butikken i kvadratmeter, mengden salg de genererer og antall kunder at de tjener hver måned i gjennomsnitt. Det blir åpenbart at det å finne de mest effektive butikkene krever at vi sammenligner poster med flere funksjoner.

For å anvende DEA må vi definere hvilken som er vår input og output. I dette tilfellet er produksjonen åpenbart mengden salg og antall kunder de betjener. Inndataene er antall ansatte og størrelsen på butikken. Hvis vi kjører DEA, vil vi estimere utgang til inngangsforholdet for hver butikk under de ideelle vektene (som diskutert ovenfor). Når vi har forholdstallene, vil vi rangere dem i henhold til effektiviteten.

Det er matematisk tid!

Nå som vi har fått en intuisjon av hvordan DEA fungerer, er det på tide å grave i matematikken.

Effektivitetsforholdet til en bestemt post i med x-inngang og y-utgang (begge har vektorer med positive verdier) estimeres ved å bruke følgende formel:

dea2

Der u og v er vektene for hver utgang og inngang til posten, er s antall utgangsfunksjoner og m er antall inngangsfunksjoner.

Problemet med å finne de beste / ideelle vektene for en bestemt plate i kan formuleres slik:

dea4
dea6
dea8

Igjen er det ovennevnte bare den matematiske måten å finne vektene u og v som maksimerer effektiviteten til post i, forutsatt at disse vektene ikke vil gjøre noen av de andre postene mer effektive enn 100%.

For å løse dette problemet må vi bruke lineær programmering. Dessverre tillater ikke lineær programmering oss å bruke brøker, og derfor må vi transformere formuleringen av problemet slik:

dea10
dea12
dea14
dea8

Vi bør understreke at ovennevnte lineære programmeringsproblem vil gi oss de beste vektene for post i og beregne effektiviteten under de optimale vektene. Det samme må gjentas for hver post i datasettet vårt. Så hvis vi har n poster, må vi løse n separate lineære problemer. Her er pseudokoden for hvordan DEA fungerer:

ratio_scores = [];
for every record i {
    i_ratio = get_maximum_effectiveness();
    ratio_scores[i] = i_ratio;
}

Begrensninger for datakonvoluttanalyse

DEA er en flott teknikk, men den har sine begrensninger. Du må forstå at DEA er som en svart boks. Siden vektene som brukes i effektivitetsforholdet til hver post er forskjellige, er det meningsløst å prøve å forklare hvordan og hvorfor hver poengsum ble beregnet. Vanligvis fokuserer vi på rangeringen av postene i stedet for på de faktiske verdiene til effektivitetspoengene. Legg også merke til at eksistensen av ekstremiteter kan føre til at skårene har svært lave verdier.

Husk at DEA bruker lineære kombinasjoner av funksjonene for å estimere forholdene. Så hvis det ikke er hensiktsmessig å kombinere dem lineært i vår applikasjon, må vi bruke transformasjoner på funksjonene og gjøre det mulig å kombinere dem lineært. En annen ulempe ved denne teknikken er at vi må løse så mange lineære programmeringsproblemer som antall poster, noe som krever mye beregningsressurser.

Et annet problem som DEA står overfor er at det ikke fungerer bra med høydimensjonale data. For å bruke DEA må antall dimensjoner d = m + s være betydelig lavere enn antall observasjoner. Å kjøre DEA når d er veldig nær eller større enn n gir ikke nyttige resultater, siden alle postene mest sannsynlig vil bli funnet å være optimale. Vær oppmerksom på at når du legger til en ny utdatavariabel (dimensjon), vil alle postene med maksimal verdi i denne dimensjonen bli funnet optimale.

Til slutt bør vi merke oss at i den generelle formen av algoritmen, blir vektene til funksjonene i DEA estimert ut fra dataene, og dermed bruker de ingen tidligere informasjon om viktigheten av funksjoner som vi kan ha i vårt problem (selvfølgelig det er mulig å innlemme denne informasjonen som begrensninger i vårt lineære problem). I tillegg er effektivitetspoengene som beregnes, faktisk de øvre grenseeffektivitetsforholdene for hver post, siden de blir beregnet under "ideelle situasjoner". Dette betyr at DEA kan være en god løsning når det ikke er mulig å gjøre noen forutsetninger om viktigheten av funksjonene, men hvis vi har noen forhåndsinformasjon eller vi kan kvantifisere deres betydning, anbefales det å bruke alternative teknikker.

I neste artikkel vil jeg vise deg hvordan du kan utvikle en implementering av Analyse av datakonvolutt i JAVA og vi vil bruke metoden til å estimere populariteten til websider og artikler i sosiale medier.

Hvis du liker artikkelen, kan du dele den på Twitter eller Facebook. 🙂

Tidstempel:

Mer fra Datoboks