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.00400       0.167       0            0.447 initial-n… count…  8515
#>  2    0.554 0             0.101       0.343        0.730 initial-n… count…  8515
#>  3    0.346 0             0.209       0            0.725 initial-n… count…  8515
#>  4    0.652 0.00222       0.0612      0.530        0.773 initial-n… count…  8515
#>  5    0     0             0.0917      0            0.251 initial-n… count…  8515
#>  6    0.365 0.00456       0.124       0.0840       0.586 initial-n… count…  8515
#>  7    0.114 0.00985       0.164       0            0.473 initial-n… count…  8515
#>  8    0.554 0             0.109       0.313        0.795 initial-n… count…  8515
#>  9    0.346 0             0.217       0            0.838 initial-n… count…  8515
#> 10    0.652 0             0.0641      0.519        0.797 initial-n… count…  8515
#> 11    0     0             0.106       0            0.214 initial-n… count…  8515
#> 12    0.365 0.0129        0.144       0.0559       0.687 initial-n… count…  8515
#> 13    0.114 0.00912       0.181       0            0.531 initial-n… count…  8515
#> 14    0.554 0             0.109       0.346        0.823 initial-n… count…  8515
#> 15    0.346 0             0.249       0            0.821 initial-n… count…  8515
#> 16    0.652 0.0123        0.0577      0.498        0.764 initial-n… count…  8515
#> 17    0     0.00679       0.104       0            0.161 initial-n… count…  8515
#> 18    0.365 0             0.133       0.157        0.690 initial-n… count…  8515