Bedingte Wahrscheinlichkeit

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

CCCarsten
Beiträge: 3
Registriert: Do, 03.05.2012 15:48

Bedingte Wahrscheinlichkeit

Beitrag von CCCarsten »

Hey Leute, bin neu hier und habe mich nach einer schlaflosen Nacht angemeldet, in welcher in mein Problem lösen wollte. Nunja, es hat nicht geklappt, und jetzt zähle ich auf eure Kompetenz.

Ich möchte eine paarweise bedingte Wahrscheinlichkeit ausrechnen: phi = (P (A|B), P (B|A) )
Die Matrix mit den Quelldateien enthält nur 0 und 1:
- 1 2 3
X1 0 0
Y0 1 1
Z1 1 1
1, 2 und 3 sind, nehmen wir mal an, Produktklassen, und X, Y und Z Länder. Die Länder brauchen wir nicht mehr. Es soll also die bedingte Wahrscheinlichkeit von 1=1 geg. 2=1 bzw. 3=1. P(1|2)=0,5 und P(1|3)=0.5. Mein Instinkt sagt mir, dass das relativ einfach ist, wenn man folgende Formel berücksichtigt:
Summewenn(3=1;1)/Summe(3)
Zum Glück gibt es ja nur 0 und 1.
Das Resultat soll eine Matrix folgender Art sein:
- 1 2 3
1 0 ? ?
2 ? 0 ?
3 ? ? 0
Die Matrix auf dem Tabellenblatt namens RCA-Matrix davor ist symmetrisch, sodass die Spalten- und Zeilenindizes gleich sind. Ich weiß, wie ich an den Buchstaben der aktuellen Spalte rankomme, um den Nenner mit Hilfe der Informationen aus dem vorhergehenden Tabellenblatt auszurechnen, sowie die Bedingung für SummeWenn, nämlich mit:

Code: Alles auswählen

=SUMIF(INDIRECT(CONCATENATE("'RCA-Matrix'.",RIGHT(LEFT(ADDRESS(2,COLUMN(B$1)),2),1),"2:",RIGHT(LEFT(ADDRESS(2,COLUMN(B$1)),2),1),"109")),1,'RCA-Matrix'.$B$2:$B$109)
Das Problem sind die letzten paar Zeichen:

Code: Alles auswählen

'RCA-Matrix'.$B$2:$B$109
Wenn ich die Formel in der Tabelle nach unten ziehe (also in die nächste Zeile wo 2 der erste Spalteneintrag ist), dann muss aus

Code: Alles auswählen

'RCA-Matrix'.$B$2:$B$109
folgendes werden:

Code: Alles auswählen

'RCA-Matrix'.$C$2:$C$109
, denn in der RCA-Matrix davor sind die relevanten Informationen in der nächsten Spalte. Wenn ich nach unten gehe soll der Zeiger nach rechts rutschen. Im Endeffekt ist es glaube so, dass der Buchstabe jener Spalte ausgegeben werden muss, wo Zeile 1 identisch ist mit dem Inhalt in Spalte A (in Calc-Referenz) derjenigen Zeile, wo sich die Formel gerade befindet. Ich könnte es machen, wenn die Funktion

Code: Alles auswählen

Spalte()
einen Buchstaben ausgeben würde, aber leider ist das nicht der Fall. Das ganze händisch zu korrigieren wäre unheimlich aufwendig, da ich 97 Produktklassen habe.

Hat jemand eine Idee, wie man weitermachen kann? Oder eine bessere Alternative? Ich wäre unglaublich begeistert und ihr würdet meine Abschlussarbeit unheimlich bereichern.
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Bedingte Wahrscheinlichkeit

Beitrag von Karolus »

Hallo

Ich denke Du wendest SUMIF vollkommen sinnfrei an - oder ?

Die merkwürdige und überkomplizierte (INDIRECT|CONCATENATE||ADDRESS|RIGHT|LEFT|COLUMN) Geschichte kannst du durch:

Code: Alles auswählen

OFFSET( ausgangsadresse ; zeilenanzahl ; spaltenanzahl ; 107 )
ersetzen.

Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
CCCarsten
Beiträge: 3
Registriert: Do, 03.05.2012 15:48

Re: Bedingte Wahrscheinlichkeit

Beitrag von CCCarsten »

Hi Karo, danke für die Antwort und die lustige Frage. Ich denke nicht, dass ich SummWenn "sinnfrei" verwende, zumindest so lange nicht, bis mir jemand zeigt, wie es sonst geht. Deine Alternative zeigt mir ja auch nur, wie ich etwas, was bei mir funktioniert, anders machen kann. Wie würdest du denn die paarweise Wahrscheinlichkeit ausrechnen?
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Bedingte Wahrscheinlichkeit

Beitrag von Karolus »

Hallo
@WIM
Carsten braucht keine "Spaltenbuchstaben" - es gibt nämlich VERSCHIEBUNG aka OFFSET..
CCCarsten hat geschrieben:Hi Karo, danke für die Antwort und die lustige Frage. Ich denke nicht, dass ich SummWenn "sinnfrei" ...
Wenn ich mir dir Mühe mache und deine Formel aufdrösele wird daraus:

Code: Alles auswählen

=SUMIF( RCA-Matrix.B2:B109 ; 1 ; RCA-Matrix.B2:B109 )
Nach deiner Auskunft enthält dieser Bereich nur 0'en und 1'en
Und es ist sinnfrei in einer Spalte von 0 und 1 zu summieren und vorher zu prüfen ob die 1 auch 1 sind.
CCCarsten hat geschrieben:verwende, zumindest so lange nicht, bis mir jemand zeigt, wie es sonst geht. Deine Alternative zeigt mir ja auch nur, wie ich etwas, was bei mir funktioniert, anders machen kann. Wie würdest du denn die paarweise Wahrscheinlichkeit ausrechnen?
Dazu müsstest du mal vernünftig definieren was bei dir "paarweise Wahrscheinlichkeit" bedeutet, und wo die "Paare" herkommen.

Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Gert Seler
*******
Beiträge: 1763
Registriert: Di, 03.10.2006 18:05

Re: Bedingte Wahrscheinlichkeit

Beitrag von Gert Seler »

Hallo Carsten,
es könnte sein, das Dir Dein Hausarzt beim nächsten Besuch mit " bedingter Wahrscheinlichkeit " ein
" Porzellansyndrom " attestiert.

Dann solltest Du in der "Schule"? oder "Uni"? besser aufpassen. Ebenso solltest Du üben, eine Frage
verständlich zu formulieren, das diese auch jeder versteht.
Die Helfer hier im Forum haben es nicht nötig, sich so billig runterputzen zu lassen !


Gert Seler
Es gibt nichts gutes, außer man tut es.
Win7_64 / LO_4.4.5.2
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Bedingte Wahrscheinlichkeit

Beitrag von Karolus »

@CCCarsten
Wenn ich der Meinung bin das ein Fragesteller unsinnige Formeln postet dann schreibe ich das auch, in diesem Fall wird meine Meinung durch folgenden Unsinn vollkommem bestätigt.

Code: Alles auswählen

=MIN(SUMIF(INDIRECT(CONCATENATE("'RCA-Matrix'.",INDIRECT(CONCATENATE("CU",ROW())),"2:",INDIRECT(CONCATENATE("CU",ROW())),"109")),1,INDIRECT(CONCATENATE("'RCA-Matrix'.",INDIRECT(CONCATENATE("CU",COLUMN())),"2:",INDIRECT(CONCATENATE("CU",COLUMN())),"109")))/SUM(INDIRECT(CONCATENATE("'RCA-Matrix'.",INDIRECT(CONCATENATE("CU",ROW())),"2:",INDIRECT(CONCATENATE("CU",ROW())),"109"))),
SUMIF(INDIRECT(CONCATENATE("'RCA-Matrix'.",INDIRECT(CONCATENATE("CU",COLUMN())),"2:",INDIRECT(CONCATENATE("CU",COLUMN())),"109")),1,INDIRECT(CONCATENATE("'RCA-Matrix'.",INDIRECT(CONCATENATE("CU",ROW())),"2:",INDIRECT(CONCATENATE("CU",ROW())),"109")))/SUM(INDIRECT(CONCATENATE("'RCA-Matrix'.",INDIRECT(CONCATENATE("CU",COLUMN())),"2:",INDIRECT(CONCATENATE("CU",COLUMN())),"109"))))
Viel Spass mit dieser ausgesprochen "kreativen" Lösung 8)


Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
CCCarsten
Beiträge: 3
Registriert: Do, 03.05.2012 15:48

Re: Bedingte Wahrscheinlichkeit

Beitrag von CCCarsten »

Ich habe mir noch eine alternative Formel ausgedacht, weil ich gesehen habe, dass obige Formel nur funktioniert, wenn es weniger Zeilen als Spalten gibt.

Folgendes ist daher eher der allgemeine Fall, allerdings muss man vorher transponieren:

Code: Alles auswählen

=MIN(SUMMEWENN(INDIREKT(VERKETTEN("'RCA-Matrix'.B";SPALTE();":CT";SPALTE()));1;INDIREKT(VERKETTEN(VERKETTEN("'RCA-Matrix'.B";ZEILE();":CT";ZEILE()))))/SUMME(INDIREKT(VERKETTEN("'RCA-Matrix'.B";SPALTE();":CT";SPALTE())));SUMMEWENN(INDIREKT(VERKETTEN("'RCA-Matrix'.B";ZEILE();":CT";ZEILE()));1;INDIREKT(VERKETTEN(VERKETTEN("'RCA-Matrix'.B";SPALTE();":CT";SPALTE()))))/SUMME(INDIREKT(VERKETTEN("'RCA-Matrix'.B";ZEILE();":CT";ZEILE())))
Antworten