Propriedades de simgennode
O Nó Simulation Gerar (Sim Gen) fornece uma maneira fácil de gerar dados simulados-seja do zero usando distribuições estatísticas especificadas pelo usuário ou usando automaticamente as distribuições obtidas a partir de executar um nó Simulation Fitting (Sim Fit) em dados históricos existentes. Isso é útil quando quiser avaliar o resultado de um modelo preditivo quando houver incerteza nas entradas do modelo.
propriedades simgennode |
Tipo de dados | Descrição da propriedade |
|---|---|---|
fields |
Propriedade estruturada | Ver exemplo |
correlations |
Propriedade estruturada | Ver exemplo |
keep_min_max_setting |
Booleano | |
refit_correlations |
Booleano | |
max_cases |
Número inteiro | O valor mínimo é 1000 e o valor máximo é 2.147.483.647 |
create_iteration_field |
Booleano | |
iteration_field_name |
sequência | |
replicate_results |
Booleano | |
random_seed |
Número inteiro | |
parameter_xml |
sequência | Retorna o parâmetro Xml como uma sequência |
Exemplo de campos
Este é um parâmetro de slot estruturado com a sintaxe a seguir:
simgennode.setPropertyValue("fields", [
[field1, storage, locked, [distribution1], min, max],
[field2, storage, locked, [distribution2], min, max],
[field3, storage, locked, [distribution3], min, max]
])
distribution é uma declaração do nome de distribuição seguida de uma lista que contém pares de nomes de atributos e valores. Cada distribuição é definida da seguinte maneira:
[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"]]], "", ""]])
Por exemplo, para criar um nó que gera um campo único com uma distribuição binomial, é possível utilizar o script a seguir:
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]]], "", ""]])
A Distribuição binomial leva dois parâmetros: n e prob. Como o binomial não
suporta valores mínimos e máximos, eles são fornecidos como uma sequência vazia.
distribution diretamente; você usa-o em conjunto com a propriedade fields .Os exemplos a seguir mostram todos os tipos de distribuição possíveis. Observe que o limite é inserido como thresh em ambos NegativeBinomialFailures e NegativeBinomialTrial.
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
])
exemplo de correlações
Este é um parâmetro de slot estruturado com a sintaxe a seguir:
simgennode.setPropertyValue("correlations", [
[field1, field2, correlation],
[field1, field3, correlation],
[field2, field3, correlation]
])
A correlação pode ser qualquer número entre +1 e -1. É possível especificar quantas correlações desejar. As correlações não especificadas são configuradas para zero. Se quaisquer campos forem desconhecidos, o valor de correlação deverá ser configurado na matriz de correlação (ou tabela). Quando há campos desconhecidos, não é possível executar o nó.