Gewichteter Zufallswert nähe Mittelwert

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gewichteter Zufallswert nähe Mittelwert

    Hallo,

    ich stehe gerade total auf dem Schlauch und hoffe, ihr könnt mir ein wenig mit Denkansätzen/Ideen helfen.

    Ich habe einen MIN-Wert, einen MAX-Wert und einen Mittelwert.
    Nun möchte ich eine Zufallszahl zwischen MIN und MAX generieren.
    Das ist an sich kein Problem.
    Mein Problem ist jetzt, dass ich möchte, das die Wahrscheinlichkeit höher ist, dass der Zufallswert irgendwo rund um den Mittelwert variiert.
    Der Mittelwert ist dabei NICHT einfach die Mitte zwischen MIN und MAX, sondern ein errechneter Wert aus mehreren Datensätzen.

    Also Beispielsweise:
    Min: 1
    Max: 10
    Mittelwert: 6
    Als Ergebnis soll nun öfter ein Wert um 6 (also vielleicht 4 - 8) heraus kommen, als beispielsweise die 1, 2 oder 10.
    Diese Zahlen sind natürlich nur Beispielwerte.
    Die tatsächlichen Zahlen mit denen ich arbeite, liegen im Dezimalbereich.

    Ich dachte mir, es gibt doch sicherlich, vielleicht aus dem Bereich der Wahrscheinlichkeitsrechnung, der Statistik etc., bereits ausgeklügelte Formeln, die genau dieses Problem behandeln, wurde aber bei meiner Suche nicht fündig.

    Hat von euch jemand eine Idee, wie ich mein Problem angehen könnte?
    Ein kleiner Denkansatz oder vielleicht eine tatsächlich existierende Formel aus der Mathematik?
    Zuletzt geändert von Wannabe; 01.05.2011, 21:43.

  • #2
    Dreiecksverteilung?

    Hallo Wannabe,

    Du koenntest z.B. die Zufallszahl gemaess einer
    Dreiecksverteilung generieren:

    Dreiecksverteilung ? Wikipedia

    Durch welche Gesichtspunkte sind die in Deinem
    Posting angegebenen Rahmenbedingungen motiviert
    worden? Vielleicht laesst sich die zugrunde
    liegende Verteilung (oder Verteilungsfamilie)
    dann noch geschickter spezifizieren.

    Kommentar


    • #3
      Danke mephisto, das klingt schon sehr nach etwas, das mir hier weiterhelfen könnte.
      Mir ist gerade aufgefallen, im ersten Posting habe ich von "Millionen-Werten" geschrieben.
      Das sind natürlich nicht Millionen, sondern niedrige Dezimal-Werte. Sorry.

      Also ganz konkret geht es um folgendes:

      Der MIN-Wert stellt den schlechtesten Wert dar, den ein Spieler (unter allen Spielern) in einer Kategorie erreicht hat.
      Der MAX-Wert entsprechend den besten Wert.
      Der Mittelwert ist der Durchschnittswert, den ALLE Spieler erreicht haben.

      Beispiel "Fußball" und "Zweikämpfe":

      Spieler 1: 0,15 Zweikämpfe pro Minute
      Spieler 2: 0,03 Zweikämpfe pro Minute.
      Spieler 3: 0,25 Zweikämpfe pro Minute.
      Spieler 4: 0,19 Zweikämpfe pro Minute.

      Dann habe ich MIN 0,03 und MAX 0,25.
      Und im Mittel hat ein Spieler dann 0,155 Zweikämpfe pro Minute.

      Für Spieler 5 ergibt sich damit, dass er wahrscheinlich zwischen 0,03 und 0,25 Zweikämpfe, sehr wahrscheinlich aber sogar irgendwas um die 0,155 Zweikämpfe pro Minute haben wird.
      Muss nicht sein, ist natürlich reine Theorie, aber die Wahrscheinlichkeit ist größer, als das er vielleicht nur 0,04 Zweikämpfe oder so haben wird.
      Die MIN-, MAX- und Mittelwerte ergeben sich dabei nicht aus 4 Spielern, sondern aus allen Spielern einer Liga.

      Der Erwartungswert liegt bei (MIN + Mittelwert + MAX) / 3, aber da fehlt mir halt der Zufall und die Möglichkeit, dass es auch sein könnte, das MIN oder MAX bei heraus kommen könnten ;-)
      Zuletzt geändert von Wannabe; 01.05.2011, 21:50.

      Kommentar


      • #4
        Hallo Wannabe,

        besitzen die Spieler unterschiedliche
        "Spielstaerken" und haengt die "Anzahl
        der Zweikaempfe" pro Minute auch von der
        "Spielstaerke" eines Spielers ab? Wenn ja,
        muesste Deine Ueberlegung verfeinert werden.

        Kommentar


        • #5
          Nein, Spielerstärken gibt es nicht.
          Falls der Eindruck entstanden sein sollte:
          Es geht NICHT um die Entwicklung des 1532sten Fußballmanagers oder so.
          Ich spiele einfach nur ein wenig mit Sport-Statistiken herum.
          Es geht also tatsächlich einfach nur darum, diesen gewichteten Zufallswert für Spieler 5 zu erstellen.

          Kommentar


          • #6
            Bleiben wir mal bei deinem Beispiel:
            Also Beispielsweise:
            Min: 1
            Max: 10
            Mittelwert: 6
            Als Ergebnis soll nun öfter ein Wert um 6 (also vielleicht 4 - 8) heraus kommen, als beispielsweise die 1, 2 oder 10.
            Diese Zahlen sind natürlich nur Beispielwerte.
            Die tatsächlichen Zahlen mit denen ich arbeite, liegen im Dezimalbereich
            Wie viel mal häufiger sollen denn Zahlen im Bereich 4-8 im Vergleich zu den anderen vorkommen?

            Ist ja letztendlich nur eine weitere Zufallsgenerierung mit
            PHP-Code:
            $r=rand(1,$häufigkeit
            und einer entsprechenden if abfrage:
            PHP-Code:
            if($r!=1)
              
            $wert rand(1,10);
            else
              
            $wert rand(4,8); 

            Kommentar


            • #7
              Da das eigentliche Problem darin bestand einen Zufallsmechanismus
              zu beschreiben, der auch im "Dezimalbereich" funktioniert, hier eine kleine
              Ergänzung zu dem Posting von Tobiaz. Der Nachteil seiner Methode ist, dass
              mit ihr nur Verteilungen realisiert werden können, die (ein idealer
              Zufallszahlengenerator vorausgesetzt) Mischungen von zwei diskreten
              Gleichverteilungen sind.

              Hier ein Rezept, mit dem man per PHP Zufallszahlen mit einer (praktisch)
              beliebigen Verteilung erzeugen kann:

              Schritt 1: Größte Zahl ermitteln, die von "rand" akzeptiert wird:

              PHP-Code:
              $a=getrandmax(); 
              Schritt 2: Eine "zufällige" Zahl zwischen 0 und $a erzeugen:

              PHP-Code:
              $x=rand(0,$a); 
              Schritt 3: Transformation dieser Zahl auf das Einheitsintervall:

              PHP-Code:
              $u=$x/$a
              Schritt 4: $u lässt sich näherungsweise als Realisierung einer auf dem
              Einheitsintervall gleichmässig verteilten Zufallsvariablen auffassen.

              Wenn man auf diesen Wert die "Inverse" F_inv der gewünschten
              Verteilungsfunktion F anwendet, erhält man einen Wert, der als Realisierung
              einer gemäß F verteilten Zufallsvariablen aufgefasst werden kann:

              PHP-Code:
              $z=F_inv($u); 
              Weitere Einzelheiten zu Schritt 4 vgl.
              Inversionsmethode ? Wikipedia
              Zuletzt geändert von mephisto111; 04.05.2011, 21:36.

              Kommentar


              • #8
                Da das eigentliche Problem darin bestand einen Zufallsmechanismus
                zu beschreiben, der auch im "Dezimalbereich" funktioniert,
                Echt? ich dachte eigentlich das der TO das schon längst realisiert hatte, schließlich konnte er sein Problem entsprechend vereinfachen...

                Kommentar


                • #9
                  Der Thread wurde zwar schon vor einer Weile eröffnet, aber vielleicht guckt der TO hier ja noch rein und findet folgenden Link interessant/passend?!

                  Diskrete begrenzte Glockenkurven-Verteilung? | PHP Gangsta - Der PHP Blog
                  Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                  Schön - etwas Geschichte kann ja nicht schaden.
                  Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                  Kommentar

                  Lädt...
                  X