mirror of
https://github.com/msberends/AMR.git
synced 2025-07-05 11:08:41 +02:00
247 lines
33 KiB
HTML
247 lines
33 KiB
HTML
<!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>AMR Extensions for Tidymodels — amr-tidymodels • AMR (for R)</title><!-- favicons --><link rel="icon" type="image/png" sizes="96x96" href="../favicon-96x96.png"><link rel="icon" type="”image/svg+xml”" href="../favicon.svg"><link rel="apple-touch-icon" sizes="180x180" href="../apple-touch-icon.png"><link rel="icon" sizes="any" href="../favicon.ico"><link rel="manifest" href="../site.webmanifest"><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/Lato-0.4.10/font.css" rel="stylesheet"><link href="../deps/Fira_Code-0.4.10/font.css" rel="stylesheet"><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><link href="../extra.css" rel="stylesheet"><script src="../extra.js"></script><meta property="og:title" content="AMR Extensions for Tidymodels — amr-tidymodels"><meta name="description" content="This family of functions allows using AMR-specific data types such as &lt;mic&gt; and &lt;sir&gt; inside tidymodels pipelines."><meta property="og:description" content="This family of functions allows using AMR-specific data types such as &lt;mic&gt; and &lt;sir&gt; inside tidymodels pipelines."><meta property="og:image" content="https://amr-for-r.org/logo.svg"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css" integrity="sha384-nB0miv6/jRmo5UMMR1wu3Gz6NLsoTkbqJghGIsx//Rlm+ZU03BU6SQNC66uf4l5+" crossorigin="anonymous"><script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.js" integrity="sha384-7zkQWkzuo3B5mTepMUcHkMB5jZaolc2xDwL6VFqjFALcbeS9Ggm/Yr2r3Dy4lfFg" crossorigin="anonymous"></script><script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/contrib/auto-render.min.js" integrity="sha384-43gviWU0YVjaDtb/GhzOouOXtZMP/7XUzwPTstBeZFe/+rCMvRwr4yROQP43s0Xk" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script></head><body>
|
||
<a href="#main" class="visually-hidden-focusable">Skip to contents</a>
|
||
|
||
|
||
<nav class="navbar navbar-expand-lg fixed-top bg-primary" data-bs-theme="dark" aria-label="Site navigation"><div class="container">
|
||
|
||
<a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
|
||
|
||
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">3.0.0.9004</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 dropdown">
|
||
<button class="nav-link dropdown-toggle" type="button" id="dropdown-how-to" data-bs-toggle="dropdown" aria-expanded="false" aria-haspopup="true"><span class="fa fa-question-circle"></span> How to</button>
|
||
<ul class="dropdown-menu" aria-labelledby="dropdown-how-to"><li><a class="dropdown-item" href="../articles/AMR.html"><span class="fa fa-directions"></span> Conduct AMR Analysis</a></li>
|
||
<li><a class="dropdown-item" href="../reference/antibiogram.html"><span class="fa fa-file-prescription"></span> Generate Antibiogram (Trad./Syndromic/WISCA)</a></li>
|
||
<li><a class="dropdown-item" href="../articles/AMR_with_tidymodels.html"><span class="fa fa-square-root-variable"></span> Use AMR for Predictive Modelling (tidymodels)</a></li>
|
||
<li><a class="dropdown-item" href="../articles/datasets.html"><span class="fa fa-database"></span> Download Data Sets for Own Use</a></li>
|
||
<li><a class="dropdown-item" href="../reference/AMR-options.html"><span class="fa fa-gear"></span> Set User- Or Team-specific Package Settings</a></li>
|
||
<li><a class="dropdown-item" href="../articles/PCA.html"><span class="fa fa-compress"></span> Conduct Principal Component Analysis for AMR</a></li>
|
||
<li><a class="dropdown-item" href="../reference/mdro.html"><span class="fa fa-skull-crossbones"></span> Determine Multi-Drug Resistance (MDR)</a></li>
|
||
<li><a class="dropdown-item" href="../articles/WHONET.html"><span class="fa fa-globe-americas"></span> Work with WHONET Data</a></li>
|
||
<li><a class="dropdown-item" href="../articles/EUCAST.html"><span class="fa fa-exchange-alt"></span> Apply EUCAST Rules</a></li>
|
||
<li><a class="dropdown-item" href="../reference/mo_property.html"><span class="fa fa-bug"></span> Get Taxonomy of a Microorganism</a></li>
|
||
<li><a class="dropdown-item" href="../reference/ab_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antibiotic Drug</a></li>
|
||
<li><a class="dropdown-item" href="../reference/av_property.html"><span class="fa fa-capsules"></span> Get Properties of an Antiviral Drug</a></li>
|
||
</ul></li>
|
||
<li class="nav-item"><a class="nav-link" href="../articles/AMR_for_Python.html"><span class="fa fab fa-python"></span> AMR for Python</a></li>
|
||
<li class="active nav-item"><a class="nav-link" href="../reference/index.html"><span class="fa fa-book-open"></span> Manual</a></li>
|
||
<li class="nav-item"><a class="nav-link" href="../authors.html"><span class="fa fa-users"></span> Authors</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="nav-link" href="../news/index.html"><span class="fa fa-newspaper"></span> Changelog</a></li>
|
||
<li class="nav-item"><a class="external-link nav-link" href="https://github.com/msberends/AMR"><span class="fa fa-github"></span> Source Code</a></li>
|
||
</ul></div>
|
||
|
||
|
||
</div>
|
||
</nav><div class="container template-reference-topic">
|
||
<div class="row">
|
||
<main id="main" class="col-md-9"><div class="page-header">
|
||
<img src="../logo.svg" class="logo" alt=""><h1>AMR Extensions for Tidymodels</h1>
|
||
<small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/main/R/tidymodels.R" class="external-link"><code>R/tidymodels.R</code></a></small>
|
||
<div class="d-none name"><code>amr-tidymodels.Rd</code></div>
|
||
</div>
|
||
|
||
<div class="ref-description section level2">
|
||
<p>This family of functions allows using AMR-specific data types such as <code><mic></code> and <code><sir></code> inside <code>tidymodels</code> pipelines.</p>
|
||
</div>
|
||
|
||
<div class="section level2">
|
||
<h2 id="ref-usage">Usage<a class="anchor" aria-label="anchor" href="#ref-usage"></a></h2>
|
||
<div class="sourceCode"><pre class="sourceCode r"><code><span><span class="fu">all_mic</span><span class="op">(</span><span class="op">)</span></span>
|
||
<span></span>
|
||
<span><span class="fu">all_mic_predictors</span><span class="op">(</span><span class="op">)</span></span>
|
||
<span></span>
|
||
<span><span class="fu">all_sir</span><span class="op">(</span><span class="op">)</span></span>
|
||
<span></span>
|
||
<span><span class="fu">all_sir_predictors</span><span class="op">(</span><span class="op">)</span></span>
|
||
<span></span>
|
||
<span><span class="fu">step_mic_log2</span><span class="op">(</span><span class="va">recipe</span>, <span class="va">...</span>, role <span class="op">=</span> <span class="cn">NA</span>, trained <span class="op">=</span> <span class="cn">FALSE</span>, columns <span class="op">=</span> <span class="cn">NULL</span>,</span>
|
||
<span> skip <span class="op">=</span> <span class="cn">FALSE</span>, id <span class="op">=</span> <span class="fu">recipes</span><span class="fu">::</span><span class="fu"><a href="https://recipes.tidymodels.org/reference/rand_id.html" class="external-link">rand_id</a></span><span class="op">(</span><span class="st">"mic_log2"</span><span class="op">)</span><span class="op">)</span></span>
|
||
<span></span>
|
||
<span><span class="fu">step_sir_numeric</span><span class="op">(</span><span class="va">recipe</span>, <span class="va">...</span>, role <span class="op">=</span> <span class="cn">NA</span>, trained <span class="op">=</span> <span class="cn">FALSE</span>, columns <span class="op">=</span> <span class="cn">NULL</span>,</span>
|
||
<span> skip <span class="op">=</span> <span class="cn">FALSE</span>, id <span class="op">=</span> <span class="fu">recipes</span><span class="fu">::</span><span class="fu"><a href="https://recipes.tidymodels.org/reference/rand_id.html" class="external-link">rand_id</a></span><span class="op">(</span><span class="st">"sir_numeric"</span><span class="op">)</span><span class="op">)</span></span></code></pre></div>
|
||
</div>
|
||
|
||
<div class="section level2">
|
||
<h2 id="arguments">Arguments<a class="anchor" aria-label="anchor" href="#arguments"></a></h2>
|
||
|
||
|
||
<dl><dt id="arg-recipe">recipe<a class="anchor" aria-label="anchor" href="#arg-recipe"></a></dt>
|
||
<dd><p>A recipe object. The step will be added to the sequence of
|
||
operations for this recipe.</p></dd>
|
||
|
||
|
||
<dt id="arg--">...<a class="anchor" aria-label="anchor" href="#arg--"></a></dt>
|
||
<dd><p>One or more selector functions to choose variables for this step.
|
||
See <code><a href="https://recipes.tidymodels.org/reference/selections.html" class="external-link">selections()</a></code> for more details.</p></dd>
|
||
|
||
|
||
<dt id="arg-role">role<a class="anchor" aria-label="anchor" href="#arg-role"></a></dt>
|
||
<dd><p>Not used by this step since no new variables are created.</p></dd>
|
||
|
||
|
||
<dt id="arg-trained">trained<a class="anchor" aria-label="anchor" href="#arg-trained"></a></dt>
|
||
<dd><p>A logical to indicate if the quantities for preprocessing have
|
||
been estimated.</p></dd>
|
||
|
||
|
||
<dt id="arg-skip">skip<a class="anchor" aria-label="anchor" href="#arg-skip"></a></dt>
|
||
<dd><p>A logical. Should the step be skipped when the recipe is baked by
|
||
<code><a href="https://recipes.tidymodels.org/reference/bake.html" class="external-link">bake()</a></code>? While all operations are baked when <code><a href="https://recipes.tidymodels.org/reference/prep.html" class="external-link">prep()</a></code> is run, some
|
||
operations may not be able to be conducted on new data (e.g. processing the
|
||
outcome variable(s)). Care should be taken when using <code>skip = TRUE</code> as it
|
||
may affect the computations for subsequent operations.</p></dd>
|
||
|
||
|
||
<dt id="arg-id">id<a class="anchor" aria-label="anchor" href="#arg-id"></a></dt>
|
||
<dd><p>A character string that is unique to this step to identify it.</p></dd>
|
||
|
||
</dl></div>
|
||
<div class="section level2">
|
||
<h2 id="details">Details<a class="anchor" aria-label="anchor" href="#details"></a></h2>
|
||
<p>You can read more in our online <a href="https://amr-for-r.org/articles/AMR_with_tidymodels.html">AMR with tidymodels introduction</a>.</p>
|
||
<p>Tidyselect helpers include:</p><ul><li><p><code>all_mic()</code> and <code>all_mic_predictors()</code> to select <code><mic></code> columns</p></li>
|
||
<li><p><code>all_sir()</code> and <code>all_sir_predictors()</code> to select <code><sir></code> columns</p></li>
|
||
</ul><p>Pre-processing pipeline steps include:</p><ul><li><p><code>step_mic_log2()</code> to convert MIC columns to numeric (via <code><a href="https://rdrr.io/r/base/numeric.html" class="external-link">as.numeric()</a></code>) and apply a log2 transform, to be used with <code>all_mic_predictors()</code></p></li>
|
||
<li><p><code>step_sir_numeric()</code> to convert SIR columns to numeric (via <code><a href="https://rdrr.io/r/base/numeric.html" class="external-link">as.numeric()</a></code>), to be used with <code>all_sir_predictors()</code>: <code>"S"</code> = 1, <code>"I"</code>/<code>"SDD"</code> = 2, <code>"R"</code> = 3. All other values are rendered <code>NA</code>. Keep this in mind for further processing, especially if the model does not allow for <code>NA</code> values.</p></li>
|
||
</ul><p>These steps integrate with <code><a href="https://recipes.tidymodels.org/reference/recipe.html" class="external-link">recipes::recipe()</a></code> and work like standard preprocessing steps. They are useful for preparing data for modelling, especially with classification models.</p>
|
||
</div>
|
||
<div class="section level2">
|
||
<h2 id="see-also">See also<a class="anchor" aria-label="anchor" href="#see-also"></a></h2>
|
||
<div class="dont-index"><p><code><a href="https://recipes.tidymodels.org/reference/recipe.html" class="external-link">recipes::recipe()</a></code>, <code><a href="as.mic.html">as.mic()</a></code>, <code><a href="as.sir.html">as.sir()</a></code></p></div>
|
||
</div>
|
||
|
||
<div class="section level2">
|
||
<h2 id="ref-examples">Examples<a class="anchor" aria-label="anchor" href="#ref-examples"></a></h2>
|
||
<div class="sourceCode"><pre class="sourceCode r"><code><span class="r-in"><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://tidymodels.tidymodels.org" class="external-link">tidymodels</a></span><span class="op">)</span></span></span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> ── <span style="font-weight: bold;">Attaching packages</span> ────────────────────────────────────── tidymodels 1.3.0 ──</span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> <span style="color: #00BB00;">✔</span> <span style="color: #0000BB;">broom </span> 1.0.8 <span style="color: #00BB00;">✔</span> <span style="color: #0000BB;">rsample </span> 1.3.0</span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> <span style="color: #00BB00;">✔</span> <span style="color: #0000BB;">dials </span> 1.4.0 <span style="color: #00BB00;">✔</span> <span style="color: #0000BB;">tibble </span> 3.3.0</span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> <span style="color: #00BB00;">✔</span> <span style="color: #0000BB;">infer </span> 1.0.8 <span style="color: #00BB00;">✔</span> <span style="color: #0000BB;">tidyr </span> 1.3.1</span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> <span style="color: #00BB00;">✔</span> <span style="color: #0000BB;">modeldata </span> 1.4.0 <span style="color: #00BB00;">✔</span> <span style="color: #0000BB;">tune </span> 1.3.0</span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> <span style="color: #00BB00;">✔</span> <span style="color: #0000BB;">parsnip </span> 1.3.2 <span style="color: #00BB00;">✔</span> <span style="color: #0000BB;">workflows </span> 1.2.0</span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> <span style="color: #00BB00;">✔</span> <span style="color: #0000BB;">purrr </span> 1.0.4 <span style="color: #00BB00;">✔</span> <span style="color: #0000BB;">workflowsets</span> 1.1.1</span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> <span style="color: #00BB00;">✔</span> <span style="color: #0000BB;">recipes </span> 1.3.1 <span style="color: #00BB00;">✔</span> <span style="color: #0000BB;">yardstick </span> 1.3.2</span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> ── <span style="font-weight: bold;">Conflicts</span> ───────────────────────────────────────── tidymodels_conflicts() ──</span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> <span style="color: #BB0000;">✖</span> <span style="color: #0000BB;">purrr</span>::<span style="color: #00BB00;">discard()</span> masks <span style="color: #0000BB;">scales</span>::discard()</span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> <span style="color: #BB0000;">✖</span> <span style="color: #0000BB;">dplyr</span>::<span style="color: #00BB00;">filter()</span> masks <span style="color: #0000BB;">stats</span>::filter()</span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> <span style="color: #BB0000;">✖</span> <span style="color: #0000BB;">dplyr</span>::<span style="color: #00BB00;">lag()</span> masks <span style="color: #0000BB;">stats</span>::lag()</span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> <span style="color: #BB0000;">✖</span> <span style="color: #0000BB;">recipes</span>::<span style="color: #00BB00;">step()</span> masks <span style="color: #0000BB;">stats</span>::step()</span>
|
||
<span class="r-in"><span></span></span>
|
||
<span class="r-in"><span><span class="co"># The below approach formed the basis for this paper: DOI 10.3389/fmicb.2025.1582703</span></span></span>
|
||
<span class="r-in"><span><span class="co"># Presence of ESBL genes was predicted based on raw MIC values.</span></span></span>
|
||
<span class="r-in"><span></span></span>
|
||
<span class="r-in"><span></span></span>
|
||
<span class="r-in"><span><span class="co"># example data set in the AMR package</span></span></span>
|
||
<span class="r-in"><span><span class="va">esbl_isolates</span></span></span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #949494;"># A tibble: 500 × 19</span></span>
|
||
<span class="r-out co"><span class="r-pr">#></span> esbl genus AMC AMP TZP CXM FOX CTX CAZ GEN TOB TMP SXT</span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #949494; font-style: italic;"><lgl></span> <span style="color: #949494; font-style: italic;"><chr></span> <span style="color: #949494; font-style: italic;"><mic></span> <span style="color: #949494; font-style: italic;"><mic></span> <span style="color: #949494; font-style: italic;"><mic></span> <span style="color: #949494; font-style: italic;"><mic></span> <span style="color: #949494; font-style: italic;"><mic></span> <span style="color: #949494; font-style: italic;"><mic></span> <span style="color: #949494; font-style: italic;"><mic></span> <span style="color: #949494; font-style: italic;"><mic></span> <span style="color: #949494; font-style: italic;"><mic></span> <span style="color: #949494; font-style: italic;"><mic></span> <span style="color: #949494; font-style: italic;"><mic></span></span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #BCBCBC;"> 1</span> FALSE Esch… 32 32 4 64 64 8<span style="color: #BBBBBB;">.00</span> 8<span style="color: #BBBBBB;">.00</span> 1 1 16<span style="color: #BBBBBB;">.0</span> 20</span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #BCBCBC;"> 2</span> FALSE Esch… 32 32 4 64 64 4<span style="color: #BBBBBB;">.00</span> 8<span style="color: #BBBBBB;">.00</span> 1 1 16<span style="color: #BBBBBB;">.0</span> 320</span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #BCBCBC;"> 3</span> FALSE Esch… 4 2 64 8 4 8<span style="color: #BBBBBB;">.00</span> 0.12 16 16 0.5 20</span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #BCBCBC;"> 4</span> FALSE Kleb… 32 32 16 64 64 8<span style="color: #BBBBBB;">.00</span> 8<span style="color: #BBBBBB;">.00</span> 1 1 0.5 20</span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #BCBCBC;"> 5</span> FALSE Esch… 32 32 4 4 4 0.25 2<span style="color: #BBBBBB;">.00</span> 1 1 16<span style="color: #BBBBBB;">.0</span> 320</span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #BCBCBC;"> 6</span> FALSE Citr… 32 32 16 64 64 64<span style="color: #BBBBBB;">.00</span> 32<span style="color: #BBBBBB;">.00</span> 1 1 0.5 20</span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #BCBCBC;"> 7</span> FALSE Morg… 32 32 4 64 64 16<span style="color: #BBBBBB;">.00</span> 2<span style="color: #BBBBBB;">.00</span> 1 1 0.5 20</span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #BCBCBC;"> 8</span> FALSE Prot… 16 32 4 1 4 8<span style="color: #BBBBBB;">.00</span> 0.12 1 1 16<span style="color: #BBBBBB;">.0</span> 320</span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #BCBCBC;"> 9</span> FALSE Ente… 32 32 8 64 64 32<span style="color: #BBBBBB;">.00</span> 4<span style="color: #BBBBBB;">.00</span> 1 1 0.5 20</span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #BCBCBC;">10</span> FALSE Citr… 32 32 32 64 64 8<span style="color: #BBBBBB;">.00</span> 64<span style="color: #BBBBBB;">.00</span> 1 1 16<span style="color: #BBBBBB;">.0</span> 320</span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #949494;"># ℹ 490 more rows</span></span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #949494;"># ℹ 6 more variables: NIT <mic>, FOS <mic>, CIP <mic>, IPM <mic>, MEM <mic>,</span></span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #949494;"># COL <mic></span></span>
|
||
<span class="r-in"><span></span></span>
|
||
<span class="r-in"><span><span class="co"># Prepare a binary outcome and convert to ordered factor</span></span></span>
|
||
<span class="r-in"><span><span class="va">data</span> <span class="op"><-</span> <span class="va">esbl_isolates</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span></span>
|
||
<span class="r-in"><span> <span class="fu"><a href="https://dplyr.tidyverse.org/reference/mutate.html" class="external-link">mutate</a></span><span class="op">(</span>esbl <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/factor.html" class="external-link">factor</a></span><span class="op">(</span><span class="va">esbl</span>, levels <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="cn">FALSE</span>, <span class="cn">TRUE</span><span class="op">)</span>, ordered <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span><span class="op">)</span></span></span>
|
||
<span class="r-in"><span></span></span>
|
||
<span class="r-in"><span><span class="co"># Split into training and testing sets</span></span></span>
|
||
<span class="r-in"><span><span class="va">split</span> <span class="op"><-</span> <span class="fu">initial_split</span><span class="op">(</span><span class="va">data</span><span class="op">)</span></span></span>
|
||
<span class="r-in"><span><span class="va">training_data</span> <span class="op"><-</span> <span class="fu">training</span><span class="op">(</span><span class="va">split</span><span class="op">)</span></span></span>
|
||
<span class="r-in"><span><span class="va">testing_data</span> <span class="op"><-</span> <span class="fu">testing</span><span class="op">(</span><span class="va">split</span><span class="op">)</span></span></span>
|
||
<span class="r-in"><span></span></span>
|
||
<span class="r-in"><span><span class="co"># Create and prep a recipe with MIC log2 transformation</span></span></span>
|
||
<span class="r-in"><span><span class="va">mic_recipe</span> <span class="op"><-</span> <span class="fu">recipe</span><span class="op">(</span><span class="va">esbl</span> <span class="op">~</span> <span class="va">.</span>, data <span class="op">=</span> <span class="va">training_data</span><span class="op">)</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span></span>
|
||
<span class="r-in"><span> <span class="co"># Optionally remove non-predictive variables</span></span></span>
|
||
<span class="r-in"><span> <span class="fu">remove_role</span><span class="op">(</span><span class="va">genus</span>, old_role <span class="op">=</span> <span class="st">"predictor"</span><span class="op">)</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span></span>
|
||
<span class="r-in"><span> <span class="co"># Apply the log2 transformation to all MIC predictors</span></span></span>
|
||
<span class="r-in"><span> <span class="fu">step_mic_log2</span><span class="op">(</span><span class="fu">all_mic_predictors</span><span class="op">(</span><span class="op">)</span><span class="op">)</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span></span>
|
||
<span class="r-in"><span> <span class="fu">prep</span><span class="op">(</span><span class="op">)</span></span></span>
|
||
<span class="r-in"><span></span></span>
|
||
<span class="r-in"><span><span class="co"># View prepped recipe</span></span></span>
|
||
<span class="r-in"><span><span class="va">mic_recipe</span></span></span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> </span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> <span style="color: #00BBBB;">──</span> <span style="font-weight: bold;">Recipe</span> <span style="color: #00BBBB;">──────────────────────────────────────────────────────────────────────</span></span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> </span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> ── Inputs </span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> Number of variables by role</span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> outcome: 1</span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> predictor: 17</span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> undeclared role: 1</span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> </span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> ── Training information </span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> Training data contained 375 data points and no incomplete rows.</span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> </span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> ── Operations </span>
|
||
<span class="r-msg co"><span class="r-pr">#></span> <span style="color: #00BBBB;">•</span> Log2 transformation of MIC columns: <span style="color: #0000BB;">AMC</span>, <span style="color: #0000BB;">AMP</span>, <span style="color: #0000BB;">TZP</span>, <span style="color: #0000BB;">CXM</span>, <span style="color: #0000BB;">FOX</span>, ... | <span style="font-style: italic;">Trained</span></span>
|
||
<span class="r-in"><span></span></span>
|
||
<span class="r-in"><span><span class="co"># Apply the recipe to training and testing data</span></span></span>
|
||
<span class="r-in"><span><span class="va">out_training</span> <span class="op"><-</span> <span class="fu">bake</span><span class="op">(</span><span class="va">mic_recipe</span>, new_data <span class="op">=</span> <span class="cn">NULL</span><span class="op">)</span></span></span>
|
||
<span class="r-in"><span><span class="va">out_testing</span> <span class="op"><-</span> <span class="fu">bake</span><span class="op">(</span><span class="va">mic_recipe</span>, new_data <span class="op">=</span> <span class="va">testing_data</span><span class="op">)</span></span></span>
|
||
<span class="r-in"><span></span></span>
|
||
<span class="r-in"><span><span class="co"># Fit a logistic regression model</span></span></span>
|
||
<span class="r-in"><span><span class="va">fitted</span> <span class="op"><-</span> <span class="fu">logistic_reg</span><span class="op">(</span>mode <span class="op">=</span> <span class="st">"classification"</span><span class="op">)</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span></span>
|
||
<span class="r-in"><span> <span class="fu">set_engine</span><span class="op">(</span><span class="st">"glm"</span><span class="op">)</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span></span>
|
||
<span class="r-in"><span> <span class="fu">fit</span><span class="op">(</span><span class="va">esbl</span> <span class="op">~</span> <span class="va">.</span>, data <span class="op">=</span> <span class="va">out_training</span><span class="op">)</span></span></span>
|
||
<span class="r-wrn co"><span class="r-pr">#></span> <span class="warning">Warning: </span>glm.fit: fitted probabilities numerically 0 or 1 occurred</span>
|
||
<span class="r-in"><span></span></span>
|
||
<span class="r-in"><span><span class="co"># Generate predictions on the test set</span></span></span>
|
||
<span class="r-in"><span><span class="va">predictions</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/stats/predict.html" class="external-link">predict</a></span><span class="op">(</span><span class="va">fitted</span>, <span class="va">out_testing</span><span class="op">)</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</a></span></span></span>
|
||
<span class="r-in"><span> <span class="fu"><a href="https://dplyr.tidyverse.org/reference/bind_cols.html" class="external-link">bind_cols</a></span><span class="op">(</span><span class="va">out_testing</span><span class="op">)</span></span></span>
|
||
<span class="r-in"><span></span></span>
|
||
<span class="r-in"><span><span class="co"># Evaluate predictions using standard classification metrics</span></span></span>
|
||
<span class="r-in"><span><span class="va">our_metrics</span> <span class="op"><-</span> <span class="fu">metric_set</span><span class="op">(</span><span class="va">accuracy</span>, <span class="va">kap</span>, <span class="va">ppv</span>, <span class="va">npv</span><span class="op">)</span></span></span>
|
||
<span class="r-in"><span><span class="va">metrics</span> <span class="op"><-</span> <span class="fu">our_metrics</span><span class="op">(</span><span class="va">predictions</span>, truth <span class="op">=</span> <span class="va">esbl</span>, estimate <span class="op">=</span> <span class="va">.pred_class</span><span class="op">)</span></span></span>
|
||
<span class="r-in"><span></span></span>
|
||
<span class="r-in"><span><span class="co"># Show performance:</span></span></span>
|
||
<span class="r-in"><span><span class="co"># - negative predictive value (NPV) of ~98%</span></span></span>
|
||
<span class="r-in"><span><span class="co"># - positive predictive value (PPV) of ~94%</span></span></span>
|
||
<span class="r-in"><span><span class="va">metrics</span></span></span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #949494;"># A tibble: 4 × 3</span></span>
|
||
<span class="r-out co"><span class="r-pr">#></span> .metric .estimator .estimate</span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #949494; font-style: italic;"><chr></span> <span style="color: #949494; font-style: italic;"><chr></span> <span style="color: #949494; font-style: italic;"><dbl></span></span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #BCBCBC;">1</span> accuracy binary 0.912</span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #BCBCBC;">2</span> kap binary 0.824</span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #BCBCBC;">3</span> ppv binary 0.917</span>
|
||
<span class="r-out co"><span class="r-pr">#></span> <span style="color: #BCBCBC;">4</span> npv binary 0.908</span>
|
||
</code></pre></div>
|
||
</div>
|
||
</main><aside class="col-md-3"><nav id="toc" aria-label="Table of contents"><h2>On this page</h2>
|
||
</nav></aside></div>
|
||
|
||
|
||
<footer><div class="pkgdown-footer-left">
|
||
<p><code>AMR</code> (for R). Free and open-source, licenced under the <a target="_blank" href="https://github.com/msberends/AMR/blob/main/LICENSE" class="external-link">GNU General Public License version 2.0 (GPL-2)</a>.<br>Developed at the <a target="_blank" href="https://www.rug.nl" class="external-link">University of Groningen</a> and <a target="_blank" href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a> in The Netherlands.</p>
|
||
</div>
|
||
|
||
<div class="pkgdown-footer-right">
|
||
<p><a target="_blank" href="https://www.rug.nl" class="external-link"><img src="https://amr-for-r.org/logo_rug.svg" style="max-width: 150px;"></a><a target="_blank" href="https://www.umcg.nl" class="external-link"><img src="https://amr-for-r.org/logo_umcg.svg" style="max-width: 150px;"></a></p>
|
||
</div>
|
||
|
||
</footer></div>
|
||
|
||
|
||
|
||
|
||
|
||
</body></html>
|
||
|