Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
808to812
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
808to812
808to812
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

bivariate Normalverteilung, Verteilungsfunktion

bivariate Normalverteilung, Verteilungsfunktion
09.10.2006 15:17:02
Tobias
Hallo Forum, hier nochmals meine Frage, da ich inzwischen noch nicht weitergekommen bin und schon fast verzweifle
weiß jemand, wie man die Verteilungsfunktion einer bivariaten Normalverteilung mit Excel berechnen kann? Ich habe zwei normalverteilte Zufallsvariablen X und Y und suche Pr(X&ltx,Y&lty) . Bekannt sind mir die Erwartungswerte und Varianzen von X und Y, und damit auch der Korrelationskoeffizient.
Ein Tool, wie man die Verteilungsfunktion einer bivariaten STANDARDnormalverteilung berechnet, habe ich hier gefunden:
http://www.numtech.com/NtRand/
Ich bräuchte das ganze aber für allgemeine bivariate Normalverteilungen.
Ich hoffe, jemand kann mir weiterhelfen...
Vielen Dank!
Gruß Tobi

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bivariate Normalverteilung, Verteilungsfunktion
09.10.2006 20:15:25
ingUR
Hallo, Tobias,
es scheint so, als wenn Du das Volumenintegral (numerische Kubatur) unter der Dichtefunktion der bivariaten Normalverteilung
fZ1,Z2(Z1,Z2)
numerisch ermitteln mußt.
Sofern dieses ein gangbarer Weg in Deiner Aufgabe ist, kann man in dieser Richtung weiterarbeiten.
Gruß,
Uwe
P.S
Benutzerdefinierte Zellenformel für den Dichtefunktionswert der bivariaten Normalverteilung
Function BIVARIATE_NV(x1 As Range, my1 As Range, sigma1 As Range, _
x2 As Range, my2 As Range, sigma2 As Range, _
rho As Range) As Double
Dim A As Double, a0 As Double, S1 As Double, S2 As Double, S12 As Double
Dim pi As Double
pi = 4 * Atn(1)
A = 1 / (2 * pi * sigma1 * sigma2 * Sqr(1 - rho ^ 2))
a0 = -1 / (2 * (1 - rho ^ 2))
S1 = (x1 - my1) / sigma1: S1 = S1 * S1
S2 = (x2 - my2) / sigma2: S2 = S2 * S2
S12 = -2 * rho * (x1 - my1) * (x2 - my2) / (sigma1 * sigma2)
BIVARIATE_NV = A * Exp(a0 * (S1 + S2 + S12))
End Function

Aufruf:
=BIVARIATE_NV(x1, my1, sigma1, x2, my2, sigma2, rho)
Variablen als Zellenbezüge einsetzen oder entsprechende Namen vergeben.
Anzeige
AW: bivariate Normalverteilung, Verteilungsfunktion
10.10.2006 09:21:20
Tobias
Hallo Uwe,
vielen Dank für deine Antwort. Leider bin ich kein Excel Experte und kann Makros nur mit Rekorder aufzeichnen und dann verändern. Wie muss ich denn deinen Code implementieren, damit die Funktion bei mir funktioniert.
Weisst du zufällig, ob sich die Verteilungsfunktion der bivariaten NV wirklich über Integration der Dichtefunktion numerisch berechnen lässt? Ist Integrieren mit Excel möglich?
Wäre sehr dankbar, wenn du mir noch mal helfen könntest.
Viele Grüße,
Tobias
AW: bivariate Normalverteilung, Verteilungsfunktion
10.10.2006 11:43:17
ingUR
Hallo, Tobias,
um Deine erste Frage, die da lautete: «Wie muss ich denn deinen Code implementieren, damit die Funktion bei mir funktioniert.», zu beantworten, hier eine Schrittfolge des Vorgangs:
  • Mit der Tastenkombination [ALT][F11] öffnest Du, wenn Du Dich in der Arbeitsmappe befindest, in der Du den Funktionscode einfügen möchtest, den VBA-Editor.
  • Für die Arbeitsmappe wird mit dem Menübefehl Einfügen::Modul (altern. Lokales Menü im Projektfenster) ein Modul-Ordner angelegt, sofern kein vorhandener genutzs werden soll.
  • Den Modulordner öffnen. Es erscheint das Codefenster, in das der Programmcode zu kopieren ist.
  • Die Tastenkombination [ALT][F11] erneut betätig, führt in die EXCEL-Arbeitsmappe zurück.
  • Wähle einen Zellenbereich, z.B. $F$2:$G$3, $G$4 für MEU1, SIGM1, MUE2, SIGM2, RHO
  • Benenne die Zellen mit den Namen, wenn Du diese Namen in den Zellenformeln verwenden möchtest (ansonsten sind die Zellenbezüge Spalten-Litteral/Zeielnnummer zu verwende)
  • Richte den Spaltenbereich der Z1-Skalierung ein, z.B. $E$6:$E$16 und trage die Skalenwerte ein (ggf. nach Schrittweite und Anzahl verändern)
  • Richte den Zeilenbereich der Z2-Skalierung ein, z.B. $F$5:$F$21 und trage die Skalenwerte ein (ggf. nach Schrittweite und Anzahl verändern)
  • Trage in F6 die benutzerdefinierte Zellenformel "=BIVARIATE_NV($E6, my1, sigma1, F$5, my2, sigma2, rho) ein (Namensbezüge ggf. durch Spalten/Zeilenbezüge ersetzen).
    "
    enstprechend dem Muster im P.S. meiner vorherigen Nachrit ein
  • Ziehe die Formel über die Zeilen und Spalten
  • Die Tabelle der Dichtefunktion im gewählten Bereich ist erstellt und kann als Oberflächendiagramm dargestellt werden.
    Alternativ zur benutzerdefinierten Zellenformel, kann auch direkt die Zellenformel in die Tabelle eingetrahen werden:
    =1/(2*PI()*sigma1*sigma2*WURZEL(1-rho^2))*EXP(-0,5/(1-rho^2)*((($E6-mue1)/sigma1)^2-2*rho*(($E6-mue1)/sigma1)*((F$5-mue2)/sigma2)+((F$5-mue2)/sigma2)^2))
    Deine nächste Frage, Tobias («Weisst du zufällig, ob sich die Verteilungsfunktion der bivariaten NV wirklich über Integration der Dichtefunktion numerisch berechnen lässt?» weiß ich nicht recht zu beantworten, da sie doch den grundlegenden Zusammenhang zwischen Dichte- und Verteilungsfunktion anspricht, oder worauf wolltest Du mit der Frage zielen?
    Zur Integration mit EXCEL ist zu sagen, dass natürlich die programmierbaren Ansätze der numerischen Mathematik in EXCEL eingebunden werden können (VBA, DLL, EXCEL-Zellenformeln), insbesondere die zweidimensonale Integration über bekannte Algorithmen.
    Es gibt allerdings bessere Werkzeuge diese durchzuführen und so stellt sich die Frage, für welche Anwendungen Du die Ergebnisse benötigst. Vielleicht würde sich auch so erkennen lassen, ob Deine Datenreihen nicht in eine Standardnormalverteilte Zufallsreihen überführt werden kann.
    Ein VBA-Grundgerüst-Programm zur zweidimensionalen Integration könnte ich später erstellen (sofern es nicht im Netz irgendwo vorhanden ist); jedoch da Du nicht über die VBA-Kenntnise verfügst, dieses zu üerarbeiten und zu ergänzen, dann ist es vielleicht nicht vorteilhaft, hier dieses zu veröffentlichen, da mir die Zeit fehlt, die notwendige Austestphase durchzuführen.
    Gruß,
    Uwe
    P.S.
    Korrekturlesen aus zeitlichen Gründen nicht mehr möglich; bitte um Nachsicht.
  • Anzeige
    AW: bivariate Normalverteilung, Verteilungsfunktion
    10.10.2006 12:00:13
    Tobias
    Hallo Uwe,
    vielen Dank für deine ausführliche Antwort! Zumindest kann ich jetzt deinen Code implementieren und hab schon wieder was dazugelernt... :)
    Meine Frage mit der Integration der Dichtefunktion war so zu verstehen, dass ich wissen wollte ob sich die Verteilungsfunktion durch Integration in geschlossener Form darstellen lässt. Das scheint aber nicht möglich zu sein.
    Vielleicht sollte ich mich wirklich mal durch einige Statistik-Bücher durcharbeiten und schauen, ob ich nicht in irgendeiner Weise meine Zufallsvariablen standardisieren kann, so dass ich dann mit der bivariaten Standardnormalverteilung rechnen kann. Dafür gibt es ja schon einige Lösungen, die ich im Netz gefunden habe.
    Letztendlich hätte ich dann gerne einen Plot, der mir Pr(X&ltx,Y&lty) angibt, z.B. für verschiedene Varianzen der ZF X.
    Hoffe, das bekomme ich noch irgendwie hin.
    Vielen dank nochmals und Viele Grüße,
    tobias
    Anzeige
    AW: bivariate Normalverteilung, Verteilungsfunktion
    10.10.2006 19:20:09
    ingUR
    Hallo, Tobias,
    eine geschlossene Formel ist die numerische Integration nicht. Bildlich und vereinfacht erläutert, gandelt es sich um die Summation von Teilbereichen unter der "Oberfläche" der Dichtefuznktion, wobei für die Teilbereich die verwendeten Stützpunkte verschieden gesetzt werden.
    Die einfachste Regel wäre die Trapezregel, bei der jeder Teilsummand, der einen Anteil an der Verteilungsfunktion liefert, durch Grundfläche der vier Eckpunkte des Bereichs {Z1,Z2}::{Z1+hz1, Z2+hz2} multiplizert mit dem Mittelwert der vier Dichtewerte Zi;Zk.
    Es gibt weitere numerische Algorithmen zu Integration, u.a. die Gauß-Lendrade-Kubatur-Formel:
    CNodes9 = (hx*hy/324) * [ 64*f(hx/2;hy/2) + 25*Sum((hxE(i,j);hyE(i,j)) + 40*Sum((hxS(i,j);hyS(i,j))
    wobei neun Funktionswerte de Dichtefünktion als Stützbunkte im Rechteck-Teilbereich benutzt werden: der Funktionswert des Zentrumspunkts, sowie jewils die vier Funktionwerte der Eckpunkte (E) und der Mittelpunkte (S) der Verbindungslinien dieser Eckunkte, die auf einem im Bereich gelegenen Rechteck sich befinden.
    Mit dieser Formel und mit der Dichtewerte aus o.g. gegebener Dichtefunktion erhält man mit einem VB(A)-Programm die Werte für diese Diagramme (Programm nicht veröffentlich, da noch nicht abschließend geprüft; Beta(-10)-Phase):

    (Auf Bildfläche zum Vergrößern klicken)
    Nun ist es bei normalverteilten Zufallsahlen so, dass der Gipfel über dem Mittelwertspunkt {m0, m0} liegt (der Koordinatenurprung wurde auf den Punkt {z1 = m0 - 2*sigma0; z2 = 2-*sigma0} gelegt, wobei m0 und sigma0 die Kennwerte sind, die zur Erzeugung der beiden Zuffalsreihen z1 und z2 benutzt wurden und als Rasterweite habe ich für die Diagramme sigma0/3 gewählt).
    Die Verteilungsfunktionwerte werden anolag zur Vorgehensweise, wie sie für bei der Dichtefunktion eingesetzt wurde, durch eine benutzerdefinierten Zellenformel bestimmt, die die numerische Integration ausführt.
    Dieses soll also nur zeigen, dass die numerische Intehration mit EXCEL durchführbar ist. Ich wünsche Dir Erfolg bei weiteren Recherchen zum Thema.
    Gruß,
    Uwe
    Anzeige
    AW: bivariate Normalverteilung, Verteilungsfunktion
    11.10.2006 08:58:21
    Tobias
    Hallo Uwe,
    vielen vielen Dank für die abermals ausführliche Antwort und die Mühe die du dir machst! Inzwischen habe ich aber eine verblüffend einfache Lösung für mein Problem gefunden. Wie schon erwähnt habe ich in Excel Programme gefunden, mit denen man Werte der Verteilungsfunktion der bivariaten STANDARDnormalverteilung berechnen kann. Inzwischen habe ich auch einen Calculator (nicht Excel) gefunden, der mir die Werte für die nicht-standardisierte bivariate NV ermittelt. Offenbar kann ich ganz einfach wie im univariaten Fall durch Standardisierung meiner Variablen (abziehen von Erwartungswert und teilen durch die Standardabweichung) mit dem Excel-Programm zur Verteilungsfunktion der bivariaten SNV rechnen! Ich habe die Ergebnisse mit denen aus dem Calculator verglichen und es passt.
    Hätte nicht gedacht, dass die Standardisierung auch im bivariaten Fall so einfach ist... :-)
    Falls das von dir erwähnte Programm aber veröffentlicht wird, wäre es super, wenn du mir den Link schicken könntest, bzw. mich benachrichtigen...
    Herzlichen Dank! Du hast mir sehr geholfen.
    Viele Grüße,
    Tobi
    Anzeige
    AW: bivariate Normalverteilung, Verteilungsfunktion
    11.10.2006 10:40:52
    ingUR
    Hallo, Tobi,
    ersteinmal ist es schön zu hören, dass Du Dein Problem lösen konntest und dies, zumal ich aufgrund Deiner Eingansfrage davon ausgegangen bin, dass Du Deine Aufgabe auf der Grundlage der Kennwerte aus den unveränderten Reihen erfüllen wolltest.
    Nun wäre es vielleicht nicht nur für mich hilfreich und im Sinne des Austauschs, die Quellen zu erfahren, wo Du die EXCEL-Mappen gefunden hast, mit denen Du die Werte der Verteilungsfunktion der bivariaten STANDARDnormalverteilung berechnest und die Fundstelle des Calculators zur Berechnung der der Werte der nicht-standardisierte bivariate NV, als dieses nur als Hinweis in einem Nebensatz zu erfahren, dass Du sie gefunden hast. Dies könnte mir auch bei der Überprüfung meines Integrationsansatzes helfen.
    Gruß,
    Uwe
    Anzeige
    AW: bivariate Normalverteilung, Verteilungsfunktion
    11.10.2006 10:55:26
    Tobias
    Hallo Uwe,
    sorry, hätte ich natürlich machen sollen. War heute morgen zu schusselig.
    Hier der Link zur Berechnung der Verteilungsfkt. der bivariaten SNV:
    http://www.rotman.utoronto.ca/~hull/software/bivar.xls
    Und hier der Calculator für die allgemeine bivariate NV:
    http://www.ami.dk/research/bivariate/
    Würdest du mir denn dein Programm zur Berechnung der allgemeinen bivariaten NV zukommen lassen, wenn es fertig ist? Dafür wäre ich dir sehr dankbar.
    Gruß Tobi
    Anzeige
    AW: bivariate Normalverteilung, Verteilungsfunktion
    11.10.2006 17:03:43
    ingUR
    Danke, Tobias!
    Die Literaturhinweise auf der Seite von John Hull, sind neben den Programmteilen interessant.
    Das Prüfen meiner Arbeitsmappe wird allerdings noch etwas daueren, zumal die "Standardsvorgehenweise" über die Standardnormalverteilung nun auch für dich praktikabel ist.
    Die Arbeitsmappe werde ich, Deinem Wunsch entsprechend, hochladen - allerdings ungeprüfr -, nachdem ich noch ein paar organisatorische Dinge daran erledigt habe, damit ein Überblick über die Konzeptfassung entsteht, der auch von Dritten erkannt werden kann.
    Allerdings will ich die Fassung, eben da sie noch nicht geprüft ist, nur temporär Veröffentlichen, so dass ich nicht den Server des Forums verwenden werde und die Datei dann morgen wieder herunterladen werde.
    Gruß,
    Uwe
    Anzeige
    AW: bivariate Normalverteilung, Verteilungsfunktion
    11.10.2006 17:20:35
    Tobias
    Hi Uwe,
    vielen Dank, dass du dein Programm zur Verfügung stellst!
    Ich bin hier allerdings noch recht neu im Forum und kenne mich nicht so gut aus.
    Was wolltest du mir denn damit sagen?
    "Allerdings will ich die Fassung, eben da sie noch nicht geprüft ist, nur temporär Veröffentlichen, so dass ich nicht den Server des Forums verwenden werde und die Datei dann morgen wieder herunterladen werde."
    Wo kann ich denn deine Arbeitsmappe finden?
    Viele Grüße,
    Tobi
    AW: bivariate Normalverteilung, Verteilungsfunktion
    11.10.2006 19:43:49
    ingUR
    Hallo, Tobias,
    es läßt sich schnell schreiben, was ich Dir sagen wollte: Damit Du oder Interessierte mit der Arbeitsfassung etwas anfangen kannst bzw. können, habe ich einige redaktionelle Änderung vorgenommen, die Eingabemöglichkeiten auf dem Tabellenblatt "Tabelle1" kennzeichnen. Da es jedoch nicht sicher ist, an welchen Stellen ich noch Fehler aus dem Programmcode auszumerzen habe, will ich die Datei morgen Mittaf wieder herunterladen, daher kann ich lade ich sioe nicht auf den Forumsserver hoch, wo sie im Archiv verschwinden würde und so auch für die "Nachwelt" dort mit den potentiellen Fehlern erhalten bleiben würde.
    Hier also der Entwurf einer Arbeitsversion
  • Version0004 vom 11.10.2006
  • Thema:
  • normalverteile Zufallszahlenreihe
  • bivariate Normaverteilung: Dichtefunktion nach Formel f(z1,z2)
  • bivariate Normaverteilung: bivariate Verteilungsfunktion über zweidimensionale numerische Integration
         der Dichtefunktion F(Z1<z1, Z2<z2) nach der Gauß-Legendre-Formel
  • Einzelwahrscheinlichkeitberechnung für: F(Z1<z1, Z2<z2)
  • Einzelwahrscheinlichkeitberechnung für: F(z1,1<Z1<z1,2, z2,1<Z2<z2,2)
    Die letzte Einzelberechnung läßt sich auch als benutzerdefinierte Funktion erstellen, und es lassen sich weitere Wahrscheinlichkeiten für andere bedingungen der Variablen.
    Nun hoffe ich, dass Du die Wege im Programmcode nachvollziehen kannst und dass ich Deine Nachfragen hinreichend beantworten kann.
    Gruß,
    Uwe
  • Anzeige
    AW: bivariate Normalverteilung, Verteilungsfunktion
    12.10.2006 09:27:15
    Tobias
    Guten Morgen Uwe,
    Klasse! Vielen Dank für das Programm.
    Ich werde es mir bei nächster Gelegenheit näher anschauen und komme dann evtl. nochmals mit Fragen auf dich zu...
    viele Grüße,
    tobias

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige