Abstract
Die Dreiecksverteilung ist eine stetige Wahrscheinlichkeitsverteilung, deren Dichtefunktion wie ein Dreieck aussieht. Es ist eine einfache Verteilung, weil Sie lediglich ihr Minimum, ihren Median und ihr Maximum kennen müssen:
Im englischen Sprachraum wird diese Verteilung auch Distribution of Missing Data genannt, weil für ihre Bestimmung nur ein Minimum an Information benötigt wird. Diese Verteilung wird oft zur Simulation von Expertenwissen eingesetzt oder wenn eine genauere Datenermittlung zu schwierig oder zu teuer erscheint.
Verwandte Verteilungen
sbRandTrigen
sbRandTrigen stellt eine Dreiecksverteilung mit anderen Eingabedaten zur Verfügung. Zusätzlich zum Median legen Sie nicht die linke (Minimum) und die rechte (Maximum) Grenze des Dreiecks fest, sondern das linke und das rechte p-Quantil (Perzentil).
sbRandGeneral
Die Dreiecksverteilung ist ein Spezialfall der allgemeineren sbRandGeneral Verteilung. Diese Verteilung besteht aus n linearen Stücken während die Dreiecksverteilung lediglich 2 zeigt.
Literatur
Ein Anwendungsbeispiel:
Sarah Hewitt (2021). An Evaluation of Key Performance Indicators for Beef Herds.
(Externer Link!) https://eprints.nottingham.ac.uk/69382/1/S%20Hewitt%20Thesis%20corrections%2015_06_22.pdf
Appendix – Programmcode sbRandTriang
Bitte den Haftungsausschluss im Impressum beachten.
Option Explicit
Function sbRandTriang(dMin As Double, dMode As Double, _
dMax As Double, Optional dRandom = 1#) As Double
'Generates a random number, Triang distributed
'[see Vose: Risk Analysis, 2nd ed., p. 128]
'Source (EN): http://www.sulprobil.de/sbrandtriang_en/
'Source (DE): http://www.berndplumhoff.de/sbrandtriang_de/
'(C) (P) by Bernd Plumhoff 30-Aug-2024 PB V0.32
'Similar to @RISK's (C) RiskTriang function.
'sbRandTriang(minimum,mode,maximum) specifies a triangular
'distribution with three points — a minimum, a mode and
'a maximum. The skew of the triangular distribution is
'driven by the distance of the mode from the minimum and
'from the maximum. Reducing the distance from mode to
'minimum will increase the skew.
'Please ensure that you execute Randomize before you call
'this function for the first time.
Dim dRand As Double, dc_a As Double, db_a As Double
Dim dc_b As Double
If dMode < dMin Or dMax < dMode Then
sbRandTriang = CVErr(xlErrValue)
Exit Function
End If
If dMin = dMax Then
sbRandTriang = dMin 'Triangle is just one point
Exit Function
End If
dc_a = dMax - dMin
db_a = dMode - dMin
dc_b = dMax - dMode
If dRandom = 1# Then
dRand = Rnd()
Else
dRand = dRandom
End If
If dRand < db_a / dc_a Then
sbRandTriang = dMin + Sqr(dRand * db_a * dc_a)
Else
sbRandTriang = dMax - Sqr((1# - dRand) * dc_a * dc_b)
End If
End Function
Download
Bitte den Haftungsausschluss im Impressum beachten.
sbRandTriang.xlsm [53 KB Excel Datei, ohne jegliche Gewährleistung]