Benfords lag

Inledning

Denna utmaning går ut på att undersöka något som kallas för Benfords lag. Benfords lag beskriver hur olika siffror är fördelade som förstasiffror i statistik. Nu tror du kanske att de är fördelade jämt som när man t.ex. slumpar tal. Så är inte alltid fallet utan i många sammanhang så följer fördelningen just Benfords lag.

Benfords lag säger att det är betydligt vanligare att tal börjar med siffran 1 (30.1%) än med siffran 9 (4.6%). Läs mer om Benfords lag på wikipedia. Den matematiska bakgrunden beskrivs bättre i videon här.

bild

När gäller lagen då? Den gäller för siffror i t.ex. tidningar och när det gäller ekonomi. Faktum är att Benfords lag kan användas för att bevisa fusk inom bokföring. Utmaningen ligger i att påvisa Benfords lag i siffrorna för länders population.

Skaffa data

Data kan fås via Wikipedias artikel över länders population.

Alternativ 1

Använd "scraping", dvs. att programmet laddar hem sidan, tolkar rätt siffror och bearbetar dem sedan. Ett tips är att INTE använda reguljära uttryck för att tolka HTML utan istället använda en HTML tolk t.ex. "HTML Agility Pack" som finns via NuGet i Visual Studio.

Alternativ 2

Kopiera den förberedda datan här:

Data population

int[] data = 
{ 
	1360720000, 1240510000, 317558000, 249866000, 201032714, 185677000, 173615000, 152518015, 
	143657134, 127220000, 118395054, 99147700, 89708900, 86613986, 85981300, 80586000, 77225000, 
	76667864, 67514000, 65926261, 65820916, 63705000, 59943933, 53259000, 52981991, 50219669, 
	47468000, 46704314, 45439822, 44928923, 44354000, 40117096, 38700000, 38502396, 37964000, 
	35357000, 35295770, 34035000, 33176900, 30475144, 30183400, 30008000, 29994272, 28946101, 
	26494504, 25500100, 25235000, 24895000, 24658823, 23700715, 23386117, 23373517, 23202000, 
	21898000, 21263403, 20609294, 20386799, 20277597, 20121641, 17322796, 17165000, 17129076, 
	16838500, 16634603, 16363000, 15681100, 15438384, 15302000, 15135000, 14580290, 13567338, 
	12973808, 12825000, 11296000, 11184873, 11167325, 10886500, 10824200, 10815197, 10537222, 
	10513800, 10496000, 10487289, 10413211, 10323000, 10163000, 10027254, 9906000, 9644864, 
	9477100, 9468100, 9445281, 8555072, 8501502, 8264070, 8134100, 8112200, 8104000, 7282041, 
	7184000, 7181505, 7059653, 6783374, 6580800, 6548900, 6340000, 6333000, 6202000, 6191155, 
	6190280, 6071045, 5663133, 5627235, 5450614, 5415459, 5399200, 5240000, 5096300, 4822000, 
	4667096, 4616000, 4593100, 4483800, 4513460, 4448000, 4420549, 4294000, 4290612, 3957000, 
	3791622, 3615086, 3559500, 3461041, 3405813, 3286314, 3065850, 3017000, 2941953, 2821977, 
	2931300, 2711476, 2113077, 2074000, 2062294, 2061677, 2045239, 2024904, 2005200, 1849000, 
	1815606, 1704000, 1672000, 1622000, 1328019, 1311870, 1257900, 1250000, 1234571, 1066409, 
	873000, 865878, 858038, 840974, 784894, 743798, 744260, 620029, 598200, 581344, 567000, 
	537000, 534189, 491875, 416055, 405739, 392291, 393162, 351461, 349728, 325620, 317280, 
	294906, 285000, 268270, 264652, 258958, 237549, 212645, 187820, 187356, 180000, 159358, 
	150563, 109000, 106461, 106405, 103328, 103036, 101484, 101351, 99000, 90945, 86295, 
	84497, 76098, 71293, 64237, 63085, 56483, 56086, 55519, 55456, 54000, 53883, 48244, 37429, 
	36979, 36942, 36136, 33540, 31458, 30001, 29537, 28502, 23296, 20901, 14974, 13452, 13135, 
	11323, 9945, 8938, 6081, 4922, 4000, 2655, 2563, 2302, 2072, 1613, 1411, 839, 596, 56 
};

Analysera resultat

Presentera fördelningen av siffror (1-9) som procent. Relektera över om fördelningen följder Benfords lag eller ej.

Här finns också läge för överkurs genom att göra en generell histogram-klass som skulle kunna återanvändas i framtiden. Objektet skulle kunna ta ett min- och maximum för intervallet som skall mätas i sin konstruktor. Den skulle även kunna implementera en lämplig IEnumerable för iterering.

Vidare utmaningar

Testa att analysera annan data. Exempel: Världens högsta byggnader (meter och/eller feet) eller förstasidan på Dagens Nyheter.

En lösning till denna utmaning finns att studera för registrerade lärare.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Scroll to top