Kann es wahr sein, dass nirgendwo im WWW Funktionen programmiert sindt, welche die Wahrscheinlichkeiten bekannter Zufallsverteilungen liefern?
Ich finde stundenlang Funktionen, die Zufallszahlen erzeugen, aber nie eine für (kumulierte) Wahrscheinlichkeiten oder Dichtefunktionen, nicht einmal die in jedem Statistikbuch vorhandenen Tabelleneinträge sind vertreten.
Auf der Scipy-Seite bin ich schon gewesen, da finde ich auch nichts. Hat jemand anderswo so etwas gesehen?
Wahrscheinlichkeitsfunktionen
was sagt den wiki dazu
http://de.wikipedia.org/wiki/Wahrschein ... _Statistik
was genau suchst du denn
http://de.wikipedia.org/wiki/Wahrschein ... _Statistik
was genau suchst du denn
- Goswin
- User
- Beiträge: 363
- Registriert: Freitag 8. Dezember 2006, 11:47
- Wohnort: Ulm-Böfingen
- Kontaktdaten:
Wenn ihr das immer genau wissen wollt, mache ich euch doch nur noch mehr Arbeit!
Heute suche ich eine Funktion, die mir kumulierte Wahrscheinlichkeiten einer negativen Binomialverteilung (mit beliebigem Erwartungswert und Varianz) liefert. Für große Erwartungswerte strebt diese nach einer Normalverteilung, aber für Normalverteilungen habe ich ja auch nichts gefunden...
Heute suche ich eine Funktion, die mir kumulierte Wahrscheinlichkeiten einer negativen Binomialverteilung (mit beliebigem Erwartungswert und Varianz) liefert. Für große Erwartungswerte strebt diese nach einer Normalverteilung, aber für Normalverteilungen habe ich ja auch nichts gefunden...
Ich hab' keine Ahnung, wovon Du schreibst, aber ich bin sicher, wenn Du die Funktionen programmierst (vielleicht in einem "Statistik"-Modul ?) und als erster OpenSource ins www stellst, wären Dir sicher ein paar Mathematiker dankbar .
Gruß
Gruß
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Naja, im random Modul gibt es doch einige - vielleicht nicht die, die Du jetzt suchstGoswin hat geschrieben:Kann es wahr sein, dass nirgendwo im WWW Funktionen programmiert sindt, welche die Wahrscheinlichkeiten bekannter Zufallsverteilungen liefern?
Diese Frage würde ich mal ins Mathematik Forum Stellen
da kanste sicherlich mit glänzen !
und auch minimale richtungsvorgaben von Profesoren solten dann kommen.
die dann schlussendlich zu einem Wahrscheinlich unwarscheinlichen Programm Fuhren !
da kanste sicherlich mit glänzen !
und auch minimale richtungsvorgaben von Profesoren solten dann kommen.
die dann schlussendlich zu einem Wahrscheinlich unwarscheinlichen Programm Fuhren !
@Hyperion: Im `random`-Modul gibt es keine einzige solche Funktion. Goswin sucht keine Funktion die Zufallszahlen erzeugt, sondern welche die die Wahrscheinlichlkeitsverteilung berechnen.
- Goswin
- User
- Beiträge: 363
- Registriert: Freitag 8. Dezember 2006, 11:47
- Wohnort: Ulm-Böfingen
- Kontaktdaten:
@sea-live: Danke für den Hinweis, ich wusste garnicht dass es ein Mathematikforum überhaupt gab, meinst du den Matheplaneten Matroid? Inzwischen habe ich die Frage auch dort gestellt, bin gespannt, was dabei herauskommt.
- Goswin
- User
- Beiträge: 363
- Registriert: Freitag 8. Dezember 2006, 11:47
- Wohnort: Ulm-Böfingen
- Kontaktdaten:
@numerix: Sympy könnte auch interessant sein, obwohl es derzeit nur Wahrscheinlichkeiten für die Gaussverteilung anbietet und es kein direktes Download für SuSE-Linux gibt. Ob ich für große Erwartungswerte auf die Gaussverteilung ausweichen soll oder nicht, das ist ja gerade ein impliziterTeil meiner Frage. Jedenfalls bin ich auch für diesen Hinweis dankbar.
Du mußt ggf. auch in scipy reingucken:Goswin hat geschrieben:Auf der Scipy-Seite bin ich schon gewesen, da finde ich auch nichts. Hat jemand anderswo so etwas gesehen?
Code: Alles auswählen
from scipy.stats import binom
HTH,
Christian
PS sympy und simpycore sind Algebrasysteme. Zwar kann man damit sicher auch CDFs abbilden (wenn nicht, wird das auf Wunsch sicher schnell implementiert), aber wenn man damit weiterrechnen will, muß man ggf. doch wieder in die "Niederrungen der Numerik" abtauchen.
Der Schönheit wegen hatte ich mal das geschrieben:
Keine Ahnung, ob Du sowas in der Richtung meintest ...
Viele Grüße
Code: Alles auswählen
#!/usr/bin/env python
import pygame, sys,os
import math
from pygame.locals import *
# Screen resolution:
RESX = 800
RESY = 600
pygame.display.init()
window = pygame.display.set_mode((RESX, RESY))
pygame.display.set_caption('Gauss')
screen = pygame.display.get_surface()
b = 0.3
ULIM = 100.
UDIV = 1.8
for u in range(0, int(ULIM), 1):
# Some mathematical, Gaussian calculations:
a = float(u) / (ULIM / UDIV)
if u > ULIM / 2:
a = UDIV - (float(u) / (ULIM / UDIV))
m = u / 16.
for x in range(50, RESX - 50):
c = x / (RESX / 16.) - 5.
y = a * math.exp(-b * (c - m) * (c - m))
# down:
y = RESY / 10 + (y * RESY / 1.5 + u * 3)
# up:
# y = RESY * 9 / 10 - (y * RESY / 1.5 + u * 3)
pygame.draw.line(screen, (200,200,200), (x, y), (x, y), 1)
pygame.display.update()
def input(events):
for event in events:
if event.type == QUIT:
sys.exit(0)
if event.dict.has_key('key') and event.dict['key'] == K_q:
sys.exit(0)
while True:
input(pygame.event.get())
Viele Grüße
- Goswin
- User
- Beiträge: 363
- Registriert: Freitag 8. Dezember 2006, 11:47
- Wohnort: Ulm-Böfingen
- Kontaktdaten:
@HWK:
In der Tat, die Links sind sehr informativ. Ich habe den Algorithmus zur Normalverteilung zwar nicht getestet, aber das haben viele andere getan. Ich glaube, die Normalverteilung kann ich abhaken.
@CM:
Wie auf den scipy-Webseiten über die scipy-Packages bereits geschrieben steht: "unfortunately very few are currently documented". Unter anderem ist scipy.stat nicht auf den Webseiten dokumentiert. Ich habe die vielleicht dumme Angewohnheit, undokumentierten Code unbeachtet zu lassen. Wenn ich es herunterlade, kann ich am Code sehen was das Paket enthält?
@abgdf:
Ich kenne das Paket <pgame> nicht, habe also selber keine Ahnung , ob ich etwas in dieser Richtung suche. Ich wäre nicht auf die Idee gekommen, in einem Spielepaket zu suchen. Mit etwas Zeit versuche ich mal, das pygame herunterzuladen und dein Programm zu entziffern.
In der Tat, die Links sind sehr informativ. Ich habe den Algorithmus zur Normalverteilung zwar nicht getestet, aber das haben viele andere getan. Ich glaube, die Normalverteilung kann ich abhaken.
@CM:
Wie auf den scipy-Webseiten über die scipy-Packages bereits geschrieben steht: "unfortunately very few are currently documented". Unter anderem ist scipy.stat nicht auf den Webseiten dokumentiert. Ich habe die vielleicht dumme Angewohnheit, undokumentierten Code unbeachtet zu lassen. Wenn ich es herunterlade, kann ich am Code sehen was das Paket enthält?
@abgdf:
Ich kenne das Paket <pgame> nicht, habe also selber keine Ahnung , ob ich etwas in dieser Richtung suche. Ich wäre nicht auf die Idee gekommen, in einem Spielepaket zu suchen. Mit etwas Zeit versuche ich mal, das pygame herunterzuladen und dein Programm zu entziffern.
Natürlich:Goswin hat geschrieben:@CM:
Wie auf den scipy-Webseiten über die scipy-Packages bereits geschrieben steht: "unfortunately very few are currently documented". Unter anderem ist scipy.stat nicht auf den Webseiten dokumentiert. Ich habe die vielleicht dumme Angewohnheit, undokumentierten Code unbeachtet zu lassen. Wenn ich es herunterlade, kann ich am Code sehen was das Paket enthält?
Code: Alles auswählen
dir(namespace)
HTH
Christian
@Goswin:
In meinem Beispiel oben hatte ich "Pygame" zum Zeichnen verwendet.
Für den Fall, daß Du "Pygame" nicht verwenden kannst, hab' ich's hier nochmal in Tkinter gemacht. Das geht dann mit den "included batteries":
Viele Grüße
In meinem Beispiel oben hatte ich "Pygame" zum Zeichnen verwendet.
Für den Fall, daß Du "Pygame" nicht verwenden kannst, hab' ich's hier nochmal in Tkinter gemacht. Das geht dann mit den "included batteries":
Code: Alles auswählen
#!/usr/bin/env python
import math
import Tkinter
from Tkconstants import *
# Screen resolution:
RESX = 800
RESY = 600
class GaussWindow:
def __init__(self):
self.mw = Tkinter.Tk()
self.mw.option_add("*font", ("Arial", 12, "normal"))
self.mw.title("Gauss")
self.mw.geometry("+90+45")
self.cv = Tkinter.Canvas(self.mw,
bg = "white",
width = RESX,
height = RESY)
self.cv.pack()
self.drawGauss()
self.btn = Tkinter.Button(self.mw,
text = "Ok",
command = self.mw.destroy)
self.btn.bind(sequence = "<Return>", func = self.bindFunc)
self.btn.focus()
self.btn.pack(side = RIGHT,
padx = 10,
pady = 10)
self.mw.mainloop()
def bindFunc(self, a):
self.mw.destroy()
def drawGauss(self):
b = 0.3
ULIM = 100.
UDIV = 1.8
for u in range(0, int(ULIM), 1):
# Some mathematical, Gaussian calculations:
a = float(u) / (ULIM / UDIV)
if u > ULIM / 2:
a = UDIV - (float(u) / (ULIM / UDIV))
m = u / 16.
for x in range(50, RESX - 50):
c = x / (RESX / 16.) - 5.
y = a * math.exp(-b * (c - m) * (c - m))
# down:
y = RESY / 10 + (y * RESY / 1.5 + u * 3)
# up:
# y = RESY * 9 / 10 - (y * RESY / 1.5 + u * 3)
self.cv.create_line(x, y, x + 1, y + 1)
if __name__ == "__main__":
app = GaussWindow()