def METHOD_NAME(self, *, data, prior_process):
    # Measurement model for SciPy observations
    ode_dim = prior_process.transition.wiener_process_dimension
    proj_to_y = prior_process.transition.proj2coord(coord=0)
    observation_noise_std = self._observation_noise_std * np.ones(ode_dim)
    process_noise = randvars.Normal(
        mean=np.zeros(ode_dim),
        cov=np.diag(observation_noise_std**2),
        cov_cholesky=np.diag(observation_noise_std),
    )
    measmod_scipy = randprocs.markov.discrete.LTIGaussian(
        transition_matrix=proj_to_y,
        noise=process_noise,
        forward_implementation="sqrt",
        backward_implementation="sqrt",
    )
    # Regression problem
    ts, ys = data
    regression_problem = problems.TimeSeriesRegressionProblem(
        observations=ys, locations=ts, measurement_models=[measmod_scipy] * len(ts)
    )
    # Infer the solution
    kalman = filtsmooth.gaussian.Kalman(prior_process)
    out, _ = kalman.filtsmooth(regression_problem)
    estimated_initrv = out.states[0]
    return estimated_initrv