2009-05-01 10 views
1

Also hier ist meine Herausforderung. Ich habe eine Tabelle, die wie folgt aussieht:Wie erhalten Sie einen gewichteten Durchschnitt für Rezensionen in Excel?

prod_id | pack | value | durable | feat | ease | grade | # of ratings 
1   75  85  99  90  90  88  1 
2   90  95  81  86  87  88  9 
3   87  86  80  85  82  84  37 
4   92  80  68  67  45  70  5 
5   93  81  94  93  90  90  4 
6   93  70  60  60  70  70  1 

Jedes Produkt individuelle Klasse Kriterien hat (Verpackung - einfache Bedienung), eine Durchschnittsnote und die Anzahl der Bewertungen das Produkt erhalten.

Der gesamte Datensatz Ich habe 68% der Produkte innerhalb der 80-89 Klasse Bereich platziert. Ich muss die Noten neu berechnen lassen, um die Anzahl der Bewertungen für das Produkt zu berücksichtigen, so dass Produkte, die weit unter der durchschnittlichen Gesamtanzahl der Bewertungen liegen, niedriger eingestuft werden (und eine niedrigere Note erhalten). Grundsätzlich sollte ein Produkt mit einer Note von 84 und 100 höher eingestuft werden als ein Produkt mit einer Note von 95 mit nur 5 Bewertungen.

Ich hoffe, das macht Sinn, danke für jede Hilfe im Voraus!

+1

Wie ist das überhaupt Fernprogrammierung bezogen? Statistische Analyse, ja. –

+0

Nun, ich versuche, die Logik in Excel herauszufinden, damit ich die Ergebnisse in PHP/MySQL reproduzieren kann. –

+2

Also wird VBA nicht mehr als Programmieren betrachtet? Joel wird traurig sein, aber ich bin glücklich darüber. ;) –

Antwort

1

Ich kann nicht genau sagen, ohne einen Rechner, aber es sieht aus wie

Grade = AVG(pack, value, durable, feat, ease) 

Wenn das der Fall ist, dann müssen Sie nur noch „weit unter dem Gesamt durchschnittliche Anzahl der Bewertungen fallen“ definieren. Ich wäge gegen die Standardabweichung vom Mittelwert ab - was ein anständiger Algorithmus sein kann oder auch nicht (ich bin kein Statistiker). Aber das bedeutet, dass jede Bewertung genau der Mittelwert = 1 ist und Sie +/- von dort erhalten.

WeightedGrade = Grade * ABS((Rating - AVG(H:H))/STDEV(H:H)) 
1

Was Sie brauchen, ist ein aussagekräftiger Algorithmus zur Gewichtung. Sie können alles auswählen, was für Sie sinnvoll ist, aber das erste, was Sie aufgrund Ihrer Anforderungen versuchen sollten, ist die Multiplikation der Rohstufe mit einem Gewichtungsfaktor. Berechnen Sie, dass das Verhältnis der Anzahl der Bewertungen durch die Gesamtanzahl der Bewertungen geteilt ergibt dies eine Antwort:

prod id raw grade # ratings weight   weighted grade 
1   88   1   0.01754386  1.543859649 
2   88   9   0.157894737  13.89473684 
3   84   37   0.649122807  54.52631579 
4   70   5   0.087719298  6.140350877 
5   90   4   0.070175439  6.315789474 
6   70   1   0.01754386  1.228070175 
         57  

nicht sicher, ob dies sinnvoll für Ihr Problem macht, aber es Ihre Anforderungen erfüllt. Vielleicht können Sie die gewichteten Noten normalisieren, also ist ID # 3 100 und skaliert den Rest davon.

Werfen Sie einen Blick auf "Collective Intelligence" für einige andere Ideen.