Prozentuale Gewichte auf Skala in einen Wert umrechnen

Univariate Statistik.

Prozentuale Gewichte auf Skala in einen Wert umrechnen

Beitragvon doppelhaushaelfte97 » Di 5. Okt 2021, 12:56

Hallo ihr Lieben!

Ich hoffe, das Thema passt hier rein, ansonsten verschiebt es bitte gerne, ich bin noch nicht so lange hier. :)

Also: Ich habe eine Skala von 1-5, und rate jeweils ein Objekt auf dieser Skala. Beispiel:

Peter = 3.5
Simon = 2.3
Manuela = 3

Jetzt habe ich ein Programm, welches für diese Skala für jeden Abschnitt (1,2,3,4,5) einen Prozentanteil vergibt. Für 4,5 z.B. 50% für 4 und 50% für 5.
So weit klar?

Nun muss ich jedoch meine Interraterreliabilität zwischen mir selbst und dem Programm berechnen und muss dafür die Gewichte des Programms umrechnen in einen einzigen Wert. Das ist bei dem obigen Beispiel (4,5 z.B. 50% für 4 und 50% für 5 = 4.5) einfach, aber oft werden auch auf jedem Posten Gewichte von dem Programm vergeben.
Wie könnte ich diese Umrechnung denn machen? Ich habe Folgendes in Excel versucht:
Code: Alles auswählen
=(G4*1/(N5/G5))+(H4*1/(N5/H5))+(I4*1/(N5/I5))+(J4*1/(N5/J5))+(K4*1/(N5/K5))


Spalten G H I J K L M(leer) N
Skala (Zeile 4): 1 2 3 4 5 entspricht Wert Insgesamt %
Gewichte (Zeile 5): 0,00 37,50 12,50 12,50 0,00 #DIV/0! 62,50

(entschuldigt bitte, ich habe es nicht geschafft, eine Tabelle einzufügen, irgendwie hing das.)

Nun seht ihr ja, dass für meine Formel aber der Wert #DIV/0! ausgegeben wird. Wahrscheinlich, weil ich nicht durch 0 dividieren darf. Ich muss aber jedes Feld berücksichtigen, da ich den Code ansonsten nicht auf alle Zeilen (weitere Ratings) ausweiten kann.

Auch R-Codes sind willkommen!

Liebe Grüße und danke schon einmal im Voraus, ich hoffe, es finden sich ein paar Tüftler unter euch,

eure doppelhaushaelfte
doppelhaushaelfte97
Grünschnabel
Grünschnabel
 
Beiträge: 4
Registriert: Di 5. Okt 2021, 12:45
Danke gegeben: 1
Danke bekommen: 0 mal in 0 Post

Re: Prozentuale Gewichte auf Skala in einen Wert umrechnen

Beitragvon bele » Di 5. Okt 2021, 13:25

Hallo Doppelhaushälfte,

doppelhaushaelfte97 hat geschrieben:Jetzt habe ich ein Programm, welches für diese Skala für jeden Abschnitt (1,2,3,4,5) einen Prozentanteil vergibt. Für 4,5 z.B. 50% für 4 und 50% für 5.
So weit klar?


Nö, kein bisschen. Ist "Abschnitt" hier dasselbe wie weiter unten "Posten"? Ist "Prozentanteil" das gleiche wie "Gewichte"?

Ich habe Folgendes in Excel versucht:
Code: Alles auswählen
=(G4*1/(N5/G5))+(H4*1/(N5/H5))+(I4*1/(N5/I5))+(J4*1/(N5/J5))+(K4*1/(N5/K5))



Die Buchstaben beschreiben in Excel Spalten, die Zahlen Zeilen. Was die Buchstaben bedeuten wissen wir nicht und was Zeile 4 und was Zeile 5 beinhaltet auch nicht. Ich kann natürlich raten, aber wenn ich falsch rate, dann ist Dir nicht wirklich geholfen.

Spalten G H I J K L M(leer) N
Skala (Zeile 4): 1 2 3 4 5 entspricht Wert Insgesamt %
Gewichte (Zeile 5): 0,00 37,50 12,50 12,50 0,00 #DIV/0! 62,50


Erst dachte ich in Spalte G sind die "Gewichte" für 1 und in Spalte "H" sind die Gewichte für 2, aber dann habe ich gemerkt, dass "G" bis "L" sechs Buchstaben sind, was bei 5 Gewichten leider keinen Sinn mehr ergibt.

Nun seht ihr ja, dass für meine Formel aber der Wert #DIV/0! ausgegeben wird. Wahrscheinlich, weil ich nicht durch 0 dividieren darf.


Richtig ist, dass #DIV/0! darauf hinweist, dass Du in Excel nicht durch Null dividieren "darfst".

Auch R-Codes sind willkommen!


Die lassen sich in Foren leichter übermitteln als Exceltabellen, aber vorher muss der umzusetzende Algorithmus klar sein. Was ich mir so zwischen den Zeilen zu Deiner Aufgabe denke, willst Du einen gewichteten Mittelwert aus den Zahlen 1 bis 5 berechnen, wobei in der Tabelle jeweils die Gewichte stehen. Ein Beispieldatensatz mit neun bewerteten Objekten könnte in R so aussehen

Code: Alles auswählen
gewichte <- read.table(text = "0.0 0.0 0.0 50.0 50.0
                       0 0 0 30 70
                       10 20 30 40 10
                       100 0 0 0 0
                       0 100 0 0 0
                       0 0 100 0 0
                       0 0 0 100 0
                       0 .5 0 .5 0
                       .2 .2 .2 .2 .2")
print(gewichte)


Das Computerrating als gewichteter Mittelwert ergäbe sich dann wie folgt (Cave neue Syntax, funktioniert nur mit R ab Version 4.1);

Code: Alles auswählen
computerrating <- apply(gewichte, 1, \(x) weighted.mean(x = 1:5, w = x))

print(computerrating)                 


Wenn das die richtige Antwort ist, dann ist diese Codezeile sicher leichter auf Fehler zu kontrollieren als Dein Excel-Vorschlag. Wenn nicht, dann bitte das Problem nochmal so erklären, als ob wir nicht wüssten, was Du da rechnest.

HTH,
Bernhard
Zuletzt geändert von bele am Di 5. Okt 2021, 13:30, insgesamt 1-mal geändert.
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 4535
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 10
Danke bekommen: 999 mal in 988 Posts

folgende User möchten sich bei bele bedanken:
doppelhaushaelfte97

Re: Prozentuale Gewichte auf Skala in einen Wert umrechnen

Beitragvon doppelhaushaelfte97 » Di 5. Okt 2021, 13:30

Hallo Bernhard, es tut mir wirklich Leid, dass ich so kompliziert erkläre, ich versuche mich jetzt mal an deinem R-Code und melde mich ansonsten noch einmal mit einer klareren Erklärung in der ich deine Kritik berücksichtige. Danke, dass du dir trotzdem die Zeit genommen hast, zu verstehen, was ich hiermit gemeint habe!

Lieben Gruß!
doppelhaushaelfte97
Grünschnabel
Grünschnabel
 
Beiträge: 4
Registriert: Di 5. Okt 2021, 12:45
Danke gegeben: 1
Danke bekommen: 0 mal in 0 Post

Re: Prozentuale Gewichte auf Skala in einen Wert umrechnen

Beitragvon bele » Di 5. Okt 2021, 13:35

Hallo doppelhaushälfte,

es geht nicht um Leid tun, sondern nur um die Sache. Wenn ich Dir nicht meine Bauchschmerzen beim Verstehen schildere, dann kannst Du es im Zweifel nicht verbessern.
Du darfst gerne auch mit einem Zahlenbeispiel antworten, in dem mein Codevorschlag zum falschen Ergebnis kommt zusammen mit einer Begründung für das richtige Ergebnis.

LG,
Bernhard


Edit: In Excel scheint eine Funktion für den gewichteten Mittelwert zu fehlen, man kann das aber abbilden mit
Code: Alles auswählen
=SUMPRODUCT(values_range, weights_range) / SUM(weights_range)
bzw auf Deutsch:
Code: Alles auswählen
=SUMMENPRODUKT(Werte;Gewichte)/SUMME(Gewichte)
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 4535
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 10
Danke bekommen: 999 mal in 988 Posts

Re: Prozentuale Gewichte auf Skala in einen Wert umrechnen

Beitragvon strukturmarionette » Di 5. Okt 2021, 17:18

Hi,

- was kann bzw soll an dieser Stelle unter Interraterreliabilität verstanden werden?
- Formel?

Gruß
S.
strukturmarionette
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 4177
Registriert: Fr 17. Jun 2011, 22:15
Danke gegeben: 31
Danke bekommen: 561 mal in 558 Posts

Re: Prozentuale Gewichte auf Skala in einen Wert umrechnen

Beitragvon bele » Mi 6. Okt 2021, 21:10

Hallo doppelhaushälfte,

na, kommst Du mit meinem R Code zurecht? Tut er, was er tun soll?

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 4535
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 10
Danke bekommen: 999 mal in 988 Posts

Re: Prozentuale Gewichte auf Skala in einen Wert umrechnen

Beitragvon doppelhaushaelfte97 » Do 7. Okt 2021, 09:46

Hallo Bernhard,
Mir ist schon klar, dass es hier in einem solchen Fall um das gegenseitige korrekte Verständnis und nicht um Zwischenmenschlichkeit geht. Ich habe das trotzdem versucht, nett und freundlich auszudrücken mit meiner Nachricht oben und gehofft, dass es auch ankommt. :)
Und ja, ich komme mit dem R-Code in der Praxis zurecht und er tut auch, was er soll.
Zu deinem R-Code: Wie gesagt, ich bin relativ neu hier und verstehe ihn theoretisch noch nicht so ganz. Kannst du mir erklären, was das \(x) in apply macht und wieso du für w=x auswählst und was dann x in diesem Kontext ist? Ist x jetzt hier das \(x) oder das x innerhalb der Funktion vom weighted.mean? Oder ist es beides mal dasselbe? Und wenn ja, wie geht das, du definierst es ja erst später im weighted.mean aber verwendest es schon davor?
Und kann ich den weighteed mean bspw. auch nur über Spalten 1-4 erstellen? Wie schließe ich denn dann im R-Code die 5.Spalte aus? Kann ich das vorne irgendwie bei der 1 spezifizieren?
Viele Grüße
doppelhaushaelfte97
Grünschnabel
Grünschnabel
 
Beiträge: 4
Registriert: Di 5. Okt 2021, 12:45
Danke gegeben: 1
Danke bekommen: 0 mal in 0 Post

Re: Prozentuale Gewichte auf Skala in einen Wert umrechnen

Beitragvon bele » Do 7. Okt 2021, 12:14

Hallo doppelhaushaelfte,

doppelhaushaelfte97 hat geschrieben:Ich habe das trotzdem versucht, nett und freundlich auszudrücken


Mir geht es genauso und ich hatte etwas Angst, Dich mit meinen Äußerungen verschreckt zu haben.

Und ja, ich komme mit dem R-Code in der Praxis zurecht und er tut auch, was er soll.


Das freut mich, denn das ist ja das Wesentliche.

Zu deinem R-Code: Wie gesagt, ich bin relativ neu hier und verstehe ihn theoretisch noch nicht so ganz.


Das ist völlig ok und ich will gerne eine Erklärung versuchen. Du müsstest mir dann aber kurz zurückmelden, ob ich zuviel oder zuwenig R voraussetze. Im Allgemeinen verstehen wir uns hier als Statistikforum und nicht als R Programmierforum. Sollte es mehr Fragen zum Umgang mit R, der Syntax oder dem Zeichnen von Diagrammen gehen bin ich und sind andere Hilfsbereite auf forum.r-statistik.de zu erreichen.

Aaaalso: Ich habe die Beispieldaten ja in einem Dataframe zeilenweise untergebracht. Die Funktion apply benutzt man, um eine Auswertefunktion der Reihe nach auf alle Zeilen anzuwenden. apply kann noch mehr, aber die "1" im Aufruf bedeutet, dass ich sie für zeilenweise Auswertungen nutzen möchte. apply braucht neben der "1" natürlich noch die auszuwertenden Daten, hier "gewichte" und die Funktion, die auf alle diese Zeilen angewendet werden soll. Hier muss ich eine Funktion übergeben, die aus je einer Zeile ein Ergebnis berechnet. Klassischerweise definiert man so eine Funktion mit dem Kommande "function(x)", alternativ geht das neuerdings auch mit "\(x)". Gerade innerhalb von apply Aufrufen ist die kürzere Form lesbarer. Was soll nun also unsere Funktion tun? Sie soll für jede Zeile bestehend aus fünf Werten einen gewichteten Mittelwert berechnen und das macht die Funktion "weighted.mean". Sie braucht einmal die Werte aus denen sie die Mittelwerte bilden soll und dann einmal die Gewichte. Die Werte, aus denen die Mittelwerte gebildet werden sollen sind die Zahlen von 1 bis 5, hier geschrieben als "1:5". Die Gewichte sind die Zahlenwerte in der Zeile, hier also "x".

Ist das soweit verständlich? Damit sind hoffentlich folgende Fragen jetzt klar:

Kannst du mir erklären, was das \(x) in apply macht


Das definiert eine anonyme Funktion von x. Das kennst Du wahrscheinlich eher als "function(x)".

w=x auswählst und was dann x in diesem Kontext ist?


"w" ist der Argumentname der Funktion "weighted.mean" für die Gewichte. x steht der Reihe nach für jede dieser Zeilen. Außerdem hat die Funktion weighted.mean selbst noch ein Argument für die Werte, aus denen der Mittelwert berechnet werden soll. Dass das auch x heißt ist hier leider verwirrend und führt wahrscheinlich zu dieser Frage:

Ist x jetzt hier das \(x) oder das x innerhalb der Funktion vom weighted.mean? Oder ist es beides mal dasselbe?


Mit "\(x)" definiere ich, dass die an die Funktion übergebenen Daten innerhalb der Funktion "x" heißen und dieses x setze ich in die Funktion "weighted.mean" als deren Gewichte ein, daher "w = x". Es wäre wohl weniger verwirrend gewesen hätte ich gleichwertig geschrieben:

Code: Alles auswählen
computerrating <- apply(gewichte, 1, \(zeile) weighted.mean(x = 1:5, w = zeile))
# oder
computerrating <- apply(gewichte, 1, function(zeile) weighted.mean(x = c(1, 2, 3, 4, 5), w = zeile))


Ist es so klarer?

Und kann ich den weighted.mean bspw. auch nur über Spalten 1-4 erstellen? Wie schließe ich denn dann im R-Code die 5.Spalte aus?


Unsere anonyme Funktion erhält ja alle fünf Werte jeder Zeile in einem Vektor übergeben, den wir "x" nennen. Wenn Du nur die ersten vier Werte von "x" verwenden möchtest, kannst Du das mit eckigen Klammern ausdrücken. Die ersten vier Werte aus "x" heißen "x[1:4]". Oder Du sagst, dass Du den fünften Wert in "x" weglassen willst. Das heißt dann "x[-5]". In der neuen Schreibweise "zeile[1:4]" oder "zeile[-5]". Das kannst Du machen, wie Du willst. Eine zweite Änderung ist noch erforderlich: Du willst ja jetzt nicht mehr einen gewichteten Mittelwert der Zahlen eins bis fünf, sondern nur noch der Zahlen eins bis vier berechnen.
Versuch es doch mit diesen Erklärungen selbst umzusetzen. Wenn es klappt, hast Du alles verstanden. Wenn nicht, schreibe ich Dir das gerne auf die ersten vier Spalten um.

HTH,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 4535
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 10
Danke bekommen: 999 mal in 988 Posts

Re: Prozentuale Gewichte auf Skala in einen Wert umrechnen

Beitragvon doppelhaushaelfte97 » Do 14. Okt 2021, 10:57

Hallo lieber Bernhard,

nein, du hast mich nicht verschreckt. Alles gut. :)

Danke für deine Erklärungen! Dass Funktionen mittlerweile auch so geschrieben werden können wusste ich tatsächlich nicht, das hat alles aufgeklärt!

Lieben Gruß!
doppelhaushaelfte97
Grünschnabel
Grünschnabel
 
Beiträge: 4
Registriert: Di 5. Okt 2021, 12:45
Danke gegeben: 1
Danke bekommen: 0 mal in 0 Post


Zurück zu Mittelwert, Standardabweichung & Co.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron