-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
257 lines (232 loc) · 25.7 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
<!DOCTYPE html>
<!-- Generated by pkgdown: do not edit by hand --><html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Interpretable Machine Learning and Statistical Inference with Accumulated Local Effects (ALE) • ale</title>
<script src="deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link href="deps/bootstrap-5.3.1/bootstrap.min.css" rel="stylesheet">
<script src="deps/bootstrap-5.3.1/bootstrap.bundle.min.js"></script><link href="deps/font-awesome-6.5.2/css/all.min.css" rel="stylesheet">
<link href="deps/font-awesome-6.5.2/css/v4-shims.min.css" rel="stylesheet">
<script src="deps/headroom-0.11.0/headroom.min.js"></script><script src="deps/headroom-0.11.0/jQuery.headroom.min.js"></script><script src="deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js"></script><script src="deps/clipboard.js-2.0.11/clipboard.min.js"></script><script src="deps/search-1.0.0/autocomplete.jquery.min.js"></script><script src="deps/search-1.0.0/fuse.min.js"></script><script src="deps/search-1.0.0/mark.min.js"></script><!-- pkgdown --><script src="pkgdown.js"></script><meta property="og:title" content="Interpretable Machine Learning and Statistical Inference with Accumulated Local Effects (ALE)">
<meta name="description" content="Accumulated Local Effects (ALE) were initially developed as a model-agnostic approach for global explanations of the results of black-box machine learning algorithms. ALE has a key advantage over other approaches like partial dependency plots (PDP) and SHapley Additive exPlanations (SHAP): its values represent a clean functional decomposition of the model. As such, ALE values are not affected by the presence or absence of interactions among variables in a mode. Moreover, its computation is relatively rapid. This package reimplements the algorithms for calculating ALE data and develops highly interpretable visualizations for plotting these ALE values. It also extends the original ALE concept to add bootstrap-based confidence intervals and ALE-based statistics that can be used for statistical inference. For more details, see Okoli, Chitu. 2023. “Statistical Inference Using Machine Learning and Classical Techniques Based on Accumulated Local Effects (ALE).” arXiv. <arXiv:2310.09877>. <doi:10.48550/arXiv.2310.09877>.">
<meta property="og:description" content="Accumulated Local Effects (ALE) were initially developed as a model-agnostic approach for global explanations of the results of black-box machine learning algorithms. ALE has a key advantage over other approaches like partial dependency plots (PDP) and SHapley Additive exPlanations (SHAP): its values represent a clean functional decomposition of the model. As such, ALE values are not affected by the presence or absence of interactions among variables in a mode. Moreover, its computation is relatively rapid. This package reimplements the algorithms for calculating ALE data and develops highly interpretable visualizations for plotting these ALE values. It also extends the original ALE concept to add bootstrap-based confidence intervals and ALE-based statistics that can be used for statistical inference. For more details, see Okoli, Chitu. 2023. “Statistical Inference Using Machine Learning and Classical Techniques Based on Accumulated Local Effects (ALE).” arXiv. <arXiv:2310.09877>. <doi:10.48550/arXiv.2310.09877>.">
<meta property="og:image" content="https://tripartio.github.io/ale/logo.png">
</head>
<body>
<a href="#main" class="visually-hidden-focusable">Skip to contents</a>
<nav class="navbar navbar-expand-lg fixed-top bg-light" data-bs-theme="light" aria-label="Site navigation"><div class="container">
<a class="navbar-brand me-2" href="index.html">ale</a>
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">0.3.0.20250217</small>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div id="navbar" class="collapse navbar-collapse ms-3">
<ul class="navbar-nav me-auto">
<li class="nav-item"><a class="nav-link" href="reference/index.html">Reference</a></li>
<li class="nav-item dropdown">
<button class="nav-link dropdown-toggle" type="button" id="dropdown-articles" data-bs-toggle="dropdown" aria-expanded="false" aria-haspopup="true">Articles</button>
<ul class="dropdown-menu" aria-labelledby="dropdown-articles">
<li><a class="dropdown-item" href="articles/ale-ALEPlot.html">Comparison between ALEPlot and ale packages</a></li>
<li><a class="dropdown-item" href="articles/ale-intro.html">Introduction to the ale package</a></li>
<li><a class="dropdown-item" href="articles/ale-small-datasets.html">Analyzing small datasets (fewer than 2000 rows) with ALE</a></li>
<li><a class="dropdown-item" href="articles/ale-statistics.html">ALE-based statistics for statistical inference and effect sizes</a></li>
<li><a class="dropdown-item" href="articles/ale-x-datatypes.html">ale function handling of various datatypes for x</a></li>
</ul>
</li>
<li class="nav-item"><a class="nav-link" href="news/index.html">Changelog</a></li>
</ul>
<ul class="navbar-nav">
<li class="nav-item"><form class="form-inline" role="search">
<input class="form-control" type="search" name="search-input" id="search-input" autocomplete="off" aria-label="Search site" placeholder="Search for" data-search-index="search.json">
</form></li>
<li class="nav-item"><a class="external-link nav-link" href="https://github.com/tripartio/ale/" aria-label="GitHub"><span class="fa fab fa-github fa-lg"></span></a></li>
</ul>
</div>
</div>
</nav><div class="container template-home">
<div class="row">
<main id="main" class="col-md-9"><div class="section level1">
<div class="page-header">
<img src="logo.png" class="logo" alt=""><h1 id="ale-">ale
<a class="anchor" aria-label="anchor" href="#ale-"></a>
</h1>
</div>
<!-- badges: start -->
<p>Accumulated Local Effects (ALE) were initially developed as a <a href="https://www.doi.org/10.1111/rssb.12377" title="Apley, Daniel W., and Jingyu Zhu. 'Visualizing the effects of predictor variables in black box supervised learning models.' Journal of the Royal Statistical Society Series B: Statistical Methodology 82.4 (2020): 1059-1086" class="external-link">model-agnostic approach for global explanations of the results of black-box machine learning algorithms</a>. ALE has two primary advantages over other approaches like partial dependency plots (PDP) and SHapley Additive exPlanations (SHAP): its values are not affected by the presence of interactions among variables in a model and its computation is relatively rapid. This package reimplements the algorithms for calculating ALE data and develops highly interpretable visualizations for plotting these ALE values. It also extends the original ALE concept to add bootstrap-based confidence intervals and ALE-based statistics that can be used for statistical inference.</p>
<p>For more details, see Okoli, Chitu. 2023. “Statistical Inference Using Machine Learning and Classical Techniques Based on Accumulated Local Effects (ALE).” arXiv. <a href="https://doi.org/10.48550/arXiv.2310.09877" class="external-link uri">https://doi.org/10.48550/arXiv.2310.09877</a>.</p>
<p>The <a href="https://github.com/tripartio/ale" class="external-link">ale</a> package currently defines three main <a href="https://rconsortium.github.io/S7/" class="external-link">S7</a> classes:</p>
<ul>
<li>
<code>ALE</code>: data for 1D ALE (single variables) and 2D ALE (two-way interactions). ALE values may be bootstrapped.</li>
<li>
<code>ModelBoot</code>: bootstrap results an entire model, not just the ALE values. This function returns the bootstrapped model statistics and coefficients as well as the bootstrapped ALE values. This is the appropriate approach for models that have not been cross-validated.</li>
<li>
<code>ALEpDist</code>: a distribution object for calculating the p-values for ALE statistics when an <code>ALE</code> object is created.</li>
</ul>
<div class="section level2">
<h2 id="documentation">Documentation<a class="anchor" aria-label="anchor" href="#documentation"></a>
</h2>
<p>You can obtain direct help for any of the package’s user-facing functions with the R <code><a href="https://rdrr.io/r/utils/help.html" class="external-link">help()</a></code> function, e.g., <code><a href="reference/ale-package.html">help(ale)</a></code>. However, the most detailed documentation is found in the <strong><a href="https://tripartio.github.io/ale/">website for the most recent development version</a></strong>. There you can find several articles. We particularly recommend:</p>
<ul>
<li><a href="https://tripartio.github.io/ale/articles/ale-intro.html">Introduction to the <code>{ale}</code> package</a></li>
<li><a href="https://tripartio.github.io/ale/articles/ale-statistics.html">ALE-based statistics for statistical inference and effect sizes</a></li>
</ul>
</div>
<div class="section level2">
<h2 id="installation">Installation<a class="anchor" aria-label="anchor" href="#installation"></a>
</h2>
<p>You can obtain the official releases from <a href="https://CRAN.R-project.org/package=ale" class="external-link">CRAN</a>:</p>
<div class="sourceCode" id="cb1"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/utils/install.packages.html" class="external-link">install.packages</a></span><span class="op">(</span><span class="st">'ale'</span><span class="op">)</span></span></code></pre></div>
<p>The CRAN releases are extensively tested and should have relatively few bugs. However, note that this package is still in beta stage. For the <a href="https://github.com/tripartio/ale" class="external-link">ale</a> package, that means that there will occasionally be new features with changes in the function interface that might break the functionality of earlier versions. Please excuse us for this as we move towards a stable version that flexibly meets the needs of the broadest user base.</p>
<p>To get the most recent features, you can install the development version of ale from <a href="https://github.com/tripartio/ale" class="external-link">GitHub</a> with:</p>
<div class="sourceCode" id="cb2"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="co"># install.packages('pak')</span></span>
<span><span class="fu">pak</span><span class="fu">::</span><span class="fu"><a href="https://pak.r-lib.org/reference/pak.html" class="external-link">pak</a></span><span class="op">(</span><span class="st">'tripartio/ale'</span><span class="op">)</span></span></code></pre></div>
<p>The development version in the main branch of GitHub is always thoroughly checked. However, the documentation might not be fully up-to-date with the functionality.</p>
<p>There is one more optional but recommended setup option. To enable <strong>progress bars</strong> to see how long procedures will take, you should run the following code at the beginning of your R session:</p>
<div class="sourceCode" id="cb3"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="co"># Run this in an R console; it will not work directly within an R Markdown or Quarto block</span></span>
<span><span class="fu">progressr</span><span class="fu">::</span><span class="fu"><a href="https://progressr.futureverse.org/reference/handlers.html" class="external-link">handlers</a></span><span class="op">(</span>global <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span>
<span><span class="fu">progressr</span><span class="fu">::</span><span class="fu"><a href="https://progressr.futureverse.org/reference/handlers.html" class="external-link">handlers</a></span><span class="op">(</span><span class="st">'cli'</span><span class="op">)</span></span></code></pre></div>
<p>The <a href="https://github.com/tripartio/ale" class="external-link">ale</a> package will normally run this automatically for you the first time you execute a function from the package in an R session. To see how to configure this permanently, see <code><a href="reference/ale-package.html">help(ale)</a></code>.</p>
</div>
<div class="section level2">
<h2 id="usage">Usage<a class="anchor" aria-label="anchor" href="#usage"></a>
</h2>
<p>We will give two demonstrations of how to use the package: first, a simple demonstration of ALE plots, and second, a more sophisticated demonstration suitable for statistical inference with p-values. For both demonstrations, we begin by fitting a GAM model. We assume that this is a final deployment model that needs to be fitted to the entire dataset.</p>
<div class="sourceCode" id="cb4"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://github.com/tripartio/ale" class="external-link">ale</a></span><span class="op">)</span></span>
<span><span class="co">#> </span></span>
<span><span class="co">#> Attaching package: 'ale'</span></span>
<span><span class="co">#> The following object is masked from 'package:base':</span></span>
<span><span class="co">#> </span></span>
<span><span class="co">#> get</span></span>
<span></span>
<span><span class="co"># Sample 1000 rows from the ggplot2::diamonds dataset (for a simple example).</span></span>
<span><span class="fu"><a href="https://rdrr.io/r/base/Random.html" class="external-link">set.seed</a></span><span class="op">(</span><span class="fl">0</span><span class="op">)</span></span>
<span><span class="va">diamonds_sample</span> <span class="op"><-</span> <span class="fu">ggplot2</span><span class="fu">::</span><span class="va"><a href="https://ggplot2.tidyverse.org/reference/diamonds.html" class="external-link">diamonds</a></span><span class="op">[</span><span class="fu"><a href="https://rdrr.io/r/base/sample.html" class="external-link">sample</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/nrow.html" class="external-link">nrow</a></span><span class="op">(</span><span class="fu">ggplot2</span><span class="fu">::</span><span class="va"><a href="https://ggplot2.tidyverse.org/reference/diamonds.html" class="external-link">diamonds</a></span><span class="op">)</span>, <span class="fl">1000</span><span class="op">)</span>, <span class="op">]</span></span>
<span></span>
<span><span class="co"># Create a GAM model with flexible curves to predict diamond price</span></span>
<span><span class="co"># Smooth all numeric variables and include all other variables</span></span>
<span><span class="co"># Build model on training data, not on the full dataset.</span></span>
<span><span class="va">gam_diamonds</span> <span class="op"><-</span> <span class="fu">mgcv</span><span class="fu">::</span><span class="fu"><a href="https://rdrr.io/pkg/mgcv/man/gam.html" class="external-link">gam</a></span><span class="op">(</span></span>
<span> <span class="va">price</span> <span class="op">~</span> <span class="fu">s</span><span class="op">(</span><span class="va">carat</span><span class="op">)</span> <span class="op">+</span> <span class="fu">s</span><span class="op">(</span><span class="va">depth</span><span class="op">)</span> <span class="op">+</span> <span class="fu">s</span><span class="op">(</span><span class="va">table</span><span class="op">)</span> <span class="op">+</span> <span class="fu">s</span><span class="op">(</span><span class="va">x</span><span class="op">)</span> <span class="op">+</span> <span class="fu">s</span><span class="op">(</span><span class="va">y</span><span class="op">)</span> <span class="op">+</span> <span class="fu">s</span><span class="op">(</span><span class="va">z</span><span class="op">)</span> <span class="op">+</span></span>
<span> <span class="va">cut</span> <span class="op">+</span> <span class="va">color</span> <span class="op">+</span> <span class="va">clarity</span>,</span>
<span> data <span class="op">=</span> <span class="va">diamonds_sample</span></span>
<span><span class="op">)</span></span></code></pre></div>
<div class="section level3">
<h3 id="simple-demonstration">Simple demonstration<a class="anchor" aria-label="anchor" href="#simple-demonstration"></a>
</h3>
<p>For the simple demonstration, we directly create ALE data with the <code><a href="reference/ale.html">ALE()</a></code> function and then plot the <code>ggplot</code> plot objects.</p>
<div class="sourceCode" id="cb5"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="co"># Create ALE data</span></span>
<span><span class="va">ale_gam_diamonds</span> <span class="op"><-</span> <span class="fu"><a href="reference/ale.html">ALE</a></span><span class="op">(</span><span class="va">gam_diamonds</span><span class="op">)</span></span>
<span></span>
<span><span class="co"># Plot the ALE data</span></span>
<span><span class="fu"><a href="https://rdrr.io/r/graphics/plot.default.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">ale_gam_diamonds</span><span class="op">)</span> <span class="op">|></span> </span>
<span> <span class="fu"><a href="https://rdrr.io/r/base/print.html" class="external-link">print</a></span><span class="op">(</span>ncol <span class="op">=</span> <span class="fl">2</span><span class="op">)</span></span>
<span><span class="co">#> 'ALEPlots' object with 9 1D and 0 2D ALE plots.</span></span></code></pre></div>
<p><img src="reference/figures/README-simple-ale-1.png" width="100%"></p>
<p>For an explanation of these basic features, see the <a href="https://tripartio.github.io/ale/articles/ale-intro.html">introductory vignette</a>.</p>
</div>
<div class="section level3">
<h3 id="statistical-inference-with-ale">Statistical inference with ALE<a class="anchor" aria-label="anchor" href="#statistical-inference-with-ale"></a>
</h3>
<p>The statistical functionality of the <a href="https://github.com/tripartio/ale" class="external-link">ale</a> package is rather slow because it typically involves 100 bootstrap iterations and sometimes a 1,000 random simulations. Even though most functions in the package implement parallel processing by default, such procedures still take some time. So, this statistical demonstration gives you downloadable objects for a rapid demonstration.</p>
<p>First, we need to create a p-value distribution object so that the ALE statistics can be properly distinguished from random effects.</p>
<div class="sourceCode" id="cb6"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="co"># Create p_value distribution object</span></span>
<span></span>
<span><span class="co"># # To generate the code, uncomment the following lines.</span></span>
<span><span class="co"># # But it is slow because it retrains the model 100 times, so this vignette loads a pre-created p_value distribution object.</span></span>
<span><span class="co"># gam_diamonds_p_readme <- ALEpDist(</span></span>
<span><span class="co"># gam_diamonds, diamonds_sample,</span></span>
<span><span class="co"># 'precise slow',</span></span>
<span><span class="co"># # Normally should be default 1000, but just 100 for quicker demo</span></span>
<span><span class="co"># rand_it = 100</span></span>
<span><span class="co"># )</span></span>
<span><span class="co"># saveRDS(gam_diamonds_p_readme, file.choose())</span></span>
<span><span class="va">gam_diamonds_p_readme</span> <span class="op"><-</span> </span>
<span> <span class="fu"><a href="https://rdrr.io/r/base/connections.html" class="external-link">url</a></span><span class="op">(</span><span class="st">'https://github.com/tripartio/ale/raw/main/download/gam_diamonds_p_readme.rds'</span><span class="op">)</span> <span class="op">|></span> </span>
<span> <span class="fu"><a href="https://rdrr.io/r/base/readRDS.html" class="external-link">readRDS</a></span><span class="op">(</span><span class="op">)</span></span></code></pre></div>
<p>Now we can create bootstrapped ALE data and see some of the differences in the plots of bootstrapped ALE with p-values:</p>
<div class="sourceCode" id="cb7"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span><span class="co"># Create ALE data</span></span>
<span><span class="co"># # To generate the code, uncomment the following lines.</span></span>
<span><span class="co"># # But it is slow because it bootstraps the ALE data 100 times, so this vignette loads a pre-created ALE object.</span></span>
<span><span class="co"># ale_gam_diamonds_stats_readme <- ALE(</span></span>
<span><span class="co"># gam_diamonds,</span></span>
<span><span class="co"># p_values = gam_diamonds_p_readme,</span></span>
<span><span class="co"># boot_it = 100</span></span>
<span><span class="co"># )</span></span>
<span><span class="co"># saveRDS(ale_gam_diamonds_stats_readme, file.choose())</span></span>
<span><span class="va">ale_gam_diamonds_stats_readme</span> <span class="op"><-</span> </span>
<span> <span class="fu"><a href="https://rdrr.io/r/base/connections.html" class="external-link">url</a></span><span class="op">(</span><span class="st">'https://github.com/tripartio/ale/raw/main/download/ale_gam_diamonds_stats_readme.rds'</span><span class="op">)</span> <span class="op">|></span> </span>
<span> <span class="fu"><a href="https://rdrr.io/r/base/readRDS.html" class="external-link">readRDS</a></span><span class="op">(</span><span class="op">)</span></span>
<span></span>
<span><span class="co"># Plot the ALE data</span></span>
<span><span class="fu"><a href="https://rdrr.io/r/graphics/plot.default.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">ale_gam_diamonds_stats_readme</span><span class="op">)</span> <span class="op">|></span> </span>
<span> <span class="fu"><a href="https://rdrr.io/r/base/print.html" class="external-link">print</a></span><span class="op">(</span>ncol <span class="op">=</span> <span class="fl">2</span><span class="op">)</span></span>
<span><span class="co">#> 'ALEPlots' object with 9 1D and 0 2D ALE plots.</span></span></code></pre></div>
<p><img src="reference/figures/README-stats-ale-1.png" width="100%"></p>
<p>For a detailed explanation of how to interpret these plots, see the vignette on <a href="https://tripartio.github.io/ale/articles/ale-statistics.html">ALE-based statistics for statistical inference and effect sizes</a>.</p>
</div>
</div>
<div class="section level2">
<h2 id="getting-help">Getting help<a class="anchor" aria-label="anchor" href="#getting-help"></a>
</h2>
<p>If you find a bug, please report it on <a href="https://github.com/tripartio/ale/issues" class="external-link">GitHub</a>. If you have a question about how to use the package, you can post it on <a href="https://stackoverflow.com/questions/tagged/ale" class="external-link">Stack Overflow with the “ale” tag</a>. I will follow that tag, so I will try my best to respond quickly. However, be sure to always include a minimal reproducible example for your usage requests. If you cannot include your own dataset in the question, then use one of the built-in datasets to frame your help request: <code>var_cars</code> or <code>census</code>. You may also use <code><a href="https://ggplot2.tidyverse.org/reference/diamonds.html" class="external-link">ggplot2::diamonds</a></code> for a larger sample.</p>
</div>
</div>
</main><aside class="col-md-3"><div class="links">
<h2 data-toc-skip>Links</h2>
<ul class="list-unstyled">
<li><a href="https://cloud.r-project.org/package=ale" class="external-link">View on CRAN</a></li>
<li><a href="https://github.com/tripartio/ale/" class="external-link">Browse source code</a></li>
<li><a href="https://github.com/tripartio/ale/issues" class="external-link">Report a bug</a></li>
</ul>
</div>
<div class="license">
<h2 data-toc-skip>License</h2>
<ul class="list-unstyled">
<li><a href="LICENSE.html">Full license</a></li>
<li><small><a href="https://opensource.org/licenses/mit-license.php" class="external-link">MIT</a> + file <a href="LICENSE-text.html">LICENSE</a></small></li>
</ul>
</div>
<div class="citation">
<h2 data-toc-skip>Citation</h2>
<ul class="list-unstyled">
<li><a href="authors.html#citation">Citing ale</a></li>
</ul>
</div>
<div class="developers">
<h2 data-toc-skip>Developers</h2>
<ul class="list-unstyled">
<li>Chitu Okoli <br><small class="roles"> Author, maintainer </small> <a href="https://orcid.org/0000-0001-5574-7572" target="orcid.widget" aria-label="ORCID" class="external-link"><span class="fab fa-orcid orcid" aria-hidden="true"></span></a> </li>
</ul>
</div>
<div class="dev-status">
<h2 data-toc-skip>Dev status</h2>
<ul class="list-unstyled">
<li><a href="https://CRAN.R-project.org/package=ale" class="external-link"><img src="https://www.r-pkg.org/badges/version/ale" alt="CRAN status"></a></li>
<li><a href="https://lifecycle.r-lib.org/articles/stages.html#experimental" class="external-link"><img src="https://img.shields.io/badge/lifecycle-experimental-orange.svg" alt="Lifecycle: experimental"></a></li>
<li><a href="https://github.com/tripartio/ale/actions/workflows/R-CMD-check.yaml" class="external-link"><img src="https://github.com/tripartio/ale/actions/workflows/R-CMD-check.yaml/badge.svg" alt="R-CMD-check"></a></li>
<li><a href="https://app.codecov.io/gh/tripartio/ale" class="external-link"><img src="https://codecov.io/gh/tripartio/ale/graph/badge.svg" alt="Codecov test coverage"></a></li>
</ul>
</div>
</aside>
</div>
<footer><div class="pkgdown-footer-left">
<p>Developed by Chitu Okoli.</p>
</div>
<div class="pkgdown-footer-right">
<p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.1.1.</p>
</div>
</footer>
</div>
</body>
</html>