Oura Ring Gen 4 sensor data, not clinical measurementsN=1 case study, not validated for clinical decisionsHEV diagnosed Mar 18; Day 205 post-ruxolitinibMore
Consumer wearable data can support exploratory review only. The HEV diagnosis, temporally confounded with treatment start, remains a material confounder.

Causal Inference: Ruxolitinib

Data period: 2026-01-08 to 2026-10-06 (272 days) | Total runtime: 8.5s
Four complementary causal analysis methods explore whether Oura biometrics shifted after ruxolitinib (10 mg BID, started 2026-03-16) on Oura Ring biometrics. Data period: 2026-01-08 to 2026-10-06 (272 days). This page tests one split, at ruxolitinib start. A beta-blocker was added on 2026-04-08; the Piecewise ITS and Tau-U pages separate the two medicines, and the placebo section below calibrates the methods used here.
CausalImpact
10/11
streams FDR-significant, Bayesian structural time series
Placebo check
Liberal
2/9
placebo dates in the pre-period that CausalImpact calls significant
HRV, all nights on treatment
Descriptive
26.2ms
10.0 → 26.2 ms · d=+1.95 · pooled Mann-Whitney, see placebo section
Sleeping HR, all nights on treatment
Descriptive
69.5bpm
85.2 → 69.5 bpm · d=-2.04 · pooled Mann-Whitney, see placebo section
On treatment
Info
205nights
67 nights before · split at ruxolitinib start only
Strongest CI stream
Significant
p<0.001
REM sleep duration (s) · q=0.0000
Methods used
Info
4
CausalImpact + PCMCI+ + Transfer entropy + Mediation
INDIV

0. Individual Metric Treatment Response

Method: Non-parametric Mann-Whitney U test compares pre- vs post-ruxolitinib distributions for each core biometric. Effect sizes reported as Cohen's d with bootstrap 95% CI (2000 iterations). These direct statistical tests provide intuitive per-metric significance before the multivariate causal methods below.
HRV (RMSSD)
Significant
p<0.001
d=+1.95 (large)
Lowest HR
Significant
p<0.001
d=-2.18 (large)
Average HR
Significant
p<0.001
d=-2.04 (large)
Sleep Efficiency
Significant
p<0.001
d=+0.83 (large)
Metric Pre-Rux Mean Post-Rux Mean Change Cohen's d Mann-Whitney 95% CI (diff)
HRV (RMSSD)10.00 ms26.21 ms+16.21 ms+1.95 (large)Sig p<0.001[+14.73, +17.68]
Lowest HR76.72 bpm60.72 bpm-16.00 bpm-2.18 (large)Sig p<0.001[-17.84, -14.26]
Average HR85.17 bpm69.54 bpm-15.63 bpm-2.04 (large)Sig p<0.001[-17.70, -13.65]
Sleep Efficiency78.62 %83.07 %+4.45 %+0.83 (large)Sig p<0.001[+3.33, +5.66]
Note: These per-metric tests complement the Bayesian CausalImpact analysis below. For full changepoint detection and multi-patient comparison, see the Comparative Treatment Response report.
CONFOUNDER

0b. Confounder Analysis: Beta-Blocker Separation

Method: Three-period analysis separating the post-treatment window into Jakavi-only (23 days) and Jakavi + beta-blocker (182 days). Mann-Whitney U tests isolate each drug's contribution. This addresses the key confounder question: does Ruxolitinib's effect stand independently of the beta-blocker added later?
Treatment Timeline
Pre-treatment: 67 days
Jakavi only: 2026-03-16 to 2026-04-07 (23 days)
Jakavi + BB: 2026-04-08 to present (182 days)
Test 1: Isolated Ruxolitinib Effect
Pre-treatment vs Jakavi-only period (beta-blocker confounder eliminated)
MetricPre MeanJakavi-only MeanChangeCohen's dp-value
HRV (RMSSD)10.0 ms (n=67)10.9 ms (n=22)+0.9 ms+0.40 (small)p=0.076
Lowest HR76.7 bpm (n=64)72.9 bpm (n=19)-3.8 bpm-0.77 (medium)p=0.0093
Average HR85.2 bpm (n=64)81.4 bpm (n=19)-3.7 bpm-0.66 (medium)p=0.0119
Sleep Efficiency78.6 % (n=64)79.9 % (n=19)+1.3 %+0.36 (small)p=0.102
Test 2: Marginal Beta-Blocker Effect
Jakavi-only vs Jakavi + beta-blocker (what BB adds on top)
MetricJakavi-only MeanJakavi+BB MeanChangep-value
HRV (RMSSD)10.9 ms (n=22)28.1 ms (n=181)+17.1 msp=0.0000
Lowest HR72.9 bpm (n=19)59.4 bpm (n=178)-13.5 bpmp=0.0000
Average HR81.4 bpm (n=19)68.3 bpm (n=178)-13.2 bpmp=0.0000
Sleep Efficiency79.9 % (n=19)83.4 % (n=178)+3.5 %p=0.0001
Key Findings
  • Ruxolitinib alone produces a statistically significant reduction in heart rate, independent of beta-blocker.
  • HRV improvement during Jakavi-only period does not reach significance - the HRV signal strengthens after beta-blocker addition.
  • Beta-blocker addition produces a significant further HRV increase on top of Jakavi.
CI

1. CausalImpact - Bayesian Structural Time Series Analysis

Method: Bayesian Structural Time Series (BSTS) models pre-intervention dynamics and generates a counterfactual prediction for the post-period. The difference between actual and counterfactual estimates the causal effect, with full posterior uncertainty. MCMC: 5,000 iterations, weekly seasonal component (nseasons=7). Benjamini-Hochberg FDR correction for multiple testing.
FDR correction: The Benjamini-Hochberg method is applied to control for multiple testing (11 simultaneous tests). q-values (adjusted p-values) below 0.05 indicate statistical significance after FDR correction.
StreamActual (post)Counterfactual Causal effectRelative95% CIp-valueq-value (BH)
REM sleep duration (s) LOW CONFIDENCE4316.123194.16+1121.96 s+35.1%[-1867.05, +4110.98]0.00000.0000 Sig (FDR)
REM sleep fraction (%) LOW CONFIDENCE17.5515.06+2.49 %+16.6%[-7.97, +12.95]0.00000.0000 Sig (FDR)
Total sleep (hours) LOW CONFIDENCE6.805.93+0.86 h+14.6%[-1.11, +2.83]0.00000.0000 Sig (FDR)
Deep sleep duration (s) LOW CONFIDENCE4678.904067.59+611.31 s+15.0%[-1688.74, +2911.37]0.00400.0044 Sig (FDR)
HRV mean RMSSD (ms)26.1310.15+15.97 ms—[+10.90, +21.05]0.00000.0000 Sig (FDR)
HRV max RMSSD (ms)63.1326.74+36.39 ms—[+15.34, +57.44]0.00000.0000 Sig (FDR)
Lowest heart rate (bpm)61.1076.66-15.55 bpm-20.3%[-27.67, -3.44]0.00000.0000 Sig (FDR)
Average heart rate (bpm) LOW CONFIDENCE81.8392.42-10.58 bpm-11.4%[-24.22, +3.06]0.00000.0000 Sig (FDR)
Respiratory rate (br/min) LOW CONFIDENCE15.0913.94+1.16 br/min+8.3%[-0.45, +2.76]0.00000.0000 Sig (FDR)
SpO2 (%) LOW CONFIDENCE95.4696.10-0.64 %-0.7%[-1.79, +0.52]0.00000.0000 Sig (FDR)
Temperature deviation (°C) LOW CONFIDENCE0.030.08-0.05 °C-62.7%[-0.60, +0.50]0.12590.1259 NS (FDR)
STATPOWER

1a. Statistical Power &amp; Interpretation

Purpose: All 11 metrics sorted by statistical significance, with Benjamini-Hochberg corrected q-values for multiple testing.
Day 205 of ongoing monitoring
Data through 2026-10-06. Next milestone at Day 14.

REM sleep duration (s) is the strongest hypothesis-generating raw p-value signal (p<0.001, q=0.000) but remains significant after Benjamini-Hochberg correction.

MetricDirection Absolute effect Relative effect Raw p-value BH q-value Significance
REM sleep duration (s)↑ increased+1121.96 s+35.1%0.00000.0000FDR significant
REM sleep fraction (%)↑ increased+2.49 %+16.6%0.00000.0000FDR significant
Total sleep (hours)↑ increased+0.86 h+14.6%0.00000.0000FDR significant
HRV mean RMSSD (ms)↑ increased+15.97 ms—0.00000.0000FDR significant
HRV max RMSSD (ms)↑ increased+36.39 ms—0.00000.0000FDR significant
Lowest heart rate (bpm)↓ decreased-15.55 bpm-20.3%0.00000.0000FDR significant
Average heart rate (bpm)↓ decreased-10.58 bpm-11.4%0.00000.0000FDR significant
Respiratory rate (br/min)↑ increased+1.16 br/min+8.3%0.00000.0000FDR significant
SpO2 (%)↓ decreased-0.64 %-0.7%0.00000.0000FDR significant
Deep sleep duration (s)↑ increased+611.31 s+15.0%0.00400.0044FDR significant
Temperature deviation (°C)↓ decreased-0.05 °C-62.7%0.12590.1259Not significant
Interpretation: With 205 post-intervention days, REM sleep duration (s) is the strongest raw p-value signal, but no stream remains significant after BH correction. 2/9 placebo tests also reached p<0.05, so the current result should be treated as hypothesis-generating rather than confirmed. Autonomic metrics (HRV, lowest HR, REM) still trend in the expected direction and may stabilize with additional follow-up. A 14-day post-intervention window is expected to clarify borderline metrics (lowest HR p<0.001, HRV p<0.001, REM p<0.001).

Placebo test summary

Placebo dateMetric p-valueSignificant?
2026-01-28REM sleep duration (s)0.1129No
2026-01-28REM sleep fraction (%)0.0000Yes
2026-01-28Total sleep (hours)0.0230Yes
2026-02-10REM sleep duration (s)0.1199No
2026-02-10REM sleep fraction (%)0.1109No
2026-02-10Total sleep (hours)0.3686No
2026-02-23REM sleep duration (s)0.4935No
2026-02-23REM sleep fraction (%)0.4505No
2026-02-23Total sleep (hours)0.3477No

2/9 placebo tests reached significance. This tempers the March 16 signal and keeps the current result in the hypothesis-generating category.

PLACEBO

1b. Placebo tests (intervention date falsification)

Method: CausalImpact is run with 3 random placebo dates in the pre-period on the 3 most significant metrics. Placebo dates should NOT show significant effects.
FAIL
Validation result NOT PASSED
2/9
Significant placebo tests
3
Placebo dates tested

Metrics tested: REM sleep duration (s) (q=0.0000), REM sleep fraction (%) (q=0.0000), Total sleep (hours) (q=0.0000)

Placebo dates: 2026-01-28, 2026-02-10, 2026-02-23

Placebo dateMetricN preN post Effectp-valueResult
2026-01-28REM sleep duration (s)2047+223.7010.1129NS (expected)
2026-01-28REM sleep fraction (%)2047+2.8950.0000Sig (false alarm)
2026-01-28Total sleep (hours)2047-0.6050.0230Sig (false alarm)
2026-02-10REM sleep duration (s)3334+295.5990.1199NS (expected)
2026-02-10REM sleep fraction (%)3334+1.5420.1109NS (expected)
2026-02-10Total sleep (hours)3334-0.0930.3686NS (expected)
2026-02-23REM sleep duration (s)4621+4.3380.4935NS (expected)
2026-02-23REM sleep fraction (%)4621+0.2240.4505NS (expected)
2026-02-23Total sleep (hours)4621-0.1080.3477NS (expected)
Interpretation: Multiple placebo dates produced significant results. The CausalImpact model may have specification issues, or there is too much variability in the pre-period to draw causal conclusions with this method.
PCMCI

2. Granger Causality Network (PCMCI+)

Method: PCMCI+ (tigramite) tests for time-lagged causal relationships between biometric variables using partial correlation. Tau_max = 7 days.

Full period (271 days, 141 significant links)

SourceTargetLagCorrelationp-value
REMdurREMpct0 days+0.8310.0000
REMpctREMdur0 days+0.8310.0000
RMSSDRMSSDmax0 days+0.6380.0000
RMSSDmaxRMSSD0 days+0.6380.0000
REMdurTotalSleep0 days+0.5200.0000
TotalSleepREMdur0 days+0.5200.0000
AvgHRLowestHR1 days+0.4640.0000
LowestHRTempDev0 days+0.3930.0000
TempDevLowestHR0 days+0.3930.0000
SpO2SpO21 days+0.3850.0000

Pre-ruxolitinib (67 days, 65 significant links)

SourceTargetLagCorrelationp-value
REMdurREMpct0 days+0.7500.0000
REMpctREMdur0 days+0.7500.0000
AvgHRLowestHR1 days+0.6470.0000
LowestHRTempDev0 days+0.6210.0000
TempDevLowestHR0 days+0.6210.0000
RMSSDLowestHR0 days-0.5710.0000
LowestHRRMSSD0 days-0.5710.0000
AvgHRRMSSD1 days-0.4960.0002
RMSSDRMSSD1 days+0.4940.0003
TotalSleepDeepDur3 days+0.4570.0007

Network change after ruxolitinib

New links: RMSSD->TotalSleep(lag=0), DeepDur->TempDev(lag=0), SpO2->REMpct(lag=2), LowestHR->RMSSDmax(lag=1), RMSSD->REMdur(lag=2), REMpct->REMpct(lag=1), RMSSDmax->TotalSleep(lag=6), TotalSleep->TempDev(lag=0), AvgHR->REMdur(lag=0), LowestHR->AvgHR(lag=0), AvgHR->TempDev(lag=6), REMdur->TempDev(lag=2), SpO2->TempDev(lag=0), TempDev->TempDev(lag=7), RMSSDmax->AvgHR(lag=0), TotalSleep->RMSSD(lag=2), RespRate->RespRate(lag=2), LowestHR->LowestHR(lag=2), RMSSD->RMSSD(lag=3), REMdur->TotalSleep(lag=7), REMdur->DeepDur(lag=0), LowestHR->DeepDur(lag=0), AvgHR->TotalSleep(lag=4), TotalSleep->SpO2(lag=0), TempDev->LowestHR(lag=7), REMpct->RMSSD(lag=0), DeepDur->LowestHR(lag=1), RespRate->LowestHR(lag=7), REMdur->DeepDur(lag=2), RMSSD->AvgHR(lag=0), AvgHR->RMSSD(lag=0), RespRate->SpO2(lag=4), TempDev->SpO2(lag=0), TempDev->REMpct(lag=0), DeepDur->RespRate(lag=0), DeepDur->TotalSleep(lag=5), REMdur->REMdur(lag=2), LowestHR->RMSSDmax(lag=0), REMpct->RMSSD(lag=2), AvgHR->REMpct(lag=1), SpO2->AvgHR(lag=4), RMSSD->RMSSD(lag=7), AvgHR->RMSSDmax(lag=0), RMSSDmax->LowestHR(lag=0), LowestHR->RMSSD(lag=1), REMpct->RMSSDmax(lag=2), RMSSD->REMpct(lag=5), REMdur->TempDev(lag=1), RMSSDmax->RMSSD(lag=1), TempDev->DeepDur(lag=0), TempDev->RMSSD(lag=3), TempDev->TotalSleep(lag=0), TotalSleep->LowestHR(lag=0), TotalSleep->RMSSDmax(lag=6), RespRate->DeepDur(lag=0), REMdur->RMSSD(lag=0), DeepDur->TotalSleep(lag=0), TotalSleep->TempDev(lag=1), RMSSD->LowestHR(lag=1), RespRate->RespRate(lag=1), DeepDur->REMdur(lag=0), RespRate->RMSSD(lag=0), SpO2->LowestHR(lag=2), AvgHR->SpO2(lag=5), TempDev->TotalSleep(lag=2), REMpct->TempDev(lag=0), RMSSDmax->RMSSDmax(lag=1), REMdur->RMSSD(lag=2), TotalSleep->DeepDur(lag=0), DeepDur->RMSSD(lag=5), RMSSD->REMpct(lag=0), AvgHR->TempDev(lag=0), TempDev->AvgHR(lag=3), RespRate->RMSSD(lag=2), SpO2->TotalSleep(lag=0), TempDev->RMSSD(lag=7), REMdur->AvgHR(lag=0), REMpct->TempDev(lag=2), TempDev->TempDev(lag=1), AvgHR->DeepDur(lag=1), AvgHR->REMpct(lag=0), RMSSD->RespRate(lag=7), REMdur->TotalSleep(lag=1), RMSSD->SpO2(lag=5), SpO2->REMdur(lag=2), TempDev->LowestHR(lag=1), AvgHR->AvgHR(lag=2), LowestHR->TotalSleep(lag=0), RMSSD->RespRate(lag=0), REMpct->LowestHR(lag=7), SpO2->TotalSleep(lag=4), RMSSD->REMdur(lag=5), RMSSDmax->TotalSleep(lag=0), RMSSD->SpO2(lag=7), TotalSleep->RespRate(lag=1), TotalSleep->RMSSD(lag=0), TempDev->AvgHR(lag=0), LowestHR->TotalSleep(lag=2), LowestHR->SpO2(lag=7), DeepDur->TempDev(lag=5), RespRate->TempDev(lag=2), REMpct->AvgHR(lag=0), DeepDur->LowestHR(lag=0), RespRate->AvgHR(lag=6), AvgHR->LowestHR(lag=0), DeepDur->SpO2(lag=6), AvgHR->AvgHR(lag=6), RMSSD->REMdur(lag=0), TotalSleep->RMSSDmax(lag=0), DeepDur->LowestHR(lag=2), DeepDur->REMpct(lag=5), REMpct->TotalSleep(lag=7), REMdur->DeepDur(lag=3)

Lost links: DeepDur->DeepDur(lag=3), RMSSDmax->AvgHR(lag=2), TotalSleep->TotalSleep(lag=1), REMpct->RMSSDmax(lag=7), RespRate->RespRate(lag=7), REMdur->LowestHR(lag=1), TempDev->DeepDur(lag=2), REMpct->TotalSleep(lag=0), LowestHR->TempDev(lag=3), RespRate->TotalSleep(lag=3), SpO2->REMdur(lag=1), RMSSD->SpO2(lag=1), RespRate->AvgHR(lag=7), TempDev->RMSSDmax(lag=3), DeepDur->DeepDur(lag=2), DeepDur->SpO2(lag=4), TotalSleep->DeepDur(lag=3), TempDev->LowestHR(lag=3), RespRate->RMSSDmax(lag=0), REMpct->REMpct(lag=6), RespRate->LowestHR(lag=6), LowestHR->RMSSDmax(lag=6), REMdur->TotalSleep(lag=2), RMSSD->RMSSD(lag=1), RMSSDmax->TotalSleep(lag=5), RMSSDmax->RespRate(lag=0), DeepDur->TotalSleep(lag=4), RMSSD->RMSSDmax(lag=5), AvgHR->AvgHR(lag=3), RespRate->RMSSDmax(lag=2), DeepDur->TempDev(lag=1), DeepDur->RMSSDmax(lag=5), REMdur->TempDev(lag=7), RMSSDmax->REMpct(lag=5), TotalSleep->REMpct(lag=0), RMSSD->RMSSD(lag=6), DeepDur->SpO2(lag=2)

TE

3. Transfer Entropy

Method: Transfer entropy quantifies directional information flow between biometric streams. Comparison of TE matrices for pre- and full period reveals changes in information coupling after ruxolitinib start.

Full period (271 days)

SourceTargetTE (bits)Net TE
AvgHRREMdur1.1150+0.0414
DeepDurRMSSDmax1.1145+0.0907
TempDevRMSSDmax1.1145+0.0321
DeepDurSpO21.1116+0.0728
TempDevSpO21.1116+0.0441
TempDevRespRate1.1084+0.0484
DeepDurREMdur1.1076+0.0688
TempDevREMdur1.1076+0.0401

Pre-ruxolitinib (67 days)

SourceTargetTE (bits)Net TE
REMdurRespRate0.5564+0.1891
TotalSleepRespRate0.5564+0.3064
DeepDurRespRate0.5564+0.2439
RMSSDmaxRespRate0.5564+0.3689
LowestHRRespRate0.5564+0.2127
AvgHRRespRate0.5564+0.1071
SpO2RespRate0.5564+0.1132
REMpctRespRate0.5252+0.0835

Change in information flow

Largest increase: DeepDur -> RMSSDmax (+0.9270 bits)

Largest decrease: REMdur -> REMdur (+0.0000 bits)

MEDIATION

4. Intervention Response Decomposition

Method: Linear mediation analysis (Baron-Kenny) decomposes total ruxolitinib effect into four mediating pathways. Bootstrap (2000 iterations) for confidence intervals.
+10.0
Total effect (readiness score)
64.8 -> 74.8
Pre -> Post average
p<0.001
Raw p-value Significant
PathwayMediator (pre->post)a (T->M) b (M->Y)Indirect effect [95% CI] % mediatedp-value
Direct cardiac
Ruxolitinib -> HR change -> Readiness
92.57 -> 81.69-0.946-0.393+0.3715
[+0.2219, +0.5450]
37.0%0.0000 Sig
Autonomic
Ruxolitinib -> HRV change -> Readiness
10.00 -> 26.38+1.510+0.604+0.9127
[+0.7131, +1.1128]
91.0%0.0000 Sig
Sleep-mediated
Ruxolitinib -> Sleep efficiency -> Readiness
78.62 -> 83.07+0.787+0.455+0.3583
[+0.2367, +0.5036]
35.0%0.0000 Sig
Inflammatory
Ruxolitinib -> Temperature deviation -> Readiness
0.06 -> 0.03-0.095-0.339+0.0321
[-0.0490, +0.1216]
3.2%0.4250 NS
CLINICAL

5. Clinical Interpretation

Executive summary

REM sleep duration (s)
Strongest signal: p=0.000
9/11
Metrics trending in expected direction
205
Post-intervention days (Day 14 target)
  • REM sleep duration (s): strongest hypothesis-generating raw p-value signal (p=0.0000, q=0.0000). It survives FDR correction, so confirmation still depends on more post-treatment follow-up.
  • CausalImpact: 10 of 11 biometric streams show significant causal change (p < 0.05). After Benjamini-Hochberg FDR correction: 10 of 11 remain significant (q < 0.05).
  • Placebo validation: FAIL - 2/9 placebo tests reached significance. This keeps the result vulnerable to false positives rather than establishing a confirmed intervention effect.
  • PCMCI+: 141 significant time-lagged causal links identified in the biometric network
  • Mediation analysis: 3 of 4 mediating pathways show significant indirect effect

Limitations

  • Short post-period (205 days): All results are preliminary. Minimum 14-21 days of post-intervention data recommended for robust causal inference.
  • Confounders: Linear methods cannot capture non-linear interactions. Seasonal variation, activity level, and other medications are not controlled for.
  • Wearable data: Oura Ring is not a medical device. Measurements have inherent noise that can affect causal estimates.
  • Single patient: N=1 study without control group. Causality cannot be definitively established, but Bayesian posterior probability of effect provides a strength measure.
  • HEV diagnosis: HEV was diagnosed 2026-03-18 (2 days after ruxolitinib start). Hepatitis may confound biometric changes.

Recommendations

  1. Repeat analysis after 2-3 weeks of ruxolitinib treatment for robust causal inference
  2. Add HEV-related biomarkers (ALT, bilirubin) as time-varying covariates
  3. Consider synthetic control method when longer time series are available
  4. Combine with clinical endpoints (GVHD scoring, ferritin) for multimodal analysis