Handledning för analys av dataomslutning PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Handledning för analys av dataomslag

Data Envelopment-analys, även känd som DEA, är en icke-parametrisk metod för att utföra gränsanalys. Den använder linjär programmering för att uppskatta effektiviteten hos flera beslutsfattande enheter och den används vanligtvis inom produktion, ledning och ekonomi. Tekniken föreslogs först av Charnes, Cooper och Rhodos 1978 och sedan dess blev det ett värdefullt verktyg för att uppskatta produktionsgränser.

Uppdatering: Datumbox Machine Learning Framework är nu öppen källkod och gratis att ladda ner. Kolla in paketet com.datumbox.framework.algorithms.dea för att se implementeringen av Data Envelopment-analys i Java.

När jag först träffade metoden för 5-6 år sedan, blev jag förvånad över originaliteten i algoritmen, dess enkelhet och smarta idéer som den använde. Jag blev ännu mer förvånad över att se att tekniken fungerade bra utanför dess vanliga applikationer (ekonomisk, driftsundersökning osv.) Eftersom den framgångsrikt kunde tillämpas i Online Marketing, Search Engine Ranking och för att skapa sammansatta mätvärden. Trots detta diskuteras DEA idag nästan uteslutande inom ramen för verksamheten. Det är därför jag i denna artikel kommer att täcka de grundläggande idéerna och det matematiska ramverket bakom DEA och i nästa inlägg kommer jag att visa er några nya applikationer av algoritmen på webbapplikationer.

Varför Data Envelopment-analys är intressant?

Data Envelopment-analys är en metod som gör det möjligt för oss att jämföra och rangordna poster (butiker, anställda, fabriker, webbsidor, marknadsföringskampanjer etc) baserat på deras funktioner (vikt, storlek, kostnad, intäkter och andra mätvärden eller KPI) utan att göra några tidigare antaganden om funktionernas vikt eller vikt. Den mest intressanta delen av denna teknik är att den gör det möjligt för oss att jämföra poster som består av flera funktioner som har helt olika måttenheter. Detta innebär att vi kan ha poster med funktioner uppmätta i kilometer, kilogram eller monetära enheter och fortfarande kunna jämföra, rangordna dem och hitta de bästa / sämsta och genomsnittliga resultat. Låter intressant? Fortsätt läsa.

Beskrivningen och antagandena om analys av dataomslag

Data envelopment-analys-graf
Som vi diskuterade tidigare är DEA en metod som uppfanns för att mäta produktivitet i affärer. Således kommer flera av dess idéer från det sätt som produktiviteten mäts i detta sammanhang. En av metodens kärnegenskaper är uppdelningen av postfunktionerna i två kategorier: input och output. Om vi ​​till exempel mäter effektiviteten hos en bil kan vi säga att ingången är liter bensin och att resultatet är antalet kilometer som den kör.

I DEA måste alla funktioner vara positiva och det antas att ju högre deras värde, desto mer är deras input / output. Dessutom förutsätter Data Envelopment-analys att funktionerna kan kombineras linjärt som en vägd summa av icke-negativa vikter och bildar ett förhållande mellan ingång och utgång som kommer att mäta effektiviteten för varje post. För att en post ska vara effektiv måste den ge oss en "bra" utgång relativt den medföljande ingången. Effektiviteten mäts med förhållandet mellan utgång och ingång och jämförs sedan med förhållandet mellan de andra posterna.

Den geniala tanken bakom DEA

Det vi hittills täckte är en sund förnuft / praxis. Vi använder input och output, vägda summor och förhållanden för att rangordna våra poster. DEAs smarta idé är på det sättet att funktionernas vikter beräknas. Istället för att behöva ställa in vikterna för funktionerna och bestämma hur viktiga de är innan vi kör analysen, beräknar Data Envelopment-analysen från data. Dessutom är vikterna INTE desamma för varje skiva!

Så här väljer DEA vikterna: Vi försöker maximera förhållandet för varje post genom att välja lämpliga funktionsvikter; samtidigt men vi måste se till att om vi använder samma vikter för att beräkna förhållandena för alla andra poster, kommer ingen av dem att bli större än 1.

Idén låter lite konstigt i början. Kommer det inte att leda till beräkning av olika viktade förhållanden? Svaret är ja. Betyder det inte att vi faktiskt beräknar olika förhållanden för varje post? Svaret är igen ja. Så hur fungerar det här? Svaret är enkelt: För varje rekord, med tanke på dess egenskaper, försöker vi hitta den "ideala situationen" (vikter) där dess förhållande skulle vara så hög som möjligt och därmed göra den så effektiv som möjligt. MEN samtidigt, med tanke på denna "ideala situation", bör ingen av utgångs- / ingångsförhållandena för de andra posterna vara större än 1, vilket betyder att de inte kan vara mer effektiva än 100%! När vi beräknar förhållandena för alla poster under varje ”ideal situation” använder vi deras förhållanden för att rangordna dem.

Så huvudidén med DEA kan sammanfattas på följande sätt: ”Hitta den ideala situationen där vi kan uppnå bästa förhållande poäng baserat på egenskaperna hos varje post. Beräkna sedan detta ideala förhållande för varje post och använd den för att jämföra deras effektivitet ”.

Låt oss se ett exempel

Låt oss se ett exempel där vi kan använda DEA.

Anta att vi är intresserade av att utvärdera effektiviteten i stormarknadsbutikerna i en viss kedja utifrån ett antal egenskaper: det totala antalet anställda, storleken på butiken i kvadratmeter, mängden försäljning som de genererar och antalet kunder att de tjänar i genomsnitt varje månad. Det blir uppenbart att att hitta de mest effektiva butikerna kräver vi att jämföra poster med flera funktioner.

För att tillämpa DEA måste vi definiera vilken som är vår input och output. I det här fallet är uppenbarligen mängden försäljning och antalet kunder som de betjänar. Inmatningen är antalet anställda och butikens storlek. Om vi ​​kör DEA kommer vi att uppskatta utgångs- till ingångsförhållandet för varje butik under de ideala vikterna (som diskuterats ovan). När vi väl har fått sina förhållanden kommer vi att rangordna dem efter deras effektivitet.

Det är matematik!

Nu när vi fick en intuition av hur DEA fungerar är det dags att gräva i matematiken.

Effektivitetsförhållandet för en viss post i med x-ingång och y-utgång (båda funktionsvektorer med positiva värden) uppskattas med hjälp av följande formel:

dea2

Där u och v är vikterna för varje utgång och ingång i posten, är s antalet utgångsfunktioner och m är antalet ingångsfunktioner.

Problemet med att hitta de bästa / ideala vikterna för en viss post i kan formuleras enligt följande:

dea4
dea6
dea8

Återigen är ovanstående bara det matematiska sättet att hitta vikterna u och v som maximerar effektiviteten hos posten i, förutsatt att dessa vikter inte kommer att göra någon av de andra postarna mer effektiva än 100%.

För att lösa detta problem måste vi använda linjär programmering. Tyvärr tillåter linjär programmering inte att använda fraktioner och därför måste vi omvandla formuleringen av problemet enligt följande:

dea10
dea12
dea14
dea8

Vi bör betona att ovanstående linjära programmeringsproblem ger oss de bästa vikterna för post i och beräknar dess effektivitet under de optimala vikterna. Detsamma måste upprepas för varje post i vårt dataset. Så om vi har n poster måste vi lösa n separata linjära problem. Här är pseudokoden för hur DEA fungerar:

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

Begränsningar av analysen av datahölje

DEA är en fantastisk teknik men har sina begränsningar. Du måste förstå att DEA är som en svart låda. Eftersom vikterna som används i effektivitetsförhållandet för varje post är olika är det meningslöst att försöka förklara hur och varför varje poäng beräknades. Vanligtvis fokuserar vi på rankningen av posterna snarare än på de faktiska värdena för effektivitetspoängen. Observera också att förekomsten av extremum kan göra att poängen har mycket låga värden.

Tänk på att DEA använder linjära kombinationer av funktionerna för att uppskatta förhållandena. Så om det inte är lämpligt att kombinera dem linjärt i vår applikation, måste vi tillämpa transformationer på funktionerna och göra dem möjliga att linjärt kombineras. En annan nackdel med denna teknik är att vi måste lösa lika många linjära programmeringsproblem som antalet poster, något som kräver mycket beräkningsresurser.

Ett annat problem som DEA står inför är att det inte fungerar bra med högdimensionella data. För att använda DEA måste antalet dimensioner d = m + s vara betydligt lägre än antalet observationer. Att köra DEA när d är mycket nära eller större än n ger inte användbara resultat eftersom troligtvis alla poster kommer att vara optimala. Observera att när du lägger till en ny utdatavariabel (dimension) kommer alla poster med maximalt värde i denna dimension att finnas optimala.

Slutligen bör vi notera att i den allmänna formen av algoritmen uppskattas vikterna för funktionerna i DEA från data och därför använder de inte någon tidigare information om vikten av funktioner som vi kan ha i vårt problem (naturligtvis det är möjligt att integrera denna information som begränsningar i vårt linjära problem). Dessutom är effektivitetspoängen som beräknas faktiskt de övre gränsvärdena för varje post eftersom de beräknas under ”ideala situationer”. Detta innebär att DEA kan vara en bra lösning när det inte är möjligt att göra några antaganden om vikten av funktionerna, men om vi har någon tidigare information eller vi kan kvantifiera deras betydelse rekommenderas att använda alternativa tekniker.

I nästa artikel kommer jag att visa dig hur du utvecklar en implementering av Analys av dataomslag i JAVA och vi kommer att använda metoden för att uppskatta populariteten för webbsidor och artiklar i sociala medienätverk.

Om du gillar artikeln, ta en stund för att dela den på Twitter eller Facebook. 🙂

Tidsstämpel:

Mer från Datumbox