Implementieren einer Formel

Allgemeine Statistik mit R, die Test-Methode ist noch nicht bekannt, ich habe noch keinen Plan!

Moderatoren: EDi, jogo

Antworten
Alex123
Beiträge: 1
Registriert: Do Sep 28, 2017 12:12 pm

Implementieren einer Formel

Beitrag von Alex123 » Do Sep 28, 2017 12:16 pm

Hallo Zusammen,

Ich sitze vor folgender Aufgabenstellung:

Implementieren Sie folgende Formel in R:

Ein geeignetes aber unbekanntes Dispersionsmaß für Nominaldaten ist der sogenannte relative Informationsgehalt.
Dieser hat einen Wertebereich zwischen 0 und 1. Ein Wert von 0 stellt eine sehr homogene Stichprobe dar. Bei einem Wert von 1 sind die gewählten Antworten überr alle Kategorien gleich verteilt.


Dieser lässt mit Hilfe folgender Formel berechnen:

h = -\frac{1}{\ln(k)}*\sum_{j=1}^{k}h_{j}\ln(h_{j})

k stellt dabei die Anzahl der Antwortkategorien und h_{j} die relative Häufigkeit der verschiedenen Antwortkategorien dar. Im Folgenden soll diese Formel in R implementiert werden.

Folgende Funktionen könnten für die Implementierung nüttzlich sein:

`prop.table()`

`log()`

`sum()`

Die implementierte Formel wird am Ende folgende Struktur haben:
` rel.info = function(x){ `
` hj = prop.table(table(x)) `
` ... `
` return(h)} `

Hat jemand eine Idee wie ich dieses Problem lösen kann? Ich würde mich schon über einen Ansatz freuen, da ich gerade ziemlich ratlos vor der Aufgabe sitze :-)

jogo
Beiträge: 992
Registriert: Fr Okt 07, 2016 8:25 am

Re: Implementieren einer Formel

Beitrag von jogo » Do Sep 28, 2017 1:16 pm

Hallo Alex,

willkommen im Forum!
Ist x ein Vektor mit den absoluten Häufigkeiten? Wenn ja:

Code: Alles auswählen

h <- prop.table(x)
- 1/log(length(h)) * sum(h/log(h)) ### 
Man kann die Formel auch noch etwas umstellen:

Code: Alles auswählen

-  sum(h/log(h)) / log(length(h))
Das hat doch etwas mit Entropie zu tun, oder?

Du möchtest das in Form einer Funktion programmieren:

Code: Alles auswählen

Disp <- function(x) {
  h <- prop.table(x)  ### oder h <- x / sum(x)
  return( -  sum(h/log(h)) / log(length(h)) )
}
Disp(1:5)  ## Beispiel
Gruß, Jörg

lena-anna
Beiträge: 1
Registriert: Fr Jul 06, 2018 5:00 pm

Re: Implementieren einer Formel

Beitrag von lena-anna » Fr Jul 06, 2018 5:03 pm

Hallo Alex,

ich wollte dir eigentlich eine nachricht schreiben, geht aber noch nicht.
Hast du die Aufgabe lösen können?

würde mich über eine Antwort freuen.

Liebe Grüße

Lena

Antworten

Wer ist online?

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