Skip to contents

Analyze NetLogo simulation output

Usage

analyze_nl(nl, metrics = getexp(nl, "metrics"), funs = list(mean = mean))

Arguments

nl

nl object

metrics

vector of strings defining metric columns for evaluation. Defaults to metrics of the experiment within the nl object

funs

list with the summary metrics for the sensitivity results

Value

analysis summary tibble

Details

The analyze_nl function runs basic analyses on NetLogo simulation output. In order to execute this function, simulation output needs to be attached to the simdesign first with setsim(nl, "output") <- results.

analyze_nl calls different post-processing analysis functions, depending on the specified method in the simdesign object of the nl object.

The following simdesign are currently supported:

simdesign_ff

Calls analyze_ff. The function calculates aggregated output metrics by dropping random seeds and aggregating values with the provided functions.

simdesign_lhs

Calls analyze_lhs. The function calculates aggregated output metrics by dropping random seeds and aggregating values with the provided functions.

simdesign_sobol

Calls analyze_sobol. The function calculates sobol sensitivity indices from the output results using the sensitivity package.

simdesign_sobol2007

Calls analyze_sobol2007. The function calculates sobol sensitivity indices from the output results using the sensitivity package.

simdesign_soboljansen

Calls analyze_soboljansen. The function calculates sobol sensitivity indices from the output results using the sensitivity package.

simdesign_morris

Calls analyze_morris. The function calculates morris sensitivity indices from the output results using the sensitivity package.

simdesign_eFast

Calls analyze_eFast. The function calculates eFast sensitivity indices from the output results using the sensitivity package.

For the following simdesign no postprocessing analysis function has been implemented yet:

simdesign_simple, simdesign_distinct, simdesign_GenSA, simdesign_GenAlg

Examples


# Load nl object including output data from testdata
nl <- nl_sobol

# Define aggregation measurements:
myfuns <- list(mean=mean, sd=sd, min=min, max=max)

# Calculate sensitivity indices:
analyze_nl(nl, funs = myfuns)
#> [1] "No missing combinations detected!"
#> # A tibble: 18 × 8
#>    original    bias `std. error` `min. c.i.` `max. c.i.` parameter  metric  seed
#>       <dbl>   <dbl>        <dbl>       <dbl>       <dbl> <chr>      <chr>  <dbl>
#>  1    0.114 0             0.155       0            0.419 initial-n… count…  8515
#>  2    0.554 0.00575       0.107       0.287        0.741 initial-n… count…  8515
#>  3    0.346 0             0.214       0            0.820 initial-n… count…  8515
#>  4    0.652 0             0.0662      0.493        0.786 initial-n… count…  8515
#>  5    0     0             0.0968      0            0.199 initial-n… count…  8515
#>  6    0.365 0.0157        0.133       0.0677       0.625 initial-n… count…  8515
#>  7    0.114 0             0.170       0            0.473 initial-n… count…  8515
#>  8    0.554 0             0.108       0.380        0.803 initial-n… count…  8515
#>  9    0.346 0.0202        0.234       0            0.824 initial-n… count…  8515
#> 10    0.652 0.00985       0.0561      0.539        0.768 initial-n… count…  8515
#> 11    0     0             0.0938      0            0.250 initial-n… count…  8515
#> 12    0.365 0.00540       0.117       0.0832       0.573 initial-n… count…  8515
#> 13    0.114 0             0.166       0            0.455 initial-n… count…  8515
#> 14    0.554 0             0.121       0.361        0.854 initial-n… count…  8515
#> 15    0.346 0.0276        0.230       0            0.836 initial-n… count…  8515
#> 16    0.652 0.0143        0.0615      0.507        0.742 initial-n… count…  8515
#> 17    0     0.0117        0.111       0            0.177 initial-n… count…  8515
#> 18    0.365 0             0.142       0.153        0.709 initial-n… count…  8515