# Piecewise exponential models

A piecewise exponential model (PEM) splits the time axis into intervals and assumes a constant hazard within each one. This sits between the Cox model, which leaves the baseline hazard entirely unspecified, and a fully parametric AFT, which assumes a specific distributional shape. The PEM estimates the baseline hazard directly as a step function, giving you interpretable rates in each time window while still allowing covariates to shift the hazard proportionally.

Under the hood the PEM is equivalent to a Poisson GLM on an interval-expanded dataset, with `log(exposure)` as an offset. Greenwood fits it via Newton-Raphson (iteratively reweighted least squares), so no additional dependencies are needed.

We use the lung dataset throughout:


``` python
import greenwood as gw

lung = gw.load_dataset("lung", backend="polars")
y = gw.Surv.right(lung["time"], event=(lung["status"] == 2))
```


# Fitting with manual break points

Pass `breaks=` to set the times where the hazard is allowed to change. Three intervals are a common starting point: early, middle, and late follow-up.


``` python
pem = gw.PiecewiseExponential(breaks=[180, 365]).fit(y, lung[["age", "sex"]])
pem
```


    PiecewiseExponential (3 intervals)

            coef  se(coef)       z         p
    age  0.01579  0.009175   1.721   0.08525
    sex  -0.5077    0.1672  -3.037  0.002388

    Intervals:
      (0, 180]
      (180, 365]
      (365, inf]

    n = 228, events = 165
    Log-likelihood = -426.6
    AIC = 863.2


The coefficient table looks like a Cox model. The `age` and `sex` effects are log hazard ratios, interpreted the same way. The difference is that the baseline hazard is now explicitly estimated rather than left nonparametric.


``` python
pem.to_frame(format="polars")
```


<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,600;1,400&family=IBM+Plex+Sans:wght@400;600&display=swap');
#gd-tbl-061ff09d .gt_table {
  display: table;
  border-collapse: collapse;
  table-layout: fixed;
  line-height: normal;
  margin-left: auto;
  margin-right: auto;
  color: #333333;
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  background-color: #FFFFFF;
  width: auto;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #A8A8A8;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #A8A8A8;
}
#gd-tbl-061ff09d .gt_heading {
  background-color: #FFFFFF;
  text-align: left;
  border-bottom-color: #FFFFFF;
  border-left-style: none;
  border-right-style: none;
}
#gd-tbl-061ff09d .gt_title {
  color: #333333;
  font-size: 125%;
  font-weight: initial;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
  border-bottom-color: #FFFFFF;
  border-bottom-width: 0;
}
#gd-tbl-061ff09d .gt_subtitle {
  color: #333333;
  font-size: 85%;
  font-weight: initial;
  padding-top: 3px;
  padding-bottom: 5px;
  padding-left: 5px;
  padding-right: 5px;
  border-top-color: #FFFFFF;
  border-top-width: 0;
}
#gd-tbl-061ff09d .gt_bottom_border {
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
}
#gd-tbl-061ff09d .gt_col_headings {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-right-style: none;
}
#gd-tbl-061ff09d .gt_col_heading {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: normal;
  text-transform: inherit;
  border-left-style: solid;
  border-left-width: 1px;
  border-left-color: #F2F2F2;
  border-right-style: solid;
  border-right-width: 1px;
  border-right-color: #F2F2F2;
  vertical-align: bottom;
  padding-top: 5px;
  padding-bottom: 5px;
  padding-left: 5px;
  padding-right: 5px;
  overflow-x: hidden;
}
#gd-tbl-061ff09d .gt_table_body {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
}
#gd-tbl-061ff09d .gt_row {
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
  margin: 10px;
  border-top-style: solid;
  border-top-width: 1px;
  border-top-color: #E9E9E9;
  border-left-style: solid;
  border-left-width: 1px;
  border-left-color: #E9E9E9;
  border-right-style: solid;
  border-right-width: 1px;
  border-right-color: #E9E9E9;
  vertical-align: middle;
  overflow-x: hidden;
}
#gd-tbl-061ff09d .gt_left { text-align: left; }
#gd-tbl-061ff09d .gt_center { text-align: center; }
#gd-tbl-061ff09d .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
#gd-tbl-061ff09d .gt_font_normal { font-weight: normal; }
#gd-tbl-061ff09d .gt_font_bold { font-weight: bold; }
#gd-tbl-061ff09d .gt_font_italic { font-style: italic; }
#gd-tbl-061ff09d .gt_striped { background-color: rgba(128,128,128,0.05); }
#gd-tbl-061ff09d .gt_from_md > :first-child { margin-top: 0; }
#gd-tbl-061ff09d .gt_from_md > :last-child { margin-bottom: 0; }
/* Data cell font */
#gd-tbl-061ff09d .gt_table_body .gt_row {
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  color: #333333;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  height: 14px;
}
/* Column label font */
#gd-tbl-061ff09d .gt_col_heading {
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  color: #333333;
}
/* Row number styling */
#gd-tbl-061ff09d .gd-tbl-rownum {
  color: gray;
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  border-right: 2px solid rgba(102, 153, 204, 0.5) !important;
  text-align: right;
  padding-right: 6px;
  white-space: nowrap;
}
/* Head/tail divider */
#gd-tbl-061ff09d tr.gd-tbl-divider td,
#gd-tbl-061ff09d tr.gd-tbl-divider th {
  border-bottom: 2px solid rgba(102, 153, 204, 0.5);
}
/* Missing values */
#gd-tbl-061ff09d .gd-tbl-missing {
  color: #B22222 !important;
  background-color: rgba(255, 193, 193, 0.35);
}
/* Column label sub-elements */
#gd-tbl-061ff09d .gd-tbl-colname {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding-bottom: 0;
  margin-bottom: 0;
}
#gd-tbl-061ff09d .gd-tbl-dtype {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding-top: 0;
  margin-top: 0;
  color: #666666;
}
/* Header badge styling */
#gd-tbl-061ff09d .gd-tbl-badge {
  display: inline-block;
  padding: 2px 10px;
  font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 10px;
  font-weight: bold;
  text-transform: uppercase;
  position: inherit;
}
#gd-tbl-061ff09d .gd-tbl-badge-rows-label {
  background-color: #eecbff;
  color: #333333;
  border: 1px solid #eecbff;
  margin-left: 5px;
}
#gd-tbl-061ff09d .gd-tbl-badge-rows-value {
  background-color: transparent;
  color: #333333;
  border: 1px solid #eecbff;
  margin-left: -4px;
  margin-right: 3px;
}
#gd-tbl-061ff09d .gd-tbl-badge-cols-label {
  background-color: #BDE7B4;
  color: #333333;
  border: 1px solid #BDE7B4;
}
#gd-tbl-061ff09d .gd-tbl-badge-cols-value {
  background-color: transparent;
  color: #333333;
  border: 1px solid #BDE7B4;
  margin-left: -4px;
}
/* Dark mode */
body.quarto-dark #gd-tbl-061ff09d .gt_table,
html.quarto-dark #gd-tbl-061ff09d .gt_table,
:root[data-bs-theme="dark"] #gd-tbl-061ff09d .gt_table {
  background-color: #1a1a2e;
  color: #e0e0e0;
  border-top-color: #555;
  border-bottom-color: #555;
}
body.quarto-dark #gd-tbl-061ff09d .gt_heading,
html.quarto-dark #gd-tbl-061ff09d .gt_heading,
:root[data-bs-theme="dark"] #gd-tbl-061ff09d .gt_heading {
  background-color: #1a1a2e;
  border-bottom-color: #1a1a2e;
}
body.quarto-dark #gd-tbl-061ff09d .gt_title,
html.quarto-dark #gd-tbl-061ff09d .gt_title,
:root[data-bs-theme="dark"] #gd-tbl-061ff09d .gt_title {
  color: #e0e0e0;
}
body.quarto-dark #gd-tbl-061ff09d .gt_subtitle,
html.quarto-dark #gd-tbl-061ff09d .gt_subtitle,
:root[data-bs-theme="dark"] #gd-tbl-061ff09d .gt_subtitle {
  color: #b0b0b0;
}
body.quarto-dark #gd-tbl-061ff09d .gt_col_headings,
html.quarto-dark #gd-tbl-061ff09d .gt_col_headings,
:root[data-bs-theme="dark"] #gd-tbl-061ff09d .gt_col_headings {
  border-top-color: #444;
  border-bottom-color: #444;
}
body.quarto-dark #gd-tbl-061ff09d .gt_col_heading,
html.quarto-dark #gd-tbl-061ff09d .gt_col_heading,
:root[data-bs-theme="dark"] #gd-tbl-061ff09d .gt_col_heading {
  color: #b0b0b0;
  background-color: #1a1a2e;
  border-left-color: #333;
  border-right-color: #333;
}
body.quarto-dark #gd-tbl-061ff09d .gt_table_body,
html.quarto-dark #gd-tbl-061ff09d .gt_table_body,
:root[data-bs-theme="dark"] #gd-tbl-061ff09d .gt_table_body {
  border-top-color: #444;
}
body.quarto-dark #gd-tbl-061ff09d .gt_table_body .gt_row,
html.quarto-dark #gd-tbl-061ff09d .gt_table_body .gt_row,
:root[data-bs-theme="dark"] #gd-tbl-061ff09d .gt_table_body .gt_row {
  color: #d0d0d0;
  border-top-color: #4b4b4b;
  border-bottom-color: #4b4b4b;
  border-left-color: #333;
  border-right-color: #333;
}
body.quarto-dark #gd-tbl-061ff09d .gd-tbl-rownum,
html.quarto-dark #gd-tbl-061ff09d .gd-tbl-rownum,
:root[data-bs-theme="dark"] #gd-tbl-061ff09d .gd-tbl-rownum {
  color: #888;
  border-right-color: rgba(102, 153, 204, 0.4) !important;
}
body.quarto-dark #gd-tbl-061ff09d .gd-tbl-missing,
html.quarto-dark #gd-tbl-061ff09d .gd-tbl-missing,
:root[data-bs-theme="dark"] #gd-tbl-061ff09d .gd-tbl-missing {
  color: #ff6b6b !important;
  background-color: rgba(60, 17, 24, 0.2);
}
body.quarto-dark #gd-tbl-061ff09d .gd-tbl-dtype,
html.quarto-dark #gd-tbl-061ff09d .gd-tbl-dtype,
:root[data-bs-theme="dark"] #gd-tbl-061ff09d .gd-tbl-dtype {
  color: #888;
}
body.quarto-dark #gd-tbl-061ff09d .gt_bottom_border,
html.quarto-dark #gd-tbl-061ff09d .gt_bottom_border,
:root[data-bs-theme="dark"] #gd-tbl-061ff09d .gt_bottom_border {
  border-bottom-color: #555;
}
body.quarto-dark #gd-tbl-061ff09d .gd-tbl-badge-rows-label,
html.quarto-dark #gd-tbl-061ff09d .gd-tbl-badge-rows-label,
:root[data-bs-theme="dark"] #gd-tbl-061ff09d .gd-tbl-badge-rows-label {
  background-color: #3d2a4d;
  border-color: #3d2a4d;
  color: #e0c0ff;
}
body.quarto-dark #gd-tbl-061ff09d .gd-tbl-badge-rows-value,
html.quarto-dark #gd-tbl-061ff09d .gd-tbl-badge-rows-value,
:root[data-bs-theme="dark"] #gd-tbl-061ff09d .gd-tbl-badge-rows-value {
  border-color: #3d2a4d;
  color: #d0b0e0;
}
body.quarto-dark #gd-tbl-061ff09d .gd-tbl-badge-cols-label,
html.quarto-dark #gd-tbl-061ff09d .gd-tbl-badge-cols-label,
:root[data-bs-theme="dark"] #gd-tbl-061ff09d .gd-tbl-badge-cols-label {
  background-color: #2a4d2a;
  border-color: #2a4d2a;
  color: #b0e0b0;
}
body.quarto-dark #gd-tbl-061ff09d .gd-tbl-badge-cols-value,
html.quarto-dark #gd-tbl-061ff09d .gd-tbl-badge-cols-value,
:root[data-bs-theme="dark"] #gd-tbl-061ff09d .gd-tbl-badge-cols-value {
  border-color: #2a4d2a;
  color: #a0d0a0;
}
</style>

<table class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<thead>
<tr class="gt_heading">
<th colspan="8" class="gt_heading gt_title gt_font_normal"><div style="padding-top: 0; padding-bottom: 7px;">
<span class="gd-tbl-badge" style="background-color: #0075FF; color: #FFFFFF; border: 1px solid #0075FF; margin-right: 8px;">Polars</span>Rows2Columns7
</div></th>
</tr>
<tr class="gt_col_headings">
<th class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"></th>
<th id="term" class="gt_col_heading gt_columns_bottom_border gt_left" scope="col"><div>

term

<em>str</em>

</div></th>
<th id="estimate" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

estimate

<em>f64</em>

</div></th>
<th id="std_error" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

std_error

<em>f64</em>

</div></th>
<th id="statistic" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

statistic

<em>f64</em>

</div></th>
<th id="p_value" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

p_value

<em>f64</em>

</div></th>
<th id="conf_low" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

conf_low

<em>f64</em>

</div></th>
<th id="conf_high" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

conf_high

<em>f64</em>

</div></th>
</tr>
</thead>
<tbody class="gt_table_body">
<tr>
<td class="gt_row gt_right gd-tbl-rownum">0</td>
<td class="gt_row gt_left" style="max-width: 50px">age</td>
<td class="gt_row gt_right" style="max-width: 124px">0.0157901291643</td>
<td class="gt_row gt_right" style="max-width: 131px">0.00917500504479</td>
<td class="gt_row gt_right" style="max-width: 117px">1.72099405802</td>
<td class="gt_row gt_right" style="max-width: 131px">0.0852519021378</td>
<td class="gt_row gt_right" style="max-width: 138px">-0.00219255028142</td>
<td class="gt_row gt_right" style="max-width: 124px">0.0337728086101</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">1</td>
<td class="gt_row gt_left" style="max-width: 50px">sex</td>
<td class="gt_row gt_right" style="max-width: 124px">-0.507742560024</td>
<td class="gt_row gt_right" style="max-width: 131px">0.167172032413</td>
<td class="gt_row gt_right" style="max-width: 117px">-3.03724584009</td>
<td class="gt_row gt_right" style="max-width: 131px">0.00238750650133</td>
<td class="gt_row gt_right" style="max-width: 138px">-0.835393722775</td>
<td class="gt_row gt_right" style="max-width: 124px">-0.180091397273</td>
</tr>
</tbody>
</table>


# Inspecting the baseline hazard

The `baseline_hazard()` method returns the estimated constant hazard rate in each interval.


``` python
pem.baseline_hazard(format="polars")
```


<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,600;1,400&family=IBM+Plex+Sans:wght@400;600&display=swap');
#gd-tbl-e23b317c .gt_table {
  display: table;
  border-collapse: collapse;
  table-layout: fixed;
  line-height: normal;
  margin-left: auto;
  margin-right: auto;
  color: #333333;
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  background-color: #FFFFFF;
  width: auto;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #A8A8A8;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #A8A8A8;
}
#gd-tbl-e23b317c .gt_heading {
  background-color: #FFFFFF;
  text-align: left;
  border-bottom-color: #FFFFFF;
  border-left-style: none;
  border-right-style: none;
}
#gd-tbl-e23b317c .gt_title {
  color: #333333;
  font-size: 125%;
  font-weight: initial;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
  border-bottom-color: #FFFFFF;
  border-bottom-width: 0;
}
#gd-tbl-e23b317c .gt_subtitle {
  color: #333333;
  font-size: 85%;
  font-weight: initial;
  padding-top: 3px;
  padding-bottom: 5px;
  padding-left: 5px;
  padding-right: 5px;
  border-top-color: #FFFFFF;
  border-top-width: 0;
}
#gd-tbl-e23b317c .gt_bottom_border {
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
}
#gd-tbl-e23b317c .gt_col_headings {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-right-style: none;
}
#gd-tbl-e23b317c .gt_col_heading {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: normal;
  text-transform: inherit;
  border-left-style: solid;
  border-left-width: 1px;
  border-left-color: #F2F2F2;
  border-right-style: solid;
  border-right-width: 1px;
  border-right-color: #F2F2F2;
  vertical-align: bottom;
  padding-top: 5px;
  padding-bottom: 5px;
  padding-left: 5px;
  padding-right: 5px;
  overflow-x: hidden;
}
#gd-tbl-e23b317c .gt_table_body {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
}
#gd-tbl-e23b317c .gt_row {
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
  margin: 10px;
  border-top-style: solid;
  border-top-width: 1px;
  border-top-color: #E9E9E9;
  border-left-style: solid;
  border-left-width: 1px;
  border-left-color: #E9E9E9;
  border-right-style: solid;
  border-right-width: 1px;
  border-right-color: #E9E9E9;
  vertical-align: middle;
  overflow-x: hidden;
}
#gd-tbl-e23b317c .gt_left { text-align: left; }
#gd-tbl-e23b317c .gt_center { text-align: center; }
#gd-tbl-e23b317c .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
#gd-tbl-e23b317c .gt_font_normal { font-weight: normal; }
#gd-tbl-e23b317c .gt_font_bold { font-weight: bold; }
#gd-tbl-e23b317c .gt_font_italic { font-style: italic; }
#gd-tbl-e23b317c .gt_striped { background-color: rgba(128,128,128,0.05); }
#gd-tbl-e23b317c .gt_from_md > :first-child { margin-top: 0; }
#gd-tbl-e23b317c .gt_from_md > :last-child { margin-bottom: 0; }
/* Data cell font */
#gd-tbl-e23b317c .gt_table_body .gt_row {
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  color: #333333;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  height: 14px;
}
/* Column label font */
#gd-tbl-e23b317c .gt_col_heading {
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  color: #333333;
}
/* Row number styling */
#gd-tbl-e23b317c .gd-tbl-rownum {
  color: gray;
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  border-right: 2px solid rgba(102, 153, 204, 0.5) !important;
  text-align: right;
  padding-right: 6px;
  white-space: nowrap;
}
/* Head/tail divider */
#gd-tbl-e23b317c tr.gd-tbl-divider td,
#gd-tbl-e23b317c tr.gd-tbl-divider th {
  border-bottom: 2px solid rgba(102, 153, 204, 0.5);
}
/* Missing values */
#gd-tbl-e23b317c .gd-tbl-missing {
  color: #B22222 !important;
  background-color: rgba(255, 193, 193, 0.35);
}
/* Column label sub-elements */
#gd-tbl-e23b317c .gd-tbl-colname {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding-bottom: 0;
  margin-bottom: 0;
}
#gd-tbl-e23b317c .gd-tbl-dtype {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding-top: 0;
  margin-top: 0;
  color: #666666;
}
/* Header badge styling */
#gd-tbl-e23b317c .gd-tbl-badge {
  display: inline-block;
  padding: 2px 10px;
  font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 10px;
  font-weight: bold;
  text-transform: uppercase;
  position: inherit;
}
#gd-tbl-e23b317c .gd-tbl-badge-rows-label {
  background-color: #eecbff;
  color: #333333;
  border: 1px solid #eecbff;
  margin-left: 5px;
}
#gd-tbl-e23b317c .gd-tbl-badge-rows-value {
  background-color: transparent;
  color: #333333;
  border: 1px solid #eecbff;
  margin-left: -4px;
  margin-right: 3px;
}
#gd-tbl-e23b317c .gd-tbl-badge-cols-label {
  background-color: #BDE7B4;
  color: #333333;
  border: 1px solid #BDE7B4;
}
#gd-tbl-e23b317c .gd-tbl-badge-cols-value {
  background-color: transparent;
  color: #333333;
  border: 1px solid #BDE7B4;
  margin-left: -4px;
}
/* Dark mode */
body.quarto-dark #gd-tbl-e23b317c .gt_table,
html.quarto-dark #gd-tbl-e23b317c .gt_table,
:root[data-bs-theme="dark"] #gd-tbl-e23b317c .gt_table {
  background-color: #1a1a2e;
  color: #e0e0e0;
  border-top-color: #555;
  border-bottom-color: #555;
}
body.quarto-dark #gd-tbl-e23b317c .gt_heading,
html.quarto-dark #gd-tbl-e23b317c .gt_heading,
:root[data-bs-theme="dark"] #gd-tbl-e23b317c .gt_heading {
  background-color: #1a1a2e;
  border-bottom-color: #1a1a2e;
}
body.quarto-dark #gd-tbl-e23b317c .gt_title,
html.quarto-dark #gd-tbl-e23b317c .gt_title,
:root[data-bs-theme="dark"] #gd-tbl-e23b317c .gt_title {
  color: #e0e0e0;
}
body.quarto-dark #gd-tbl-e23b317c .gt_subtitle,
html.quarto-dark #gd-tbl-e23b317c .gt_subtitle,
:root[data-bs-theme="dark"] #gd-tbl-e23b317c .gt_subtitle {
  color: #b0b0b0;
}
body.quarto-dark #gd-tbl-e23b317c .gt_col_headings,
html.quarto-dark #gd-tbl-e23b317c .gt_col_headings,
:root[data-bs-theme="dark"] #gd-tbl-e23b317c .gt_col_headings {
  border-top-color: #444;
  border-bottom-color: #444;
}
body.quarto-dark #gd-tbl-e23b317c .gt_col_heading,
html.quarto-dark #gd-tbl-e23b317c .gt_col_heading,
:root[data-bs-theme="dark"] #gd-tbl-e23b317c .gt_col_heading {
  color: #b0b0b0;
  background-color: #1a1a2e;
  border-left-color: #333;
  border-right-color: #333;
}
body.quarto-dark #gd-tbl-e23b317c .gt_table_body,
html.quarto-dark #gd-tbl-e23b317c .gt_table_body,
:root[data-bs-theme="dark"] #gd-tbl-e23b317c .gt_table_body {
  border-top-color: #444;
}
body.quarto-dark #gd-tbl-e23b317c .gt_table_body .gt_row,
html.quarto-dark #gd-tbl-e23b317c .gt_table_body .gt_row,
:root[data-bs-theme="dark"] #gd-tbl-e23b317c .gt_table_body .gt_row {
  color: #d0d0d0;
  border-top-color: #4b4b4b;
  border-bottom-color: #4b4b4b;
  border-left-color: #333;
  border-right-color: #333;
}
body.quarto-dark #gd-tbl-e23b317c .gd-tbl-rownum,
html.quarto-dark #gd-tbl-e23b317c .gd-tbl-rownum,
:root[data-bs-theme="dark"] #gd-tbl-e23b317c .gd-tbl-rownum {
  color: #888;
  border-right-color: rgba(102, 153, 204, 0.4) !important;
}
body.quarto-dark #gd-tbl-e23b317c .gd-tbl-missing,
html.quarto-dark #gd-tbl-e23b317c .gd-tbl-missing,
:root[data-bs-theme="dark"] #gd-tbl-e23b317c .gd-tbl-missing {
  color: #ff6b6b !important;
  background-color: rgba(60, 17, 24, 0.2);
}
body.quarto-dark #gd-tbl-e23b317c .gd-tbl-dtype,
html.quarto-dark #gd-tbl-e23b317c .gd-tbl-dtype,
:root[data-bs-theme="dark"] #gd-tbl-e23b317c .gd-tbl-dtype {
  color: #888;
}
body.quarto-dark #gd-tbl-e23b317c .gt_bottom_border,
html.quarto-dark #gd-tbl-e23b317c .gt_bottom_border,
:root[data-bs-theme="dark"] #gd-tbl-e23b317c .gt_bottom_border {
  border-bottom-color: #555;
}
body.quarto-dark #gd-tbl-e23b317c .gd-tbl-badge-rows-label,
html.quarto-dark #gd-tbl-e23b317c .gd-tbl-badge-rows-label,
:root[data-bs-theme="dark"] #gd-tbl-e23b317c .gd-tbl-badge-rows-label {
  background-color: #3d2a4d;
  border-color: #3d2a4d;
  color: #e0c0ff;
}
body.quarto-dark #gd-tbl-e23b317c .gd-tbl-badge-rows-value,
html.quarto-dark #gd-tbl-e23b317c .gd-tbl-badge-rows-value,
:root[data-bs-theme="dark"] #gd-tbl-e23b317c .gd-tbl-badge-rows-value {
  border-color: #3d2a4d;
  color: #d0b0e0;
}
body.quarto-dark #gd-tbl-e23b317c .gd-tbl-badge-cols-label,
html.quarto-dark #gd-tbl-e23b317c .gd-tbl-badge-cols-label,
:root[data-bs-theme="dark"] #gd-tbl-e23b317c .gd-tbl-badge-cols-label {
  background-color: #2a4d2a;
  border-color: #2a4d2a;
  color: #b0e0b0;
}
body.quarto-dark #gd-tbl-e23b317c .gd-tbl-badge-cols-value,
html.quarto-dark #gd-tbl-e23b317c .gd-tbl-badge-cols-value,
:root[data-bs-theme="dark"] #gd-tbl-e23b317c .gd-tbl-badge-cols-value {
  border-color: #2a4d2a;
  color: #a0d0a0;
}
</style>

<table class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<thead>
<tr class="gt_heading">
<th colspan="5" class="gt_heading gt_title gt_font_normal"><div style="padding-top: 0; padding-bottom: 7px;">
<span class="gd-tbl-badge" style="background-color: #0075FF; color: #FFFFFF; border: 1px solid #0075FF; margin-right: 8px;">Polars</span>Rows3Columns4
</div></th>
</tr>
<tr class="gt_col_headings">
<th class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"></th>
<th id="start" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

start

<em>f64</em>

</div></th>
<th id="stop" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

stop

<em>f64</em>

</div></th>
<th id="hazard" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

hazard

<em>f64</em>

</div></th>
<th id="log_hazard" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

log_hazard

<em>f64</em>

</div></th>
</tr>
</thead>
<tbody class="gt_table_body">
<tr>
<td class="gt_row gt_right gd-tbl-rownum">0</td>
<td class="gt_row gt_right" style="max-width: 83px">0</td>
<td class="gt_row gt_right" style="max-width: 78px">180</td>
<td class="gt_row gt_right" style="max-width: 159px">0.00129910865297</td>
<td class="gt_row gt_right" style="max-width: 145px">-6.64607690124</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">1</td>
<td class="gt_row gt_right" style="max-width: 83px">180</td>
<td class="gt_row gt_right" style="max-width: 78px">365</td>
<td class="gt_row gt_right" style="max-width: 159px">0.00221541176629</td>
<td class="gt_row gt_right" style="max-width: 145px">-6.11231699376</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">2</td>
<td class="gt_row gt_right" style="max-width: 83px">365</td>
<td class="gt_row gt_right" style="max-width: 78px">Inf</td>
<td class="gt_row gt_right" style="max-width: 159px">0.00239171750055</td>
<td class="gt_row gt_right" style="max-width: 145px">-6.03574355165</td>
</tr>
</tbody>
</table>


Higher hazard values mean more events per unit time in that interval, adjusting for covariates.


# Automatic knot selection

When you do not supply `breaks=`, Greenwood tries 0 through `max_knots` internal knots and picks the set that minimizes the AIC (or BIC, with `knot_strategy="bic"`). Knot candidates are placed at quantiles of the event-time distribution.


``` python
pem_auto = gw.PiecewiseExponential(knot_strategy="aic", max_knots=8).fit(
    y, lung[["age", "sex"]]
)
pem_auto
```


    PiecewiseExponential (1 intervals)

            coef  se(coef)       z         p
    age  0.01562  0.009106   1.715    0.0863
    sex  -0.4809    0.1671  -2.878  0.003999

    Intervals:
      (0, inf]

    n = 228, events = 165
    Log-likelihood = -281.9
    AIC = 569.7


If automatic selection returns zero breaks, the data do not support a more complex baseline than a single exponential. This is a useful model-selection result in itself.


# Predicting survival curves

The `predict()` method returns survival probabilities (or cumulative hazards) at specified times.


``` python
pred = pem.predict(
    newdata=lung[["age", "sex"]].head(3),
    type="survival",
    times=[100, 200, 365, 500, 730],
    format="polars",
)
pred
```


<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,600;1,400&family=IBM+Plex+Sans:wght@400;600&display=swap');
#gd-tbl-b102386c .gt_table {
  display: table;
  border-collapse: collapse;
  table-layout: fixed;
  line-height: normal;
  margin-left: auto;
  margin-right: auto;
  color: #333333;
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  background-color: #FFFFFF;
  width: auto;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #A8A8A8;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #A8A8A8;
}
#gd-tbl-b102386c .gt_heading {
  background-color: #FFFFFF;
  text-align: left;
  border-bottom-color: #FFFFFF;
  border-left-style: none;
  border-right-style: none;
}
#gd-tbl-b102386c .gt_title {
  color: #333333;
  font-size: 125%;
  font-weight: initial;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
  border-bottom-color: #FFFFFF;
  border-bottom-width: 0;
}
#gd-tbl-b102386c .gt_subtitle {
  color: #333333;
  font-size: 85%;
  font-weight: initial;
  padding-top: 3px;
  padding-bottom: 5px;
  padding-left: 5px;
  padding-right: 5px;
  border-top-color: #FFFFFF;
  border-top-width: 0;
}
#gd-tbl-b102386c .gt_bottom_border {
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
}
#gd-tbl-b102386c .gt_col_headings {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-right-style: none;
}
#gd-tbl-b102386c .gt_col_heading {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: normal;
  text-transform: inherit;
  border-left-style: solid;
  border-left-width: 1px;
  border-left-color: #F2F2F2;
  border-right-style: solid;
  border-right-width: 1px;
  border-right-color: #F2F2F2;
  vertical-align: bottom;
  padding-top: 5px;
  padding-bottom: 5px;
  padding-left: 5px;
  padding-right: 5px;
  overflow-x: hidden;
}
#gd-tbl-b102386c .gt_table_body {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
}
#gd-tbl-b102386c .gt_row {
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
  margin: 10px;
  border-top-style: solid;
  border-top-width: 1px;
  border-top-color: #E9E9E9;
  border-left-style: solid;
  border-left-width: 1px;
  border-left-color: #E9E9E9;
  border-right-style: solid;
  border-right-width: 1px;
  border-right-color: #E9E9E9;
  vertical-align: middle;
  overflow-x: hidden;
}
#gd-tbl-b102386c .gt_left { text-align: left; }
#gd-tbl-b102386c .gt_center { text-align: center; }
#gd-tbl-b102386c .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
#gd-tbl-b102386c .gt_font_normal { font-weight: normal; }
#gd-tbl-b102386c .gt_font_bold { font-weight: bold; }
#gd-tbl-b102386c .gt_font_italic { font-style: italic; }
#gd-tbl-b102386c .gt_striped { background-color: rgba(128,128,128,0.05); }
#gd-tbl-b102386c .gt_from_md > :first-child { margin-top: 0; }
#gd-tbl-b102386c .gt_from_md > :last-child { margin-bottom: 0; }
/* Data cell font */
#gd-tbl-b102386c .gt_table_body .gt_row {
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  color: #333333;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  height: 14px;
}
/* Column label font */
#gd-tbl-b102386c .gt_col_heading {
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  color: #333333;
}
/* Row number styling */
#gd-tbl-b102386c .gd-tbl-rownum {
  color: gray;
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  border-right: 2px solid rgba(102, 153, 204, 0.5) !important;
  text-align: right;
  padding-right: 6px;
  white-space: nowrap;
}
/* Head/tail divider */
#gd-tbl-b102386c tr.gd-tbl-divider td,
#gd-tbl-b102386c tr.gd-tbl-divider th {
  border-bottom: 2px solid rgba(102, 153, 204, 0.5);
}
/* Missing values */
#gd-tbl-b102386c .gd-tbl-missing {
  color: #B22222 !important;
  background-color: rgba(255, 193, 193, 0.35);
}
/* Column label sub-elements */
#gd-tbl-b102386c .gd-tbl-colname {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding-bottom: 0;
  margin-bottom: 0;
}
#gd-tbl-b102386c .gd-tbl-dtype {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding-top: 0;
  margin-top: 0;
  color: #666666;
}
/* Header badge styling */
#gd-tbl-b102386c .gd-tbl-badge {
  display: inline-block;
  padding: 2px 10px;
  font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 10px;
  font-weight: bold;
  text-transform: uppercase;
  position: inherit;
}
#gd-tbl-b102386c .gd-tbl-badge-rows-label {
  background-color: #eecbff;
  color: #333333;
  border: 1px solid #eecbff;
  margin-left: 5px;
}
#gd-tbl-b102386c .gd-tbl-badge-rows-value {
  background-color: transparent;
  color: #333333;
  border: 1px solid #eecbff;
  margin-left: -4px;
  margin-right: 3px;
}
#gd-tbl-b102386c .gd-tbl-badge-cols-label {
  background-color: #BDE7B4;
  color: #333333;
  border: 1px solid #BDE7B4;
}
#gd-tbl-b102386c .gd-tbl-badge-cols-value {
  background-color: transparent;
  color: #333333;
  border: 1px solid #BDE7B4;
  margin-left: -4px;
}
/* Dark mode */
body.quarto-dark #gd-tbl-b102386c .gt_table,
html.quarto-dark #gd-tbl-b102386c .gt_table,
:root[data-bs-theme="dark"] #gd-tbl-b102386c .gt_table {
  background-color: #1a1a2e;
  color: #e0e0e0;
  border-top-color: #555;
  border-bottom-color: #555;
}
body.quarto-dark #gd-tbl-b102386c .gt_heading,
html.quarto-dark #gd-tbl-b102386c .gt_heading,
:root[data-bs-theme="dark"] #gd-tbl-b102386c .gt_heading {
  background-color: #1a1a2e;
  border-bottom-color: #1a1a2e;
}
body.quarto-dark #gd-tbl-b102386c .gt_title,
html.quarto-dark #gd-tbl-b102386c .gt_title,
:root[data-bs-theme="dark"] #gd-tbl-b102386c .gt_title {
  color: #e0e0e0;
}
body.quarto-dark #gd-tbl-b102386c .gt_subtitle,
html.quarto-dark #gd-tbl-b102386c .gt_subtitle,
:root[data-bs-theme="dark"] #gd-tbl-b102386c .gt_subtitle {
  color: #b0b0b0;
}
body.quarto-dark #gd-tbl-b102386c .gt_col_headings,
html.quarto-dark #gd-tbl-b102386c .gt_col_headings,
:root[data-bs-theme="dark"] #gd-tbl-b102386c .gt_col_headings {
  border-top-color: #444;
  border-bottom-color: #444;
}
body.quarto-dark #gd-tbl-b102386c .gt_col_heading,
html.quarto-dark #gd-tbl-b102386c .gt_col_heading,
:root[data-bs-theme="dark"] #gd-tbl-b102386c .gt_col_heading {
  color: #b0b0b0;
  background-color: #1a1a2e;
  border-left-color: #333;
  border-right-color: #333;
}
body.quarto-dark #gd-tbl-b102386c .gt_table_body,
html.quarto-dark #gd-tbl-b102386c .gt_table_body,
:root[data-bs-theme="dark"] #gd-tbl-b102386c .gt_table_body {
  border-top-color: #444;
}
body.quarto-dark #gd-tbl-b102386c .gt_table_body .gt_row,
html.quarto-dark #gd-tbl-b102386c .gt_table_body .gt_row,
:root[data-bs-theme="dark"] #gd-tbl-b102386c .gt_table_body .gt_row {
  color: #d0d0d0;
  border-top-color: #4b4b4b;
  border-bottom-color: #4b4b4b;
  border-left-color: #333;
  border-right-color: #333;
}
body.quarto-dark #gd-tbl-b102386c .gd-tbl-rownum,
html.quarto-dark #gd-tbl-b102386c .gd-tbl-rownum,
:root[data-bs-theme="dark"] #gd-tbl-b102386c .gd-tbl-rownum {
  color: #888;
  border-right-color: rgba(102, 153, 204, 0.4) !important;
}
body.quarto-dark #gd-tbl-b102386c .gd-tbl-missing,
html.quarto-dark #gd-tbl-b102386c .gd-tbl-missing,
:root[data-bs-theme="dark"] #gd-tbl-b102386c .gd-tbl-missing {
  color: #ff6b6b !important;
  background-color: rgba(60, 17, 24, 0.2);
}
body.quarto-dark #gd-tbl-b102386c .gd-tbl-dtype,
html.quarto-dark #gd-tbl-b102386c .gd-tbl-dtype,
:root[data-bs-theme="dark"] #gd-tbl-b102386c .gd-tbl-dtype {
  color: #888;
}
body.quarto-dark #gd-tbl-b102386c .gt_bottom_border,
html.quarto-dark #gd-tbl-b102386c .gt_bottom_border,
:root[data-bs-theme="dark"] #gd-tbl-b102386c .gt_bottom_border {
  border-bottom-color: #555;
}
body.quarto-dark #gd-tbl-b102386c .gd-tbl-badge-rows-label,
html.quarto-dark #gd-tbl-b102386c .gd-tbl-badge-rows-label,
:root[data-bs-theme="dark"] #gd-tbl-b102386c .gd-tbl-badge-rows-label {
  background-color: #3d2a4d;
  border-color: #3d2a4d;
  color: #e0c0ff;
}
body.quarto-dark #gd-tbl-b102386c .gd-tbl-badge-rows-value,
html.quarto-dark #gd-tbl-b102386c .gd-tbl-badge-rows-value,
:root[data-bs-theme="dark"] #gd-tbl-b102386c .gd-tbl-badge-rows-value {
  border-color: #3d2a4d;
  color: #d0b0e0;
}
body.quarto-dark #gd-tbl-b102386c .gd-tbl-badge-cols-label,
html.quarto-dark #gd-tbl-b102386c .gd-tbl-badge-cols-label,
:root[data-bs-theme="dark"] #gd-tbl-b102386c .gd-tbl-badge-cols-label {
  background-color: #2a4d2a;
  border-color: #2a4d2a;
  color: #b0e0b0;
}
body.quarto-dark #gd-tbl-b102386c .gd-tbl-badge-cols-value,
html.quarto-dark #gd-tbl-b102386c .gd-tbl-badge-cols-value,
:root[data-bs-theme="dark"] #gd-tbl-b102386c .gd-tbl-badge-cols-value {
  border-color: #2a4d2a;
  color: #a0d0a0;
}
</style>

<table class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<thead>
<tr class="gt_heading">
<th colspan="5" class="gt_heading gt_title gt_font_normal"><div style="padding-top: 0; padding-bottom: 7px;">
<span class="gd-tbl-badge" style="background-color: #0075FF; color: #FFFFFF; border: 1px solid #0075FF; margin-right: 8px;">Polars</span>Rows5Columns4
</div></th>
</tr>
<tr class="gt_col_headings">
<th class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"></th>
<th id="time" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

time

<em>f64</em>

</div></th>
<th id="subject_1" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

subject_1

<em>f64</em>

</div></th>
<th id="subject_2" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

subject_2

<em>f64</em>

</div></th>
<th id="subject_3" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

subject_3

<em>f64</em>

</div></th>
</tr>
</thead>
<tbody class="gt_table_body">
<tr>
<td class="gt_row gt_right gd-tbl-rownum">0</td>
<td class="gt_row gt_right" style="max-width: 64px">100</td>
<td class="gt_row gt_right" style="max-width: 138px">0.777607528515</td>
<td class="gt_row gt_right" style="max-width: 131px">0.795490067227</td>
<td class="gt_row gt_right" style="max-width: 131px">0.827535046911</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">1</td>
<td class="gt_row gt_right" style="max-width: 64px">200</td>
<td class="gt_row gt_right" style="max-width: 138px">0.583594083846</td>
<td class="gt_row gt_right" style="max-width: 131px">0.612706408535</td>
<td class="gt_row gt_right" style="max-width: 131px">0.666768710419</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">2</td>
<td class="gt_row gt_right" style="max-width: 64px">365</td>
<td class="gt_row gt_right" style="max-width: 138px">0.287562906672</td>
<td class="gt_row gt_right" style="max-width: 131px">0.321853848354</td>
<td class="gt_row gt_right" style="max-width: 131px">0.391419745741</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">3</td>
<td class="gt_row gt_right" style="max-width: 64px">500</td>
<td class="gt_row gt_right" style="max-width: 138px">0.153896140388</td>
<td class="gt_row gt_right" style="max-width: 131px">0.182261639537</td>
<td class="gt_row gt_right" style="max-width: 131px">0.24451649032</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">4</td>
<td class="gt_row gt_right" style="max-width: 64px">730</td>
<td class="gt_row gt_right" style="max-width: 138px">0.0530473167585</td>
<td class="gt_row gt_right" style="max-width: 131px">0.069173978742</td>
<td class="gt_row gt_right" style="max-width: 131px">0.109693925366</td>
</tr>
</tbody>
</table>


The piecewise constant baseline means survival curves are piecewise exponential: straight segments on a log scale, with slope changes at the break points.

Cumulative hazard is available with `type="cumhaz"`:


``` python
cumhaz = pem.predict(
    newdata=lung[["age", "sex"]].head(3),
    type="cumhaz",
    times=[100, 200, 365, 500, 730],
    format="polars",
)
cumhaz
```


<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,600;1,400&family=IBM+Plex+Sans:wght@400;600&display=swap');
#gd-tbl-5a96f191 .gt_table {
  display: table;
  border-collapse: collapse;
  table-layout: fixed;
  line-height: normal;
  margin-left: auto;
  margin-right: auto;
  color: #333333;
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  background-color: #FFFFFF;
  width: auto;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #A8A8A8;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #A8A8A8;
}
#gd-tbl-5a96f191 .gt_heading {
  background-color: #FFFFFF;
  text-align: left;
  border-bottom-color: #FFFFFF;
  border-left-style: none;
  border-right-style: none;
}
#gd-tbl-5a96f191 .gt_title {
  color: #333333;
  font-size: 125%;
  font-weight: initial;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
  border-bottom-color: #FFFFFF;
  border-bottom-width: 0;
}
#gd-tbl-5a96f191 .gt_subtitle {
  color: #333333;
  font-size: 85%;
  font-weight: initial;
  padding-top: 3px;
  padding-bottom: 5px;
  padding-left: 5px;
  padding-right: 5px;
  border-top-color: #FFFFFF;
  border-top-width: 0;
}
#gd-tbl-5a96f191 .gt_bottom_border {
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
}
#gd-tbl-5a96f191 .gt_col_headings {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-right-style: none;
}
#gd-tbl-5a96f191 .gt_col_heading {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: normal;
  text-transform: inherit;
  border-left-style: solid;
  border-left-width: 1px;
  border-left-color: #F2F2F2;
  border-right-style: solid;
  border-right-width: 1px;
  border-right-color: #F2F2F2;
  vertical-align: bottom;
  padding-top: 5px;
  padding-bottom: 5px;
  padding-left: 5px;
  padding-right: 5px;
  overflow-x: hidden;
}
#gd-tbl-5a96f191 .gt_table_body {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
}
#gd-tbl-5a96f191 .gt_row {
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
  margin: 10px;
  border-top-style: solid;
  border-top-width: 1px;
  border-top-color: #E9E9E9;
  border-left-style: solid;
  border-left-width: 1px;
  border-left-color: #E9E9E9;
  border-right-style: solid;
  border-right-width: 1px;
  border-right-color: #E9E9E9;
  vertical-align: middle;
  overflow-x: hidden;
}
#gd-tbl-5a96f191 .gt_left { text-align: left; }
#gd-tbl-5a96f191 .gt_center { text-align: center; }
#gd-tbl-5a96f191 .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
#gd-tbl-5a96f191 .gt_font_normal { font-weight: normal; }
#gd-tbl-5a96f191 .gt_font_bold { font-weight: bold; }
#gd-tbl-5a96f191 .gt_font_italic { font-style: italic; }
#gd-tbl-5a96f191 .gt_striped { background-color: rgba(128,128,128,0.05); }
#gd-tbl-5a96f191 .gt_from_md > :first-child { margin-top: 0; }
#gd-tbl-5a96f191 .gt_from_md > :last-child { margin-bottom: 0; }
/* Data cell font */
#gd-tbl-5a96f191 .gt_table_body .gt_row {
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  color: #333333;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  height: 14px;
}
/* Column label font */
#gd-tbl-5a96f191 .gt_col_heading {
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  color: #333333;
}
/* Row number styling */
#gd-tbl-5a96f191 .gd-tbl-rownum {
  color: gray;
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  border-right: 2px solid rgba(102, 153, 204, 0.5) !important;
  text-align: right;
  padding-right: 6px;
  white-space: nowrap;
}
/* Head/tail divider */
#gd-tbl-5a96f191 tr.gd-tbl-divider td,
#gd-tbl-5a96f191 tr.gd-tbl-divider th {
  border-bottom: 2px solid rgba(102, 153, 204, 0.5);
}
/* Missing values */
#gd-tbl-5a96f191 .gd-tbl-missing {
  color: #B22222 !important;
  background-color: rgba(255, 193, 193, 0.35);
}
/* Column label sub-elements */
#gd-tbl-5a96f191 .gd-tbl-colname {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding-bottom: 0;
  margin-bottom: 0;
}
#gd-tbl-5a96f191 .gd-tbl-dtype {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding-top: 0;
  margin-top: 0;
  color: #666666;
}
/* Header badge styling */
#gd-tbl-5a96f191 .gd-tbl-badge {
  display: inline-block;
  padding: 2px 10px;
  font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 10px;
  font-weight: bold;
  text-transform: uppercase;
  position: inherit;
}
#gd-tbl-5a96f191 .gd-tbl-badge-rows-label {
  background-color: #eecbff;
  color: #333333;
  border: 1px solid #eecbff;
  margin-left: 5px;
}
#gd-tbl-5a96f191 .gd-tbl-badge-rows-value {
  background-color: transparent;
  color: #333333;
  border: 1px solid #eecbff;
  margin-left: -4px;
  margin-right: 3px;
}
#gd-tbl-5a96f191 .gd-tbl-badge-cols-label {
  background-color: #BDE7B4;
  color: #333333;
  border: 1px solid #BDE7B4;
}
#gd-tbl-5a96f191 .gd-tbl-badge-cols-value {
  background-color: transparent;
  color: #333333;
  border: 1px solid #BDE7B4;
  margin-left: -4px;
}
/* Dark mode */
body.quarto-dark #gd-tbl-5a96f191 .gt_table,
html.quarto-dark #gd-tbl-5a96f191 .gt_table,
:root[data-bs-theme="dark"] #gd-tbl-5a96f191 .gt_table {
  background-color: #1a1a2e;
  color: #e0e0e0;
  border-top-color: #555;
  border-bottom-color: #555;
}
body.quarto-dark #gd-tbl-5a96f191 .gt_heading,
html.quarto-dark #gd-tbl-5a96f191 .gt_heading,
:root[data-bs-theme="dark"] #gd-tbl-5a96f191 .gt_heading {
  background-color: #1a1a2e;
  border-bottom-color: #1a1a2e;
}
body.quarto-dark #gd-tbl-5a96f191 .gt_title,
html.quarto-dark #gd-tbl-5a96f191 .gt_title,
:root[data-bs-theme="dark"] #gd-tbl-5a96f191 .gt_title {
  color: #e0e0e0;
}
body.quarto-dark #gd-tbl-5a96f191 .gt_subtitle,
html.quarto-dark #gd-tbl-5a96f191 .gt_subtitle,
:root[data-bs-theme="dark"] #gd-tbl-5a96f191 .gt_subtitle {
  color: #b0b0b0;
}
body.quarto-dark #gd-tbl-5a96f191 .gt_col_headings,
html.quarto-dark #gd-tbl-5a96f191 .gt_col_headings,
:root[data-bs-theme="dark"] #gd-tbl-5a96f191 .gt_col_headings {
  border-top-color: #444;
  border-bottom-color: #444;
}
body.quarto-dark #gd-tbl-5a96f191 .gt_col_heading,
html.quarto-dark #gd-tbl-5a96f191 .gt_col_heading,
:root[data-bs-theme="dark"] #gd-tbl-5a96f191 .gt_col_heading {
  color: #b0b0b0;
  background-color: #1a1a2e;
  border-left-color: #333;
  border-right-color: #333;
}
body.quarto-dark #gd-tbl-5a96f191 .gt_table_body,
html.quarto-dark #gd-tbl-5a96f191 .gt_table_body,
:root[data-bs-theme="dark"] #gd-tbl-5a96f191 .gt_table_body {
  border-top-color: #444;
}
body.quarto-dark #gd-tbl-5a96f191 .gt_table_body .gt_row,
html.quarto-dark #gd-tbl-5a96f191 .gt_table_body .gt_row,
:root[data-bs-theme="dark"] #gd-tbl-5a96f191 .gt_table_body .gt_row {
  color: #d0d0d0;
  border-top-color: #4b4b4b;
  border-bottom-color: #4b4b4b;
  border-left-color: #333;
  border-right-color: #333;
}
body.quarto-dark #gd-tbl-5a96f191 .gd-tbl-rownum,
html.quarto-dark #gd-tbl-5a96f191 .gd-tbl-rownum,
:root[data-bs-theme="dark"] #gd-tbl-5a96f191 .gd-tbl-rownum {
  color: #888;
  border-right-color: rgba(102, 153, 204, 0.4) !important;
}
body.quarto-dark #gd-tbl-5a96f191 .gd-tbl-missing,
html.quarto-dark #gd-tbl-5a96f191 .gd-tbl-missing,
:root[data-bs-theme="dark"] #gd-tbl-5a96f191 .gd-tbl-missing {
  color: #ff6b6b !important;
  background-color: rgba(60, 17, 24, 0.2);
}
body.quarto-dark #gd-tbl-5a96f191 .gd-tbl-dtype,
html.quarto-dark #gd-tbl-5a96f191 .gd-tbl-dtype,
:root[data-bs-theme="dark"] #gd-tbl-5a96f191 .gd-tbl-dtype {
  color: #888;
}
body.quarto-dark #gd-tbl-5a96f191 .gt_bottom_border,
html.quarto-dark #gd-tbl-5a96f191 .gt_bottom_border,
:root[data-bs-theme="dark"] #gd-tbl-5a96f191 .gt_bottom_border {
  border-bottom-color: #555;
}
body.quarto-dark #gd-tbl-5a96f191 .gd-tbl-badge-rows-label,
html.quarto-dark #gd-tbl-5a96f191 .gd-tbl-badge-rows-label,
:root[data-bs-theme="dark"] #gd-tbl-5a96f191 .gd-tbl-badge-rows-label {
  background-color: #3d2a4d;
  border-color: #3d2a4d;
  color: #e0c0ff;
}
body.quarto-dark #gd-tbl-5a96f191 .gd-tbl-badge-rows-value,
html.quarto-dark #gd-tbl-5a96f191 .gd-tbl-badge-rows-value,
:root[data-bs-theme="dark"] #gd-tbl-5a96f191 .gd-tbl-badge-rows-value {
  border-color: #3d2a4d;
  color: #d0b0e0;
}
body.quarto-dark #gd-tbl-5a96f191 .gd-tbl-badge-cols-label,
html.quarto-dark #gd-tbl-5a96f191 .gd-tbl-badge-cols-label,
:root[data-bs-theme="dark"] #gd-tbl-5a96f191 .gd-tbl-badge-cols-label {
  background-color: #2a4d2a;
  border-color: #2a4d2a;
  color: #b0e0b0;
}
body.quarto-dark #gd-tbl-5a96f191 .gd-tbl-badge-cols-value,
html.quarto-dark #gd-tbl-5a96f191 .gd-tbl-badge-cols-value,
:root[data-bs-theme="dark"] #gd-tbl-5a96f191 .gd-tbl-badge-cols-value {
  border-color: #2a4d2a;
  color: #a0d0a0;
}
</style>

<table class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<thead>
<tr class="gt_heading">
<th colspan="5" class="gt_heading gt_title gt_font_normal"><div style="padding-top: 0; padding-bottom: 7px;">
<span class="gd-tbl-badge" style="background-color: #0075FF; color: #FFFFFF; border: 1px solid #0075FF; margin-right: 8px;">Polars</span>Rows5Columns4
</div></th>
</tr>
<tr class="gt_col_headings">
<th class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"></th>
<th id="time" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

time

<em>f64</em>

</div></th>
<th id="subject_1" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

subject_1

<em>f64</em>

</div></th>
<th id="subject_2" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

subject_2

<em>f64</em>

</div></th>
<th id="subject_3" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

subject_3

<em>f64</em>

</div></th>
</tr>
</thead>
<tbody class="gt_table_body">
<tr>
<td class="gt_row gt_right gd-tbl-rownum">0</td>
<td class="gt_row gt_right" style="max-width: 66px">100</td>
<td class="gt_row gt_right" style="max-width: 133px">0.25153334415</td>
<td class="gt_row gt_right" style="max-width: 133px">0.228796917484</td>
<td class="gt_row gt_right" style="max-width: 133px">0.189303819865</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">1</td>
<td class="gt_row gt_right" style="max-width: 66px">200</td>
<td class="gt_row gt_right" style="max-width: 133px">0.538549599729</td>
<td class="gt_row gt_right" style="max-width: 133px">0.489869399806</td>
<td class="gt_row gt_right" style="max-width: 133px">0.405312054192</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">2</td>
<td class="gt_row gt_right" style="max-width: 66px">365</td>
<td class="gt_row gt_right" style="max-width: 133px">1.24631363686</td>
<td class="gt_row gt_right" style="max-width: 133px">1.13365772358</td>
<td class="gt_row gt_right" style="max-width: 133px">0.937974776287</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">3</td>
<td class="gt_row gt_right" style="max-width: 66px">500</td>
<td class="gt_row gt_right" style="max-width: 133px">1.87147731715</td>
<td class="gt_row gt_right" style="max-width: 133px">1.70231204436</td>
<td class="gt_row gt_right" style="max-width: 133px">1.40847252727</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">4</td>
<td class="gt_row gt_right" style="max-width: 66px">730</td>
<td class="gt_row gt_right" style="max-width: 133px">2.93657099468</td>
<td class="gt_row gt_right" style="max-width: 133px">2.67113051682</td>
<td class="gt_row gt_right" style="max-width: 133px">2.2100612882</td>
</tr>
</tbody>
</table>


# Comparing with Cox

PEM covariate estimates should be close to Cox when the interval structure is flexible enough. Large differences may signal that the proportional hazards assumption holds differently once the baseline is parameterized.


``` python
cox = gw.CoxPH().fit(y, lung[["age", "sex"]])
cox.to_frame(format="polars")
```


<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,600;1,400&family=IBM+Plex+Sans:wght@400;600&display=swap');
#gd-tbl-988bec54 .gt_table {
  display: table;
  border-collapse: collapse;
  table-layout: fixed;
  line-height: normal;
  margin-left: auto;
  margin-right: auto;
  color: #333333;
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  background-color: #FFFFFF;
  width: auto;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #A8A8A8;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #A8A8A8;
}
#gd-tbl-988bec54 .gt_heading {
  background-color: #FFFFFF;
  text-align: left;
  border-bottom-color: #FFFFFF;
  border-left-style: none;
  border-right-style: none;
}
#gd-tbl-988bec54 .gt_title {
  color: #333333;
  font-size: 125%;
  font-weight: initial;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
  border-bottom-color: #FFFFFF;
  border-bottom-width: 0;
}
#gd-tbl-988bec54 .gt_subtitle {
  color: #333333;
  font-size: 85%;
  font-weight: initial;
  padding-top: 3px;
  padding-bottom: 5px;
  padding-left: 5px;
  padding-right: 5px;
  border-top-color: #FFFFFF;
  border-top-width: 0;
}
#gd-tbl-988bec54 .gt_bottom_border {
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
}
#gd-tbl-988bec54 .gt_col_headings {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-right-style: none;
}
#gd-tbl-988bec54 .gt_col_heading {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: normal;
  text-transform: inherit;
  border-left-style: solid;
  border-left-width: 1px;
  border-left-color: #F2F2F2;
  border-right-style: solid;
  border-right-width: 1px;
  border-right-color: #F2F2F2;
  vertical-align: bottom;
  padding-top: 5px;
  padding-bottom: 5px;
  padding-left: 5px;
  padding-right: 5px;
  overflow-x: hidden;
}
#gd-tbl-988bec54 .gt_table_body {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
}
#gd-tbl-988bec54 .gt_row {
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
  margin: 10px;
  border-top-style: solid;
  border-top-width: 1px;
  border-top-color: #E9E9E9;
  border-left-style: solid;
  border-left-width: 1px;
  border-left-color: #E9E9E9;
  border-right-style: solid;
  border-right-width: 1px;
  border-right-color: #E9E9E9;
  vertical-align: middle;
  overflow-x: hidden;
}
#gd-tbl-988bec54 .gt_left { text-align: left; }
#gd-tbl-988bec54 .gt_center { text-align: center; }
#gd-tbl-988bec54 .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
#gd-tbl-988bec54 .gt_font_normal { font-weight: normal; }
#gd-tbl-988bec54 .gt_font_bold { font-weight: bold; }
#gd-tbl-988bec54 .gt_font_italic { font-style: italic; }
#gd-tbl-988bec54 .gt_striped { background-color: rgba(128,128,128,0.05); }
#gd-tbl-988bec54 .gt_from_md > :first-child { margin-top: 0; }
#gd-tbl-988bec54 .gt_from_md > :last-child { margin-bottom: 0; }
/* Data cell font */
#gd-tbl-988bec54 .gt_table_body .gt_row {
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  color: #333333;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  height: 14px;
}
/* Column label font */
#gd-tbl-988bec54 .gt_col_heading {
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  color: #333333;
}
/* Row number styling */
#gd-tbl-988bec54 .gd-tbl-rownum {
  color: gray;
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  border-right: 2px solid rgba(102, 153, 204, 0.5) !important;
  text-align: right;
  padding-right: 6px;
  white-space: nowrap;
}
/* Head/tail divider */
#gd-tbl-988bec54 tr.gd-tbl-divider td,
#gd-tbl-988bec54 tr.gd-tbl-divider th {
  border-bottom: 2px solid rgba(102, 153, 204, 0.5);
}
/* Missing values */
#gd-tbl-988bec54 .gd-tbl-missing {
  color: #B22222 !important;
  background-color: rgba(255, 193, 193, 0.35);
}
/* Column label sub-elements */
#gd-tbl-988bec54 .gd-tbl-colname {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding-bottom: 0;
  margin-bottom: 0;
}
#gd-tbl-988bec54 .gd-tbl-dtype {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding-top: 0;
  margin-top: 0;
  color: #666666;
}
/* Header badge styling */
#gd-tbl-988bec54 .gd-tbl-badge {
  display: inline-block;
  padding: 2px 10px;
  font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 10px;
  font-weight: bold;
  text-transform: uppercase;
  position: inherit;
}
#gd-tbl-988bec54 .gd-tbl-badge-rows-label {
  background-color: #eecbff;
  color: #333333;
  border: 1px solid #eecbff;
  margin-left: 5px;
}
#gd-tbl-988bec54 .gd-tbl-badge-rows-value {
  background-color: transparent;
  color: #333333;
  border: 1px solid #eecbff;
  margin-left: -4px;
  margin-right: 3px;
}
#gd-tbl-988bec54 .gd-tbl-badge-cols-label {
  background-color: #BDE7B4;
  color: #333333;
  border: 1px solid #BDE7B4;
}
#gd-tbl-988bec54 .gd-tbl-badge-cols-value {
  background-color: transparent;
  color: #333333;
  border: 1px solid #BDE7B4;
  margin-left: -4px;
}
/* Dark mode */
body.quarto-dark #gd-tbl-988bec54 .gt_table,
html.quarto-dark #gd-tbl-988bec54 .gt_table,
:root[data-bs-theme="dark"] #gd-tbl-988bec54 .gt_table {
  background-color: #1a1a2e;
  color: #e0e0e0;
  border-top-color: #555;
  border-bottom-color: #555;
}
body.quarto-dark #gd-tbl-988bec54 .gt_heading,
html.quarto-dark #gd-tbl-988bec54 .gt_heading,
:root[data-bs-theme="dark"] #gd-tbl-988bec54 .gt_heading {
  background-color: #1a1a2e;
  border-bottom-color: #1a1a2e;
}
body.quarto-dark #gd-tbl-988bec54 .gt_title,
html.quarto-dark #gd-tbl-988bec54 .gt_title,
:root[data-bs-theme="dark"] #gd-tbl-988bec54 .gt_title {
  color: #e0e0e0;
}
body.quarto-dark #gd-tbl-988bec54 .gt_subtitle,
html.quarto-dark #gd-tbl-988bec54 .gt_subtitle,
:root[data-bs-theme="dark"] #gd-tbl-988bec54 .gt_subtitle {
  color: #b0b0b0;
}
body.quarto-dark #gd-tbl-988bec54 .gt_col_headings,
html.quarto-dark #gd-tbl-988bec54 .gt_col_headings,
:root[data-bs-theme="dark"] #gd-tbl-988bec54 .gt_col_headings {
  border-top-color: #444;
  border-bottom-color: #444;
}
body.quarto-dark #gd-tbl-988bec54 .gt_col_heading,
html.quarto-dark #gd-tbl-988bec54 .gt_col_heading,
:root[data-bs-theme="dark"] #gd-tbl-988bec54 .gt_col_heading {
  color: #b0b0b0;
  background-color: #1a1a2e;
  border-left-color: #333;
  border-right-color: #333;
}
body.quarto-dark #gd-tbl-988bec54 .gt_table_body,
html.quarto-dark #gd-tbl-988bec54 .gt_table_body,
:root[data-bs-theme="dark"] #gd-tbl-988bec54 .gt_table_body {
  border-top-color: #444;
}
body.quarto-dark #gd-tbl-988bec54 .gt_table_body .gt_row,
html.quarto-dark #gd-tbl-988bec54 .gt_table_body .gt_row,
:root[data-bs-theme="dark"] #gd-tbl-988bec54 .gt_table_body .gt_row {
  color: #d0d0d0;
  border-top-color: #4b4b4b;
  border-bottom-color: #4b4b4b;
  border-left-color: #333;
  border-right-color: #333;
}
body.quarto-dark #gd-tbl-988bec54 .gd-tbl-rownum,
html.quarto-dark #gd-tbl-988bec54 .gd-tbl-rownum,
:root[data-bs-theme="dark"] #gd-tbl-988bec54 .gd-tbl-rownum {
  color: #888;
  border-right-color: rgba(102, 153, 204, 0.4) !important;
}
body.quarto-dark #gd-tbl-988bec54 .gd-tbl-missing,
html.quarto-dark #gd-tbl-988bec54 .gd-tbl-missing,
:root[data-bs-theme="dark"] #gd-tbl-988bec54 .gd-tbl-missing {
  color: #ff6b6b !important;
  background-color: rgba(60, 17, 24, 0.2);
}
body.quarto-dark #gd-tbl-988bec54 .gd-tbl-dtype,
html.quarto-dark #gd-tbl-988bec54 .gd-tbl-dtype,
:root[data-bs-theme="dark"] #gd-tbl-988bec54 .gd-tbl-dtype {
  color: #888;
}
body.quarto-dark #gd-tbl-988bec54 .gt_bottom_border,
html.quarto-dark #gd-tbl-988bec54 .gt_bottom_border,
:root[data-bs-theme="dark"] #gd-tbl-988bec54 .gt_bottom_border {
  border-bottom-color: #555;
}
body.quarto-dark #gd-tbl-988bec54 .gd-tbl-badge-rows-label,
html.quarto-dark #gd-tbl-988bec54 .gd-tbl-badge-rows-label,
:root[data-bs-theme="dark"] #gd-tbl-988bec54 .gd-tbl-badge-rows-label {
  background-color: #3d2a4d;
  border-color: #3d2a4d;
  color: #e0c0ff;
}
body.quarto-dark #gd-tbl-988bec54 .gd-tbl-badge-rows-value,
html.quarto-dark #gd-tbl-988bec54 .gd-tbl-badge-rows-value,
:root[data-bs-theme="dark"] #gd-tbl-988bec54 .gd-tbl-badge-rows-value {
  border-color: #3d2a4d;
  color: #d0b0e0;
}
body.quarto-dark #gd-tbl-988bec54 .gd-tbl-badge-cols-label,
html.quarto-dark #gd-tbl-988bec54 .gd-tbl-badge-cols-label,
:root[data-bs-theme="dark"] #gd-tbl-988bec54 .gd-tbl-badge-cols-label {
  background-color: #2a4d2a;
  border-color: #2a4d2a;
  color: #b0e0b0;
}
body.quarto-dark #gd-tbl-988bec54 .gd-tbl-badge-cols-value,
html.quarto-dark #gd-tbl-988bec54 .gd-tbl-badge-cols-value,
:root[data-bs-theme="dark"] #gd-tbl-988bec54 .gd-tbl-badge-cols-value {
  border-color: #2a4d2a;
  color: #a0d0a0;
}
</style>

<table class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<thead>
<tr class="gt_heading">
<th colspan="8" class="gt_heading gt_title gt_font_normal"><div style="padding-top: 0; padding-bottom: 7px;">
<span class="gd-tbl-badge" style="background-color: #0075FF; color: #FFFFFF; border: 1px solid #0075FF; margin-right: 8px;">Polars</span>Rows2Columns7
</div></th>
</tr>
<tr class="gt_col_headings">
<th class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"></th>
<th id="term" class="gt_col_heading gt_columns_bottom_border gt_left" scope="col"><div>

term

<em>str</em>

</div></th>
<th id="estimate" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

estimate

<em>f64</em>

</div></th>
<th id="std_error" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

std_error

<em>f64</em>

</div></th>
<th id="statistic" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

statistic

<em>f64</em>

</div></th>
<th id="p_value" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

p_value

<em>f64</em>

</div></th>
<th id="conf_low" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

conf_low

<em>f64</em>

</div></th>
<th id="conf_high" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

conf_high

<em>f64</em>

</div></th>
</tr>
</thead>
<tbody class="gt_table_body">
<tr>
<td class="gt_row gt_right gd-tbl-rownum">0</td>
<td class="gt_row gt_left" style="max-width: 50px">age</td>
<td class="gt_row gt_right" style="max-width: 124px">0.0170453318454</td>
<td class="gt_row gt_right" style="max-width: 131px">0.00922327347697</td>
<td class="gt_row gt_right" style="max-width: 117px">1.8480783301</td>
<td class="gt_row gt_right" style="max-width: 131px">0.0645910121296</td>
<td class="gt_row gt_right" style="max-width: 138px">-0.00103195198901</td>
<td class="gt_row gt_right" style="max-width: 124px">0.0351226156798</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">1</td>
<td class="gt_row gt_left" style="max-width: 50px">sex</td>
<td class="gt_row gt_right" style="max-width: 124px">-0.513218517108</td>
<td class="gt_row gt_right" style="max-width: 131px">0.167457962356</td>
<td class="gt_row gt_right" style="max-width: 117px">-3.06476031291</td>
<td class="gt_row gt_right" style="max-width: 131px">0.00217844504671</td>
<td class="gt_row gt_right" style="max-width: 138px">-0.84143009225</td>
<td class="gt_row gt_right" style="max-width: 124px">-0.185006941967</td>
</tr>
</tbody>
</table>


``` python
pem.to_frame(format="polars")
```


<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,600;1,400&family=IBM+Plex+Sans:wght@400;600&display=swap');
#gd-tbl-8911f5e2 .gt_table {
  display: table;
  border-collapse: collapse;
  table-layout: fixed;
  line-height: normal;
  margin-left: auto;
  margin-right: auto;
  color: #333333;
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  background-color: #FFFFFF;
  width: auto;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #A8A8A8;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #A8A8A8;
}
#gd-tbl-8911f5e2 .gt_heading {
  background-color: #FFFFFF;
  text-align: left;
  border-bottom-color: #FFFFFF;
  border-left-style: none;
  border-right-style: none;
}
#gd-tbl-8911f5e2 .gt_title {
  color: #333333;
  font-size: 125%;
  font-weight: initial;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
  border-bottom-color: #FFFFFF;
  border-bottom-width: 0;
}
#gd-tbl-8911f5e2 .gt_subtitle {
  color: #333333;
  font-size: 85%;
  font-weight: initial;
  padding-top: 3px;
  padding-bottom: 5px;
  padding-left: 5px;
  padding-right: 5px;
  border-top-color: #FFFFFF;
  border-top-width: 0;
}
#gd-tbl-8911f5e2 .gt_bottom_border {
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
}
#gd-tbl-8911f5e2 .gt_col_headings {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-right-style: none;
}
#gd-tbl-8911f5e2 .gt_col_heading {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: normal;
  text-transform: inherit;
  border-left-style: solid;
  border-left-width: 1px;
  border-left-color: #F2F2F2;
  border-right-style: solid;
  border-right-width: 1px;
  border-right-color: #F2F2F2;
  vertical-align: bottom;
  padding-top: 5px;
  padding-bottom: 5px;
  padding-left: 5px;
  padding-right: 5px;
  overflow-x: hidden;
}
#gd-tbl-8911f5e2 .gt_table_body {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
}
#gd-tbl-8911f5e2 .gt_row {
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
  margin: 10px;
  border-top-style: solid;
  border-top-width: 1px;
  border-top-color: #E9E9E9;
  border-left-style: solid;
  border-left-width: 1px;
  border-left-color: #E9E9E9;
  border-right-style: solid;
  border-right-width: 1px;
  border-right-color: #E9E9E9;
  vertical-align: middle;
  overflow-x: hidden;
}
#gd-tbl-8911f5e2 .gt_left { text-align: left; }
#gd-tbl-8911f5e2 .gt_center { text-align: center; }
#gd-tbl-8911f5e2 .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
#gd-tbl-8911f5e2 .gt_font_normal { font-weight: normal; }
#gd-tbl-8911f5e2 .gt_font_bold { font-weight: bold; }
#gd-tbl-8911f5e2 .gt_font_italic { font-style: italic; }
#gd-tbl-8911f5e2 .gt_striped { background-color: rgba(128,128,128,0.05); }
#gd-tbl-8911f5e2 .gt_from_md > :first-child { margin-top: 0; }
#gd-tbl-8911f5e2 .gt_from_md > :last-child { margin-bottom: 0; }
/* Data cell font */
#gd-tbl-8911f5e2 .gt_table_body .gt_row {
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  color: #333333;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  height: 14px;
}
/* Column label font */
#gd-tbl-8911f5e2 .gt_col_heading {
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  color: #333333;
}
/* Row number styling */
#gd-tbl-8911f5e2 .gd-tbl-rownum {
  color: gray;
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  border-right: 2px solid rgba(102, 153, 204, 0.5) !important;
  text-align: right;
  padding-right: 6px;
  white-space: nowrap;
}
/* Head/tail divider */
#gd-tbl-8911f5e2 tr.gd-tbl-divider td,
#gd-tbl-8911f5e2 tr.gd-tbl-divider th {
  border-bottom: 2px solid rgba(102, 153, 204, 0.5);
}
/* Missing values */
#gd-tbl-8911f5e2 .gd-tbl-missing {
  color: #B22222 !important;
  background-color: rgba(255, 193, 193, 0.35);
}
/* Column label sub-elements */
#gd-tbl-8911f5e2 .gd-tbl-colname {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding-bottom: 0;
  margin-bottom: 0;
}
#gd-tbl-8911f5e2 .gd-tbl-dtype {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding-top: 0;
  margin-top: 0;
  color: #666666;
}
/* Header badge styling */
#gd-tbl-8911f5e2 .gd-tbl-badge {
  display: inline-block;
  padding: 2px 10px;
  font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 10px;
  font-weight: bold;
  text-transform: uppercase;
  position: inherit;
}
#gd-tbl-8911f5e2 .gd-tbl-badge-rows-label {
  background-color: #eecbff;
  color: #333333;
  border: 1px solid #eecbff;
  margin-left: 5px;
}
#gd-tbl-8911f5e2 .gd-tbl-badge-rows-value {
  background-color: transparent;
  color: #333333;
  border: 1px solid #eecbff;
  margin-left: -4px;
  margin-right: 3px;
}
#gd-tbl-8911f5e2 .gd-tbl-badge-cols-label {
  background-color: #BDE7B4;
  color: #333333;
  border: 1px solid #BDE7B4;
}
#gd-tbl-8911f5e2 .gd-tbl-badge-cols-value {
  background-color: transparent;
  color: #333333;
  border: 1px solid #BDE7B4;
  margin-left: -4px;
}
/* Dark mode */
body.quarto-dark #gd-tbl-8911f5e2 .gt_table,
html.quarto-dark #gd-tbl-8911f5e2 .gt_table,
:root[data-bs-theme="dark"] #gd-tbl-8911f5e2 .gt_table {
  background-color: #1a1a2e;
  color: #e0e0e0;
  border-top-color: #555;
  border-bottom-color: #555;
}
body.quarto-dark #gd-tbl-8911f5e2 .gt_heading,
html.quarto-dark #gd-tbl-8911f5e2 .gt_heading,
:root[data-bs-theme="dark"] #gd-tbl-8911f5e2 .gt_heading {
  background-color: #1a1a2e;
  border-bottom-color: #1a1a2e;
}
body.quarto-dark #gd-tbl-8911f5e2 .gt_title,
html.quarto-dark #gd-tbl-8911f5e2 .gt_title,
:root[data-bs-theme="dark"] #gd-tbl-8911f5e2 .gt_title {
  color: #e0e0e0;
}
body.quarto-dark #gd-tbl-8911f5e2 .gt_subtitle,
html.quarto-dark #gd-tbl-8911f5e2 .gt_subtitle,
:root[data-bs-theme="dark"] #gd-tbl-8911f5e2 .gt_subtitle {
  color: #b0b0b0;
}
body.quarto-dark #gd-tbl-8911f5e2 .gt_col_headings,
html.quarto-dark #gd-tbl-8911f5e2 .gt_col_headings,
:root[data-bs-theme="dark"] #gd-tbl-8911f5e2 .gt_col_headings {
  border-top-color: #444;
  border-bottom-color: #444;
}
body.quarto-dark #gd-tbl-8911f5e2 .gt_col_heading,
html.quarto-dark #gd-tbl-8911f5e2 .gt_col_heading,
:root[data-bs-theme="dark"] #gd-tbl-8911f5e2 .gt_col_heading {
  color: #b0b0b0;
  background-color: #1a1a2e;
  border-left-color: #333;
  border-right-color: #333;
}
body.quarto-dark #gd-tbl-8911f5e2 .gt_table_body,
html.quarto-dark #gd-tbl-8911f5e2 .gt_table_body,
:root[data-bs-theme="dark"] #gd-tbl-8911f5e2 .gt_table_body {
  border-top-color: #444;
}
body.quarto-dark #gd-tbl-8911f5e2 .gt_table_body .gt_row,
html.quarto-dark #gd-tbl-8911f5e2 .gt_table_body .gt_row,
:root[data-bs-theme="dark"] #gd-tbl-8911f5e2 .gt_table_body .gt_row {
  color: #d0d0d0;
  border-top-color: #4b4b4b;
  border-bottom-color: #4b4b4b;
  border-left-color: #333;
  border-right-color: #333;
}
body.quarto-dark #gd-tbl-8911f5e2 .gd-tbl-rownum,
html.quarto-dark #gd-tbl-8911f5e2 .gd-tbl-rownum,
:root[data-bs-theme="dark"] #gd-tbl-8911f5e2 .gd-tbl-rownum {
  color: #888;
  border-right-color: rgba(102, 153, 204, 0.4) !important;
}
body.quarto-dark #gd-tbl-8911f5e2 .gd-tbl-missing,
html.quarto-dark #gd-tbl-8911f5e2 .gd-tbl-missing,
:root[data-bs-theme="dark"] #gd-tbl-8911f5e2 .gd-tbl-missing {
  color: #ff6b6b !important;
  background-color: rgba(60, 17, 24, 0.2);
}
body.quarto-dark #gd-tbl-8911f5e2 .gd-tbl-dtype,
html.quarto-dark #gd-tbl-8911f5e2 .gd-tbl-dtype,
:root[data-bs-theme="dark"] #gd-tbl-8911f5e2 .gd-tbl-dtype {
  color: #888;
}
body.quarto-dark #gd-tbl-8911f5e2 .gt_bottom_border,
html.quarto-dark #gd-tbl-8911f5e2 .gt_bottom_border,
:root[data-bs-theme="dark"] #gd-tbl-8911f5e2 .gt_bottom_border {
  border-bottom-color: #555;
}
body.quarto-dark #gd-tbl-8911f5e2 .gd-tbl-badge-rows-label,
html.quarto-dark #gd-tbl-8911f5e2 .gd-tbl-badge-rows-label,
:root[data-bs-theme="dark"] #gd-tbl-8911f5e2 .gd-tbl-badge-rows-label {
  background-color: #3d2a4d;
  border-color: #3d2a4d;
  color: #e0c0ff;
}
body.quarto-dark #gd-tbl-8911f5e2 .gd-tbl-badge-rows-value,
html.quarto-dark #gd-tbl-8911f5e2 .gd-tbl-badge-rows-value,
:root[data-bs-theme="dark"] #gd-tbl-8911f5e2 .gd-tbl-badge-rows-value {
  border-color: #3d2a4d;
  color: #d0b0e0;
}
body.quarto-dark #gd-tbl-8911f5e2 .gd-tbl-badge-cols-label,
html.quarto-dark #gd-tbl-8911f5e2 .gd-tbl-badge-cols-label,
:root[data-bs-theme="dark"] #gd-tbl-8911f5e2 .gd-tbl-badge-cols-label {
  background-color: #2a4d2a;
  border-color: #2a4d2a;
  color: #b0e0b0;
}
body.quarto-dark #gd-tbl-8911f5e2 .gd-tbl-badge-cols-value,
html.quarto-dark #gd-tbl-8911f5e2 .gd-tbl-badge-cols-value,
:root[data-bs-theme="dark"] #gd-tbl-8911f5e2 .gd-tbl-badge-cols-value {
  border-color: #2a4d2a;
  color: #a0d0a0;
}
</style>

<table class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<thead>
<tr class="gt_heading">
<th colspan="8" class="gt_heading gt_title gt_font_normal"><div style="padding-top: 0; padding-bottom: 7px;">
<span class="gd-tbl-badge" style="background-color: #0075FF; color: #FFFFFF; border: 1px solid #0075FF; margin-right: 8px;">Polars</span>Rows2Columns7
</div></th>
</tr>
<tr class="gt_col_headings">
<th class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"></th>
<th id="term" class="gt_col_heading gt_columns_bottom_border gt_left" scope="col"><div>

term

<em>str</em>

</div></th>
<th id="estimate" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

estimate

<em>f64</em>

</div></th>
<th id="std_error" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

std_error

<em>f64</em>

</div></th>
<th id="statistic" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

statistic

<em>f64</em>

</div></th>
<th id="p_value" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

p_value

<em>f64</em>

</div></th>
<th id="conf_low" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

conf_low

<em>f64</em>

</div></th>
<th id="conf_high" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

conf_high

<em>f64</em>

</div></th>
</tr>
</thead>
<tbody class="gt_table_body">
<tr>
<td class="gt_row gt_right gd-tbl-rownum">0</td>
<td class="gt_row gt_left" style="max-width: 50px">age</td>
<td class="gt_row gt_right" style="max-width: 124px">0.0157901291643</td>
<td class="gt_row gt_right" style="max-width: 131px">0.00917500504479</td>
<td class="gt_row gt_right" style="max-width: 117px">1.72099405802</td>
<td class="gt_row gt_right" style="max-width: 131px">0.0852519021378</td>
<td class="gt_row gt_right" style="max-width: 138px">-0.00219255028142</td>
<td class="gt_row gt_right" style="max-width: 124px">0.0337728086101</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">1</td>
<td class="gt_row gt_left" style="max-width: 50px">sex</td>
<td class="gt_row gt_right" style="max-width: 124px">-0.507742560024</td>
<td class="gt_row gt_right" style="max-width: 131px">0.167172032413</td>
<td class="gt_row gt_right" style="max-width: 117px">-3.03724584009</td>
<td class="gt_row gt_right" style="max-width: 131px">0.00238750650133</td>
<td class="gt_row gt_right" style="max-width: 138px">-0.835393722775</td>
<td class="gt_row gt_right" style="max-width: 124px">-0.180091397273</td>
</tr>
</tbody>
</table>


# Tidy summaries

The PEM integrates with the tidy/glance framework:


``` python
gw.tidy(pem, format="polars")
```


<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,600;1,400&family=IBM+Plex+Sans:wght@400;600&display=swap');
#gd-tbl-c1137d85 .gt_table {
  display: table;
  border-collapse: collapse;
  table-layout: fixed;
  line-height: normal;
  margin-left: auto;
  margin-right: auto;
  color: #333333;
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  background-color: #FFFFFF;
  width: auto;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #A8A8A8;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #A8A8A8;
}
#gd-tbl-c1137d85 .gt_heading {
  background-color: #FFFFFF;
  text-align: left;
  border-bottom-color: #FFFFFF;
  border-left-style: none;
  border-right-style: none;
}
#gd-tbl-c1137d85 .gt_title {
  color: #333333;
  font-size: 125%;
  font-weight: initial;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
  border-bottom-color: #FFFFFF;
  border-bottom-width: 0;
}
#gd-tbl-c1137d85 .gt_subtitle {
  color: #333333;
  font-size: 85%;
  font-weight: initial;
  padding-top: 3px;
  padding-bottom: 5px;
  padding-left: 5px;
  padding-right: 5px;
  border-top-color: #FFFFFF;
  border-top-width: 0;
}
#gd-tbl-c1137d85 .gt_bottom_border {
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
}
#gd-tbl-c1137d85 .gt_col_headings {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-right-style: none;
}
#gd-tbl-c1137d85 .gt_col_heading {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: normal;
  text-transform: inherit;
  border-left-style: solid;
  border-left-width: 1px;
  border-left-color: #F2F2F2;
  border-right-style: solid;
  border-right-width: 1px;
  border-right-color: #F2F2F2;
  vertical-align: bottom;
  padding-top: 5px;
  padding-bottom: 5px;
  padding-left: 5px;
  padding-right: 5px;
  overflow-x: hidden;
}
#gd-tbl-c1137d85 .gt_table_body {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
}
#gd-tbl-c1137d85 .gt_row {
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
  margin: 10px;
  border-top-style: solid;
  border-top-width: 1px;
  border-top-color: #E9E9E9;
  border-left-style: solid;
  border-left-width: 1px;
  border-left-color: #E9E9E9;
  border-right-style: solid;
  border-right-width: 1px;
  border-right-color: #E9E9E9;
  vertical-align: middle;
  overflow-x: hidden;
}
#gd-tbl-c1137d85 .gt_left { text-align: left; }
#gd-tbl-c1137d85 .gt_center { text-align: center; }
#gd-tbl-c1137d85 .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
#gd-tbl-c1137d85 .gt_font_normal { font-weight: normal; }
#gd-tbl-c1137d85 .gt_font_bold { font-weight: bold; }
#gd-tbl-c1137d85 .gt_font_italic { font-style: italic; }
#gd-tbl-c1137d85 .gt_striped { background-color: rgba(128,128,128,0.05); }
#gd-tbl-c1137d85 .gt_from_md > :first-child { margin-top: 0; }
#gd-tbl-c1137d85 .gt_from_md > :last-child { margin-bottom: 0; }
/* Data cell font */
#gd-tbl-c1137d85 .gt_table_body .gt_row {
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  color: #333333;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  height: 14px;
}
/* Column label font */
#gd-tbl-c1137d85 .gt_col_heading {
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  color: #333333;
}
/* Row number styling */
#gd-tbl-c1137d85 .gd-tbl-rownum {
  color: gray;
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  border-right: 2px solid rgba(102, 153, 204, 0.5) !important;
  text-align: right;
  padding-right: 6px;
  white-space: nowrap;
}
/* Head/tail divider */
#gd-tbl-c1137d85 tr.gd-tbl-divider td,
#gd-tbl-c1137d85 tr.gd-tbl-divider th {
  border-bottom: 2px solid rgba(102, 153, 204, 0.5);
}
/* Missing values */
#gd-tbl-c1137d85 .gd-tbl-missing {
  color: #B22222 !important;
  background-color: rgba(255, 193, 193, 0.35);
}
/* Column label sub-elements */
#gd-tbl-c1137d85 .gd-tbl-colname {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding-bottom: 0;
  margin-bottom: 0;
}
#gd-tbl-c1137d85 .gd-tbl-dtype {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding-top: 0;
  margin-top: 0;
  color: #666666;
}
/* Header badge styling */
#gd-tbl-c1137d85 .gd-tbl-badge {
  display: inline-block;
  padding: 2px 10px;
  font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 10px;
  font-weight: bold;
  text-transform: uppercase;
  position: inherit;
}
#gd-tbl-c1137d85 .gd-tbl-badge-rows-label {
  background-color: #eecbff;
  color: #333333;
  border: 1px solid #eecbff;
  margin-left: 5px;
}
#gd-tbl-c1137d85 .gd-tbl-badge-rows-value {
  background-color: transparent;
  color: #333333;
  border: 1px solid #eecbff;
  margin-left: -4px;
  margin-right: 3px;
}
#gd-tbl-c1137d85 .gd-tbl-badge-cols-label {
  background-color: #BDE7B4;
  color: #333333;
  border: 1px solid #BDE7B4;
}
#gd-tbl-c1137d85 .gd-tbl-badge-cols-value {
  background-color: transparent;
  color: #333333;
  border: 1px solid #BDE7B4;
  margin-left: -4px;
}
/* Dark mode */
body.quarto-dark #gd-tbl-c1137d85 .gt_table,
html.quarto-dark #gd-tbl-c1137d85 .gt_table,
:root[data-bs-theme="dark"] #gd-tbl-c1137d85 .gt_table {
  background-color: #1a1a2e;
  color: #e0e0e0;
  border-top-color: #555;
  border-bottom-color: #555;
}
body.quarto-dark #gd-tbl-c1137d85 .gt_heading,
html.quarto-dark #gd-tbl-c1137d85 .gt_heading,
:root[data-bs-theme="dark"] #gd-tbl-c1137d85 .gt_heading {
  background-color: #1a1a2e;
  border-bottom-color: #1a1a2e;
}
body.quarto-dark #gd-tbl-c1137d85 .gt_title,
html.quarto-dark #gd-tbl-c1137d85 .gt_title,
:root[data-bs-theme="dark"] #gd-tbl-c1137d85 .gt_title {
  color: #e0e0e0;
}
body.quarto-dark #gd-tbl-c1137d85 .gt_subtitle,
html.quarto-dark #gd-tbl-c1137d85 .gt_subtitle,
:root[data-bs-theme="dark"] #gd-tbl-c1137d85 .gt_subtitle {
  color: #b0b0b0;
}
body.quarto-dark #gd-tbl-c1137d85 .gt_col_headings,
html.quarto-dark #gd-tbl-c1137d85 .gt_col_headings,
:root[data-bs-theme="dark"] #gd-tbl-c1137d85 .gt_col_headings {
  border-top-color: #444;
  border-bottom-color: #444;
}
body.quarto-dark #gd-tbl-c1137d85 .gt_col_heading,
html.quarto-dark #gd-tbl-c1137d85 .gt_col_heading,
:root[data-bs-theme="dark"] #gd-tbl-c1137d85 .gt_col_heading {
  color: #b0b0b0;
  background-color: #1a1a2e;
  border-left-color: #333;
  border-right-color: #333;
}
body.quarto-dark #gd-tbl-c1137d85 .gt_table_body,
html.quarto-dark #gd-tbl-c1137d85 .gt_table_body,
:root[data-bs-theme="dark"] #gd-tbl-c1137d85 .gt_table_body {
  border-top-color: #444;
}
body.quarto-dark #gd-tbl-c1137d85 .gt_table_body .gt_row,
html.quarto-dark #gd-tbl-c1137d85 .gt_table_body .gt_row,
:root[data-bs-theme="dark"] #gd-tbl-c1137d85 .gt_table_body .gt_row {
  color: #d0d0d0;
  border-top-color: #4b4b4b;
  border-bottom-color: #4b4b4b;
  border-left-color: #333;
  border-right-color: #333;
}
body.quarto-dark #gd-tbl-c1137d85 .gd-tbl-rownum,
html.quarto-dark #gd-tbl-c1137d85 .gd-tbl-rownum,
:root[data-bs-theme="dark"] #gd-tbl-c1137d85 .gd-tbl-rownum {
  color: #888;
  border-right-color: rgba(102, 153, 204, 0.4) !important;
}
body.quarto-dark #gd-tbl-c1137d85 .gd-tbl-missing,
html.quarto-dark #gd-tbl-c1137d85 .gd-tbl-missing,
:root[data-bs-theme="dark"] #gd-tbl-c1137d85 .gd-tbl-missing {
  color: #ff6b6b !important;
  background-color: rgba(60, 17, 24, 0.2);
}
body.quarto-dark #gd-tbl-c1137d85 .gd-tbl-dtype,
html.quarto-dark #gd-tbl-c1137d85 .gd-tbl-dtype,
:root[data-bs-theme="dark"] #gd-tbl-c1137d85 .gd-tbl-dtype {
  color: #888;
}
body.quarto-dark #gd-tbl-c1137d85 .gt_bottom_border,
html.quarto-dark #gd-tbl-c1137d85 .gt_bottom_border,
:root[data-bs-theme="dark"] #gd-tbl-c1137d85 .gt_bottom_border {
  border-bottom-color: #555;
}
body.quarto-dark #gd-tbl-c1137d85 .gd-tbl-badge-rows-label,
html.quarto-dark #gd-tbl-c1137d85 .gd-tbl-badge-rows-label,
:root[data-bs-theme="dark"] #gd-tbl-c1137d85 .gd-tbl-badge-rows-label {
  background-color: #3d2a4d;
  border-color: #3d2a4d;
  color: #e0c0ff;
}
body.quarto-dark #gd-tbl-c1137d85 .gd-tbl-badge-rows-value,
html.quarto-dark #gd-tbl-c1137d85 .gd-tbl-badge-rows-value,
:root[data-bs-theme="dark"] #gd-tbl-c1137d85 .gd-tbl-badge-rows-value {
  border-color: #3d2a4d;
  color: #d0b0e0;
}
body.quarto-dark #gd-tbl-c1137d85 .gd-tbl-badge-cols-label,
html.quarto-dark #gd-tbl-c1137d85 .gd-tbl-badge-cols-label,
:root[data-bs-theme="dark"] #gd-tbl-c1137d85 .gd-tbl-badge-cols-label {
  background-color: #2a4d2a;
  border-color: #2a4d2a;
  color: #b0e0b0;
}
body.quarto-dark #gd-tbl-c1137d85 .gd-tbl-badge-cols-value,
html.quarto-dark #gd-tbl-c1137d85 .gd-tbl-badge-cols-value,
:root[data-bs-theme="dark"] #gd-tbl-c1137d85 .gd-tbl-badge-cols-value {
  border-color: #2a4d2a;
  color: #a0d0a0;
}
</style>

<table class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<thead>
<tr class="gt_heading">
<th colspan="8" class="gt_heading gt_title gt_font_normal"><div style="padding-top: 0; padding-bottom: 7px;">
<span class="gd-tbl-badge" style="background-color: #0075FF; color: #FFFFFF; border: 1px solid #0075FF; margin-right: 8px;">Polars</span>Rows2Columns7
</div></th>
</tr>
<tr class="gt_col_headings">
<th class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"></th>
<th id="term" class="gt_col_heading gt_columns_bottom_border gt_left" scope="col"><div>

term

<em>str</em>

</div></th>
<th id="estimate" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

estimate

<em>f64</em>

</div></th>
<th id="std_error" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

std_error

<em>f64</em>

</div></th>
<th id="statistic" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

statistic

<em>f64</em>

</div></th>
<th id="p_value" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

p_value

<em>f64</em>

</div></th>
<th id="conf_low" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

conf_low

<em>f64</em>

</div></th>
<th id="conf_high" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

conf_high

<em>f64</em>

</div></th>
</tr>
</thead>
<tbody class="gt_table_body">
<tr>
<td class="gt_row gt_right gd-tbl-rownum">0</td>
<td class="gt_row gt_left" style="max-width: 50px">age</td>
<td class="gt_row gt_right" style="max-width: 124px">0.0157901291643</td>
<td class="gt_row gt_right" style="max-width: 131px">0.00917500504479</td>
<td class="gt_row gt_right" style="max-width: 117px">1.72099405802</td>
<td class="gt_row gt_right" style="max-width: 131px">0.0852519021378</td>
<td class="gt_row gt_right" style="max-width: 138px">-0.00219255028142</td>
<td class="gt_row gt_right" style="max-width: 124px">0.0337728086101</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">1</td>
<td class="gt_row gt_left" style="max-width: 50px">sex</td>
<td class="gt_row gt_right" style="max-width: 124px">-0.507742560024</td>
<td class="gt_row gt_right" style="max-width: 131px">0.167172032413</td>
<td class="gt_row gt_right" style="max-width: 117px">-3.03724584009</td>
<td class="gt_row gt_right" style="max-width: 131px">0.00238750650133</td>
<td class="gt_row gt_right" style="max-width: 138px">-0.835393722775</td>
<td class="gt_row gt_right" style="max-width: 124px">-0.180091397273</td>
</tr>
</tbody>
</table>


``` python
gw.glance(pem, format="polars")
```


<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,600;1,400&family=IBM+Plex+Sans:wght@400;600&display=swap');
#gd-tbl-28b9fa46 .gt_table {
  display: table;
  border-collapse: collapse;
  table-layout: fixed;
  line-height: normal;
  margin-left: auto;
  margin-right: auto;
  color: #333333;
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  background-color: #FFFFFF;
  width: auto;
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #A8A8A8;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #A8A8A8;
}
#gd-tbl-28b9fa46 .gt_heading {
  background-color: #FFFFFF;
  text-align: left;
  border-bottom-color: #FFFFFF;
  border-left-style: none;
  border-right-style: none;
}
#gd-tbl-28b9fa46 .gt_title {
  color: #333333;
  font-size: 125%;
  font-weight: initial;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
  border-bottom-color: #FFFFFF;
  border-bottom-width: 0;
}
#gd-tbl-28b9fa46 .gt_subtitle {
  color: #333333;
  font-size: 85%;
  font-weight: initial;
  padding-top: 3px;
  padding-bottom: 5px;
  padding-left: 5px;
  padding-right: 5px;
  border-top-color: #FFFFFF;
  border-top-width: 0;
}
#gd-tbl-28b9fa46 .gt_bottom_border {
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
}
#gd-tbl-28b9fa46 .gt_col_headings {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #D3D3D3;
  border-left-style: none;
  border-right-style: none;
}
#gd-tbl-28b9fa46 .gt_col_heading {
  color: #333333;
  background-color: #FFFFFF;
  font-size: 100%;
  font-weight: normal;
  text-transform: inherit;
  border-left-style: solid;
  border-left-width: 1px;
  border-left-color: #F2F2F2;
  border-right-style: solid;
  border-right-width: 1px;
  border-right-color: #F2F2F2;
  vertical-align: bottom;
  padding-top: 5px;
  padding-bottom: 5px;
  padding-left: 5px;
  padding-right: 5px;
  overflow-x: hidden;
}
#gd-tbl-28b9fa46 .gt_table_body {
  border-top-style: solid;
  border-top-width: 2px;
  border-top-color: #D3D3D3;
}
#gd-tbl-28b9fa46 .gt_row {
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 5px;
  padding-right: 5px;
  margin: 10px;
  border-top-style: solid;
  border-top-width: 1px;
  border-top-color: #E9E9E9;
  border-left-style: solid;
  border-left-width: 1px;
  border-left-color: #E9E9E9;
  border-right-style: solid;
  border-right-width: 1px;
  border-right-color: #E9E9E9;
  vertical-align: middle;
  overflow-x: hidden;
}
#gd-tbl-28b9fa46 .gt_left { text-align: left; }
#gd-tbl-28b9fa46 .gt_center { text-align: center; }
#gd-tbl-28b9fa46 .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
#gd-tbl-28b9fa46 .gt_font_normal { font-weight: normal; }
#gd-tbl-28b9fa46 .gt_font_bold { font-weight: bold; }
#gd-tbl-28b9fa46 .gt_font_italic { font-style: italic; }
#gd-tbl-28b9fa46 .gt_striped { background-color: rgba(128,128,128,0.05); }
#gd-tbl-28b9fa46 .gt_from_md > :first-child { margin-top: 0; }
#gd-tbl-28b9fa46 .gt_from_md > :last-child { margin-bottom: 0; }
/* Data cell font */
#gd-tbl-28b9fa46 .gt_table_body .gt_row {
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  color: #333333;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  height: 14px;
}
/* Column label font */
#gd-tbl-28b9fa46 .gt_col_heading {
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  color: #333333;
}
/* Row number styling */
#gd-tbl-28b9fa46 .gd-tbl-rownum {
  color: gray;
  font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  border-right: 2px solid rgba(102, 153, 204, 0.5) !important;
  text-align: right;
  padding-right: 6px;
  white-space: nowrap;
}
/* Head/tail divider */
#gd-tbl-28b9fa46 tr.gd-tbl-divider td,
#gd-tbl-28b9fa46 tr.gd-tbl-divider th {
  border-bottom: 2px solid rgba(102, 153, 204, 0.5);
}
/* Missing values */
#gd-tbl-28b9fa46 .gd-tbl-missing {
  color: #B22222 !important;
  background-color: rgba(255, 193, 193, 0.35);
}
/* Column label sub-elements */
#gd-tbl-28b9fa46 .gd-tbl-colname {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding-bottom: 0;
  margin-bottom: 0;
}
#gd-tbl-28b9fa46 .gd-tbl-dtype {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  padding-top: 0;
  margin-top: 0;
  color: #666666;
}
/* Header badge styling */
#gd-tbl-28b9fa46 .gd-tbl-badge {
  display: inline-block;
  padding: 2px 10px;
  font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 10px;
  font-weight: bold;
  text-transform: uppercase;
  position: inherit;
}
#gd-tbl-28b9fa46 .gd-tbl-badge-rows-label {
  background-color: #eecbff;
  color: #333333;
  border: 1px solid #eecbff;
  margin-left: 5px;
}
#gd-tbl-28b9fa46 .gd-tbl-badge-rows-value {
  background-color: transparent;
  color: #333333;
  border: 1px solid #eecbff;
  margin-left: -4px;
  margin-right: 3px;
}
#gd-tbl-28b9fa46 .gd-tbl-badge-cols-label {
  background-color: #BDE7B4;
  color: #333333;
  border: 1px solid #BDE7B4;
}
#gd-tbl-28b9fa46 .gd-tbl-badge-cols-value {
  background-color: transparent;
  color: #333333;
  border: 1px solid #BDE7B4;
  margin-left: -4px;
}
/* Dark mode */
body.quarto-dark #gd-tbl-28b9fa46 .gt_table,
html.quarto-dark #gd-tbl-28b9fa46 .gt_table,
:root[data-bs-theme="dark"] #gd-tbl-28b9fa46 .gt_table {
  background-color: #1a1a2e;
  color: #e0e0e0;
  border-top-color: #555;
  border-bottom-color: #555;
}
body.quarto-dark #gd-tbl-28b9fa46 .gt_heading,
html.quarto-dark #gd-tbl-28b9fa46 .gt_heading,
:root[data-bs-theme="dark"] #gd-tbl-28b9fa46 .gt_heading {
  background-color: #1a1a2e;
  border-bottom-color: #1a1a2e;
}
body.quarto-dark #gd-tbl-28b9fa46 .gt_title,
html.quarto-dark #gd-tbl-28b9fa46 .gt_title,
:root[data-bs-theme="dark"] #gd-tbl-28b9fa46 .gt_title {
  color: #e0e0e0;
}
body.quarto-dark #gd-tbl-28b9fa46 .gt_subtitle,
html.quarto-dark #gd-tbl-28b9fa46 .gt_subtitle,
:root[data-bs-theme="dark"] #gd-tbl-28b9fa46 .gt_subtitle {
  color: #b0b0b0;
}
body.quarto-dark #gd-tbl-28b9fa46 .gt_col_headings,
html.quarto-dark #gd-tbl-28b9fa46 .gt_col_headings,
:root[data-bs-theme="dark"] #gd-tbl-28b9fa46 .gt_col_headings {
  border-top-color: #444;
  border-bottom-color: #444;
}
body.quarto-dark #gd-tbl-28b9fa46 .gt_col_heading,
html.quarto-dark #gd-tbl-28b9fa46 .gt_col_heading,
:root[data-bs-theme="dark"] #gd-tbl-28b9fa46 .gt_col_heading {
  color: #b0b0b0;
  background-color: #1a1a2e;
  border-left-color: #333;
  border-right-color: #333;
}
body.quarto-dark #gd-tbl-28b9fa46 .gt_table_body,
html.quarto-dark #gd-tbl-28b9fa46 .gt_table_body,
:root[data-bs-theme="dark"] #gd-tbl-28b9fa46 .gt_table_body {
  border-top-color: #444;
}
body.quarto-dark #gd-tbl-28b9fa46 .gt_table_body .gt_row,
html.quarto-dark #gd-tbl-28b9fa46 .gt_table_body .gt_row,
:root[data-bs-theme="dark"] #gd-tbl-28b9fa46 .gt_table_body .gt_row {
  color: #d0d0d0;
  border-top-color: #4b4b4b;
  border-bottom-color: #4b4b4b;
  border-left-color: #333;
  border-right-color: #333;
}
body.quarto-dark #gd-tbl-28b9fa46 .gd-tbl-rownum,
html.quarto-dark #gd-tbl-28b9fa46 .gd-tbl-rownum,
:root[data-bs-theme="dark"] #gd-tbl-28b9fa46 .gd-tbl-rownum {
  color: #888;
  border-right-color: rgba(102, 153, 204, 0.4) !important;
}
body.quarto-dark #gd-tbl-28b9fa46 .gd-tbl-missing,
html.quarto-dark #gd-tbl-28b9fa46 .gd-tbl-missing,
:root[data-bs-theme="dark"] #gd-tbl-28b9fa46 .gd-tbl-missing {
  color: #ff6b6b !important;
  background-color: rgba(60, 17, 24, 0.2);
}
body.quarto-dark #gd-tbl-28b9fa46 .gd-tbl-dtype,
html.quarto-dark #gd-tbl-28b9fa46 .gd-tbl-dtype,
:root[data-bs-theme="dark"] #gd-tbl-28b9fa46 .gd-tbl-dtype {
  color: #888;
}
body.quarto-dark #gd-tbl-28b9fa46 .gt_bottom_border,
html.quarto-dark #gd-tbl-28b9fa46 .gt_bottom_border,
:root[data-bs-theme="dark"] #gd-tbl-28b9fa46 .gt_bottom_border {
  border-bottom-color: #555;
}
body.quarto-dark #gd-tbl-28b9fa46 .gd-tbl-badge-rows-label,
html.quarto-dark #gd-tbl-28b9fa46 .gd-tbl-badge-rows-label,
:root[data-bs-theme="dark"] #gd-tbl-28b9fa46 .gd-tbl-badge-rows-label {
  background-color: #3d2a4d;
  border-color: #3d2a4d;
  color: #e0c0ff;
}
body.quarto-dark #gd-tbl-28b9fa46 .gd-tbl-badge-rows-value,
html.quarto-dark #gd-tbl-28b9fa46 .gd-tbl-badge-rows-value,
:root[data-bs-theme="dark"] #gd-tbl-28b9fa46 .gd-tbl-badge-rows-value {
  border-color: #3d2a4d;
  color: #d0b0e0;
}
body.quarto-dark #gd-tbl-28b9fa46 .gd-tbl-badge-cols-label,
html.quarto-dark #gd-tbl-28b9fa46 .gd-tbl-badge-cols-label,
:root[data-bs-theme="dark"] #gd-tbl-28b9fa46 .gd-tbl-badge-cols-label {
  background-color: #2a4d2a;
  border-color: #2a4d2a;
  color: #b0e0b0;
}
body.quarto-dark #gd-tbl-28b9fa46 .gd-tbl-badge-cols-value,
html.quarto-dark #gd-tbl-28b9fa46 .gd-tbl-badge-cols-value,
:root[data-bs-theme="dark"] #gd-tbl-28b9fa46 .gd-tbl-badge-cols-value {
  border-color: #2a4d2a;
  color: #a0d0a0;
}
</style>

<table class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<thead>
<tr class="gt_heading">
<th colspan="9" class="gt_heading gt_title gt_font_normal"><div style="padding-top: 0; padding-bottom: 7px;">
<span class="gd-tbl-badge" style="background-color: #0075FF; color: #FFFFFF; border: 1px solid #0075FF; margin-right: 8px;">Polars</span>Rows1Columns8
</div></th>
</tr>
<tr class="gt_col_headings">
<th class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"></th>
<th id="n_intervals" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

n_intervals

<em>i64</em>

</div></th>
<th id="n" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

n

<em>i64</em>

</div></th>
<th id="nevent" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

nevent

<em>i64</em>

</div></th>
<th id="loglik" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

loglik

<em>f64</em>

</div></th>
<th id="aic" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

aic

<em>f64</em>

</div></th>
<th id="bic" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

bic

<em>f64</em>

</div></th>
<th id="df" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

df

<em>i64</em>

</div></th>
<th id="lr_statistic" class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"><div>

lr_statistic

<em>f64</em>

</div></th>
</tr>
</thead>
<tbody class="gt_table_body">
<tr>
<td class="gt_row gt_right gd-tbl-rownum">0</td>
<td class="gt_row gt_right" style="max-width: 102px">3</td>
<td class="gt_row gt_right" style="max-width: 50px">228</td>
<td class="gt_row gt_right" style="max-width: 63px">165</td>
<td class="gt_row gt_right" style="max-width: 117px">-426.579975304</td>
<td class="gt_row gt_right" style="max-width: 110px">863.159950608</td>
<td class="gt_row gt_right" style="max-width: 110px">880.306678752</td>
<td class="gt_row gt_right" style="max-width: 50px">5</td>
<td class="gt_row gt_right" style="max-width: 110px">13.4598097006</td>
</tr>
</tbody>
</table>


# When to use a PEM

The piecewise exponential model is a good choice when:

- You want an explicit baseline hazard estimate (for reporting rates, not just relative effects).
- The hazard has clear period structure (early mortality, treatment plateau, late relapse).
- You need to extrapolate beyond observed follow-up but do not want to commit to a parametric distribution shape.
- You are bridging between a nonparametric analysis and a fully parametric one and want to check sensitivity to baseline hazard assumptions.
