Der Simulationsgenerierungsknoten (Simulationsgenerierungsknoten) bietet eine einfache Möglichkeit, simulierte Daten zu generieren-entweder völlig neu unter Verwendung von benutzerdefinierten statistischen Verteilungen oder automatisch unter Verwendung der Verteilungen, die aus der Ausführung eines Simulationsanpassungsknotens (Simulationsanpassungsknoten) für vorhandene historische Daten stammen. Dies ist hilfreich, wenn Sie das Ergebnis eines Vorhersagemodells bei Unsicherheiten in den Modelleingaben auswerten wollen.
simgennode Eigenschaften |
Datentyp | Eigenschaftsbeschreibung |
---|---|---|
fields |
Strukturierte Eigenschaft | SVG-Beispiel |
correlations |
Strukturierte Eigenschaft | SVG-Beispiel |
keep_min_max_setting |
Boolesch | |
refit_correlations |
Boolesch | |
max_cases |
Ganze Zahl | Minimalwert ist 1.000, Maximalwert ist 2.147.483.647 |
create_iteration_field |
Boolesch | |
iteration_field_name |
Zeichenfolge | |
replicate_results |
Boolesch | |
random_seed |
Ganze Zahl | |
parameter_xml |
Zeichenfolge | Gibt den Parameter Xml als Zeichenfolge zurück. |
Beispiel für Felder
Hierbei handelt es sich um einen strukturierten Slotparameter mit der folgenden Syntax:
simgennode.setPropertyValue("fields", [
[field1, storage, locked, [distribution1], min, max],
[field2, storage, locked, [distribution2], min, max],
[field3, storage, locked, [distribution3], min, max]
])
distribution
ist eine Deklaration des Verteilungsnamens gefolgt von einer Liste mit Paaren aus Attributnamen und -werten. Jede Verteilung ist folgendermaßen definiert:
[distributionname, [[par1], [par2], [par3]]]
simgennode = modeler.script.stream().createAt("simgen", u"Sim Gen", 726, 322)
simgennode.setPropertyValue("fields", [["Age", "integer", False, ["Uniform",[["min","1"],["max","2"]]], "", ""]])
Sie können z. B. das folgende Script verwenden, um einen Knoten zu erstellen, der ein einzelnes Feld mit einer Binomialverteilung generiert:
simgen_node1 = modeler.script.stream().createAt("simgen", u"Sim Gen", 200, 200)
simgen_node1.setPropertyValue("fields", [["Education", "Real", False, ["Binomial", [["n", 32],
["prob", 0.7]]], "", ""]])
Die Binomialverteilung verwendet zwei Parameter: n
undprob
. Da die Binomialverteilung Mindest- und Maximalwerte nicht unterstützt, werden sie als leere Zeichenfolge bereitgestellt.
distribution
nicht direkt festlegen; Sie verwenden es zusammen mit der Eigenschaft fields
.Im folgenden Beispiel werden alle möglichen Verteilungstypen gezeigt. Beachten Sie, dass der Schwellenwert als thresh
in NegativeBinomialFailures
und NegativeBinomialTrial
eingegeben wird.
stream = modeler.script.stream()
simgennode = stream.createAt("simgen", u"Sim Gen", 200, 200)
beta_dist = ["Field1", "Real", False, ["Beta",[["shape1","1"],["shape2","2"]]], "", ""]
binomial_dist = ["Field2", "Real", False, ["Binomial",[["n" ,"1"],["prob","1"]]], "", ""]
categorical_dist = ["Field3", "String", False, ["Categorical", [["A",0.3],["B",0.5],["C",0.2]]], "", ""]
dice_dist = ["Field4", "Real", False, ["Dice", [["1" ,"0.5"],["2","0.5"]]], "", ""]
exponential_dist = ["Field5", "Real", False, ["Exponential", [["scale","1"]]], "", ""]
fixed_dist = ["Field6", "Real", False, ["Fixed", [["value","1" ]]], "", ""]
gamma_dist = ["Field7", "Real", False, ["Gamma", [["scale","1"],["shape"," 1"]]], "", ""]
lognormal_dist = ["Field8", "Real", False, ["Lognormal", [["a","1"],["b","1" ]]], "", ""]
negbinomialfailures_dist = ["Field9", "Real", False, ["NegativeBinomialFailures",[["prob","0.5"],["thresh","1"]]], "", ""]
negbinomialtrial_dist = ["Field10", "Real", False, ["NegativeBinomialTrials",[["prob","0.2"],["thresh","1"]]], "", ""]
normal_dist = ["Field11", "Real", False, ["Normal", [["mean","1"] ,["stddev","2"]]], "", ""]
poisson_dist = ["Field12", "Real", False, ["Poisson", [["mean","1"]]], "", ""]
range_dist = ["Field13", "Real", False, ["Range", [["BEGIN","[1,3]"] ,["END","[2,4]"],["PROB","[[0.5],[0.5]]"]]], "", ""]
triangular_dist = ["Field14", "Real", False, ["Triangular", [["min","0"],["max","1"],["mode","1"]]], "", ""]
uniform_dist = ["Field15", "Real", False, ["Uniform", [["min","1"],["max","2"]]], "", ""]
weibull_dist = ["Field16", "Real", False, ["Weibull", [["a","0"],["b","1 "],["c","1"]]], "", ""]
simgennode.setPropertyValue("fields", [\
beta_dist, \
binomial_dist, \
categorical_dist, \
dice_dist, \
exponential_dist, \
fixed_dist, \
gamma_dist, \
lognormal_dist, \
negbinomialfailures_dist, \
negbinomialtrial_dist, \
normal_dist, \
poisson_dist, \
range_dist, \
triangular_dist, \
uniform_dist, \
weibull_dist
])
Beispiel für Korrelationen
Hierbei handelt es sich um einen strukturierten Slotparameter mit der folgenden Syntax:
simgennode.setPropertyValue("correlations", [
[field1, field2, correlation],
[field1, field3, correlation],
[field2, field3, correlation]
])
Die Korrelation kann eine beliebige Zahl zwischen +1
und -1
sein. Sie können beliebig viele Korrelationen angeben. Jede nicht angegebene Korrelation wird auf Null gesetzt. Wenn Felder unbekannt sind, sollte der Korrelationswert in der Korrelationsmatrix (oder Tabelle) festgelegt werden. Wenn es unbekannte Felder gibt, kann der Knoten nicht ausgeführt werden.