Dataindpakningsanalyse Tutorial PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Tutorial til dataindpakningsanalyse

Data Envelopment Analysis, også kendt som DEA, er en ikke-parametrisk metode til at udføre grænseanalyse. Det bruger lineær programmering til at estimere effektiviteten af ​​flere beslutningstagende enheder, og det bruges almindeligvis i produktion, ledelse og økonomi. Teknikken blev først foreslået af Charnes, Cooper og Rhodes i 1978 og siden da blev det et værdifuldt værktøj til at estimere produktionsgrænser.

Opdatering: Datumbox Machine Learning Framework er nu open source og gratis til downloade. Tjek pakken com.datumbox.framework.algorithms.dea for at se implementeringen af ​​Data Envelopment Analysis i Java.

Da jeg første gang stødte på metoden for 5-6 år siden, blev jeg overrasket over originaliteten af ​​algoritmen, dens enkelhed og klogheden i de ideer, den brugte. Jeg var endnu mere forbløffet over at se, at teknikken fungerede godt uden for dens sædvanlige applikationer (økonomisk, driftsforskning osv.), da den kunne anvendes med succes i onlinemarkedsføring, søgemaskinerangering og til at skabe sammensatte målinger. På trods af dette diskuteres DEA i dag næsten udelukkende i erhvervssammenhæng. Derfor vil jeg i denne artikel dække de grundlæggende ideer og matematiske rammer bag DEA, og i det næste indlæg vil jeg vise dig nogle nye anvendelser af algoritmen på webapplikationer.

Hvorfor er dataindpakningsanalyse interessant?

Data Envelopment Analysis er en metode, der gør det muligt for os at sammenligne og rangordne poster (butikker, medarbejdere, fabrikker, websider, marketingkampagner osv.) baseret på deres funktioner (vægt, størrelse, omkostninger, indtægter og andre målinger eller KPI'er) uden forudgående antagelser om vigtigheden eller vægten af ​​funktionerne. Den mest interessante del af denne teknik er, at den giver os mulighed for at sammenligne poster bestående af flere funktioner, der har helt forskellige måleenheder. Det betyder, at vi kan have poster med funktioner målt i kilometer, kilogram eller monetære enheder og stadig være i stand til at sammenligne, rangere dem og finde de bedste/dårligste og gennemsnitlige resultater. Lyder interessant? Fortsæt med at læse.

Beskrivelsen og forudsætningerne for Data Envelopment Analysis

Data-indpakning-analyse-graf
Som vi diskuterede tidligere, er DEA en metode, der blev opfundet til at måle produktivitet i erhvervslivet. Således kommer flere af dens ideer fra den måde, hvorpå produktivitet måles i denne sammenhæng. Et af kerneegenskaberne ved metoden er adskillelsen af ​​postfunktionerne i to kategorier: input og output. Hvis vi for eksempel måler effektiviteten af ​​en bil, kan vi sige, at input er liter benzin, og output er det antal kilometer, den tilbagelægger.

I DEA skal alle funktioner være positive, og det antages, at jo højere deres værdi, jo mere er deres input/output. Derudover antager Data Envelopment Analysis, at funktionerne kan kombineres lineært som en vægtet sum af ikke-negative vægte og danne et forhold mellem input og output, der vil måle effektiviteten af ​​hver post. For at en post skal være effektiv, skal den give os et "godt" output i forhold til det leverede input. Effektiviteten måles ved forholdet mellem output og input og sammenlignes derefter med forholdet mellem de andre poster.

Den geniale idé bag DEA

Hvad vi har dækket indtil videre, er sund fornuft/praksis. Vi bruger input og output, vægtede summer og nøgletal til at rangere vores poster. Den smarte idé med DEA er den måde, at vægten af ​​funktionerne beregnes. I stedet for at skulle indstille vægten af ​​funktionerne og tage stilling til deres vigtighed, før vi kører analysen, beregner Data Envelopment Analysen dem ud fra dataene. Desuden er vægtene IKKE de samme for hver rekord!

Sådan udvælger DEA vægtene: Vi forsøger at maksimere forholdet mellem hver post ved at vælge de passende funktionsvægte; på samme tid, selvom vi skal sikre, at hvis vi bruger de samme vægte til at beregne forholdet mellem alle de andre poster, vil ingen af ​​dem blive større end 1.

Ideen lyder lidt mærkelig i starten. Vil dette ikke føre til beregning af forskelligt vægtede nøgletal? Svaret er ja. Betyder det ikke, at vi faktisk beregner forholdet forskelligt for hver post? Svaret er igen ja. Så hvordan virker dette? Svaret er enkelt: For hver post, givet dens karakteristika, forsøger vi at finde den "ideelle situation" (vægte), hvor dens forhold ville være så højt som muligt og dermed gøre det så effektivt som muligt. MEN på samme tid, givet denne "ideelle situation", bør ingen af ​​output/input-forholdet for de andre poster være større end 1, hvilket betyder, at de ikke kan være mere effektive end 100%! Når vi har beregnet forholdet mellem alle poster under hver "ideelle situation", bruger vi deres forhold til at rangere dem.

Så hovedideen bag DEA kan opsummeres i følgende: "Find den ideelle situation, hvor vi kan opnå den bedste ratio-score baseret på hver enkelt posts karakteristika. Beregn derefter dette ideelle forhold for hver post, og brug det til at sammenligne deres effektivitet”.

Lad os se et eksempel

Lad os se et eksempel, hvor vi kunne bruge DEA.

Antag, at vi er interesserede i at evaluere effektiviteten af ​​supermarkedsbutikkerne i en bestemt kæde baseret på en række karakteristika: det samlede antal ansatte, størrelsen af ​​butikken i kvadratmeter, mængden af ​​salg, de genererer og antallet af kunder at de i gennemsnit tjener hver måned. Det bliver tydeligt, at det at finde de mest effektive butikker kræver, at vi sammenligner poster med flere funktioner.

For at anvende DEA skal vi definere, hvad der er vores input og output. I dette tilfælde er output naturligvis mængden af ​​salg og antallet af kunder, som de betjener. Inputtet er antallet af ansatte og butikkens størrelse. Hvis vi kører DEA, vil vi estimere output til input-forholdet for hver butik under de ideelle vægte (som diskuteret ovenfor). Når vi har deres forhold, vil vi rangere dem efter deres effektivitet.

Det er matematik tid!

Nu hvor vi har fået en intuition af, hvordan DEA fungerer, er det tid til at grave ned i matematikken.

Effektivitetsforholdet for en bestemt post i med x input og y output (begge funktionsvektorer med positive værdier) estimeres ved at bruge følgende formel:

da2

Hvor u og v er vægten af ​​hvert output og input af posten, s er antallet af output-funktioner og m er antallet af input-funktioner.

Problemet med at finde de bedste/ideelle vægte for en bestemt post i kan formuleres som følger:

da4
da6
da8

Igen er ovenstående blot den matematiske måde at finde vægtene u og v, der maksimerer effektiviteten af ​​post i, forudsat at disse vægtninger ikke vil gøre nogen af ​​de andre poster mere effektive end 100 %.

For at løse dette problem skal vi bruge lineær programmering. Desværre tillader lineær programmering os ikke at bruge brøker, og derfor er vi nødt til at transformere formuleringen af ​​problemet som følgende:

da10
da12
da14
da8

Vi bør understrege, at ovenstående lineære programmeringsproblem vil give os de bedste vægte for post i og beregne dens effektivitet under disse optimale vægte. Det samme skal gentages for hver post i vores datasæt. Så hvis vi har n poster, skal 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;
}

Begrænsninger af dataindpakningsanalyse

DEA er en fantastisk teknik, men den har sine begrænsninger. Du skal forstå, at DEA er som en sort boks. Da vægtene, der bruges i effektivitetsforholdet for hver post, er forskellige, er det meningsløst at forsøge at forklare, hvordan og hvorfor hver score blev beregnet. Normalt fokuserer vi på rangeringen af ​​posterne snarere end på de faktiske værdier af effektivitetsscorerne. Bemærk også, at eksistensen af ​​ekstremum kan forårsage, at scorerne har meget lave værdier.

Husk, at DEA bruger lineære kombinationer af funktionerne til at estimere forholdet. Så hvis det ikke er hensigtsmæssigt at kombinere dem lineært i vores applikation, skal vi anvende transformationer på funktionerne og gøre det muligt at kombinere dem lineært. En anden ulempe ved denne teknik er, at vi skal løse lige så mange lineære programmeringsproblemer som antallet af poster, noget der kræver mange beregningsressourcer.

Et andet problem, som DEA står over for, er, at det ikke fungerer godt med højdimensionelle data. For at bruge DEA skal antallet af dimensioner d = m + s være signifikant lavere end antallet af observationer. At køre DEA, når d er meget tæt på eller større end n, giver ikke brugbare resultater, da alle registreringer højst sandsynligt vil blive fundet at være optimale. Bemærk, at når du tilføjer en ny outputvariabel (dimension), vil alle poster med maksimal værdi i denne dimension blive fundet optimale.

Endelig skal vi bemærke, at i den generelle form af algoritmen estimeres vægten af ​​funktionerne i DEA ud fra dataene, og de bruger derfor ikke nogen forudgående information om vigtigheden af ​​funktioner, som vi måtte have i vores problem (selvfølgelig det er muligt at inkorporere denne information som begrænsninger i vores lineære problem). Derudover er effektivitetsscorerne, der beregnes, faktisk de øvre grænseeffektivitetsforhold for hver post, da de er beregnet under "ideelle situationer". Dette betyder, at DEA kan være en god løsning, når det ikke er muligt at foretage nogen antagelser om vigtigheden af ​​funktionerne, men hvis vi har nogen forudgående information, eller vi kan kvantificere deres betydning, anbefales det at bruge alternative teknikker.

I den næste artikel vil jeg vise dig, hvordan du udvikler en implementering af Dataindpakningsanalyse i JAVA og vi vil bruge metoden til at vurdere populariteten af ​​websider og artikler på sociale medier.

Hvis du kan lide artiklen, så brug et øjeblik på at dele den på Twitter eller Facebook. 🙂

Tidsstempel:

Mere fra Datumboks