% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/winkler.R
\name{winkler_etest}
\alias{winkler_etest}
\title{E-process for Winkler scores (Proposition 4 + Theorem 3)}
\usage{
winkler_etest(
  p,
  q,
  y,
  alpha = 0.05,
  base_score = log_score,
  v_opt = 10,
  clip_max = 1e+07
)
}
\arguments{
\item{p}{Numeric vector in (0,1). Forecasts from model 1.}

\item{q}{Numeric vector in (0,1). Forecasts from model 2.}

\item{y}{Numeric vector containing only 0 and 1. Binary outcomes.}

\item{alpha}{Numeric in (0,1). Significance level. Default: 0.05.}

\item{base_score}{Function. Underlying scoring rule. Default: log_score.}

\item{v_opt}{Numeric > 0. Default: 10.}

\item{clip_max}{Numeric. Maximum e-process value before clipping.
Default: 1e7.}
}
\value{
data.frame with columns t, e, log_e.
}
\description{
Tests whether the mean Winkler score W_t >= 0 for all t.
A rejection provides time-uniform evidence that forecaster 1 (p)
is worse than forecaster 2 (q) under the base scoring rule.
}
\section{Rejection rule}{

Reject at level \code{alpha} when \code{e >= 1 / alpha}; this provides time-uniform
evidence that \code{p} is worse than \code{q}.
}

\examples{
p <- c(0.7, 0.6, 0.8, 0.65)
q <- c(0.5, 0.7, 0.6, 0.55)
y <- c(1, 1, 0, 1)
winkler_etest(p, q, y, alpha = 0.05)

}
