Feedback

C# - Gini-Koeffizient für Einzeldaten

Veröffentlicht von am 14.11.2015
(0 Bewertungen)
Die Methode dient zur Berechnung des Gini-Maßes, welches zur Bestimmung von Ungleichverteilungen verwendet wird.
Als Übergabeparameter schleust man einfach einen Array mit double-Werten ein und bekommt in Folge eine Zahl zwischen 0 und 1, wobei angenommen wird:
0-0.33 schwache Konzentration
0.33-0.66 mittlere Konzentration
0.66-1 starke Konzentration


Beispiel


Gini gini = new Gini();
gini.Einzeldaten(new double[] { 30059.346, 2.357079, 170.06502, 36958.47, 876.0965 }));

// Ergebnis
// 0.762502545741056
GFU-Schulungen  [Anzeige]

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

using System;
using System.Linq;

namespace Project
{
    class Gini
    {
        public double Einzeldaten(double[] values)
        {

            Array.Sort(values);
            double sum = values.Sum();
            int cnt = values.Length;

            if (cnt == 1)
                return 1;

            double[] g = new double[cnt];
            double[] G = new double[cnt];
            double f = 1 / cnt;

            double valuesWithoutLastTriangle = 0.0;

            for (int i = 0; i < cnt; i++)
            {
                g[i] = values[i] / sum;
                if (i == 0)
                    G[i] = g[i];
                else
                    G[i] = G[i - 1] + g[i];

                if (i < (cnt - 1))
                    valuesWithoutLastTriangle += G[i];
            }

            return (1.0 - (2 * valuesWithoutLastTriangle / (cnt - 1)));
        }
    }
}
Abgelegt unter Mathe, Statistik.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!