{"id":"f2dfc05a-711f-4ab0-91d0-50e4ea6ac078","arxiv_id":"2506.08976","paper_version":2,"verdict":"CONDITIONAL","confidence":"MODERATE","novelty_score":4.0,"correctness_risk":"medium","formal_verification":"none","parameter_count":5,"one_line_summary":"YauYauAL is a new R package that implements the Yau-Yau nonlinear filter for state estimation in stochastic systems, with a graphical interface and numerical PDE solvers.","lead":"This paper introduces YauYauAL, an open-source R package that implements the Yau-Yau algorithm for nonlinear filtering problems. It turns a mathematically advanced filtering method into a user-friendly tool with a Shiny interface and finite-difference solvers for the Kolmogorov equation.","discovery_kind":"extension","skeptic_critique":{"model":"deepseek-v4-flash","headline":"The package's numerical grid is built from the true simulated state path, so the paper never demonstrates filtering from observations alone; domain adequacy is unvalidated and the central accuracy claim rests on this unexamined choice.","rationale":"The reader's weakest assumption correctly identifies the grid constructed from the simulated state trajectory as a vulnerability. I agree that this is the most load-bearing point, but I would sharpen it further: the issue is not only that the path may fail to cover the relevant region, but that the documented workflow requires the unobserved true state to build the grid, making the presented method inapplicable to genuine filtering tasks without additional guidance. The rest of the paper does not compensate for this: the numerical examples are qualitative, parameter values are internally inconsistent, and no quantitative error metrics or convergence checks are provided. Credit is due for the openly available GitHub repository and the clear installation instructions, which make a replication study feasible. The appropriate verdict remains CONDITIONAL: the paper should be accepted only after the authors provide quantitative validation, grid/domain sensitivity analysis, and explicit guidance for choosing the computational domain from observations or prior knowledge, and after resolving the parameter and code inconsistencies.","tokens_in":9353,"tokens_out":6713,"duration_ms":69843,"concrete_test":"Run the cubic sensor example (T=20, Dt=0.001, Ds=0.5) with the package, then repeat with (i) Ds=0.25, (ii) the grid extended by 2 units on each side (`s <- seq(min(x)-2, max(x)+2, by=Ds)`), and (iii) a grid built only from the observation sequence `y` (e.g., `s <- seq(min(y)-1, max(y)+1, by=Ds)`). Compare the conditional mean trajectories and final density against a dense particle-filter or fine-grid reference. If the maximum RMS deviation across these variants exceeds about 5% of the state range, the solver's domain dependence is material and the paper's accuracy claim needs qualification; if the observation-only grid fails outright, the package cannot be used as documented on real data.","verdict_should_be":"UNCHANGED","load_bearing_attack":"In Section 3.3, the computational domain is fixed by `s <- seq(min(x), max(x)+Ds, by=Ds)`, where `x` is the true state trajectory extracted from `Simulate_State_Obser` in Section 3.2. This is load-bearing for the central claim that YauYauAL provides stable and accurate filtering for practical applications, for two reasons. First, in any real filtering problem the true state is unobserved, so the documented workflow cannot be applied to actual observation data; the paper gives no instruction for choosing a grid from `y` alone or from prior bounds. Second, even in the simulation setting, the finite-difference/DST solver imposes zero boundary conditions, so if the conditional density has nontrivial mass outside `[min(x), max(x)+Ds]`, the solution is corrupted. The numerical experiments in Figures 4 and 5 contain no grid-refinement study, no domain-size sensitivity check, and no comparison to a reference density, so the abstract's claim that the method ensures 'stable and accurate solution' is unsupported. The Discussion acknowledges that performance may be influenced by system characteristics, but it does not connect this to domain choice or explain how a user should select a grid without knowing the true state.","agreement_with_reader":"partial"},"referee_report":{"model":"deepseek-v4-flash","summary":"The manuscript describes YauYauAL, an open-source R package with a C++ backend and a Shiny interface that implements the Yau-Yau nonlinear filter. The filter is realized by numerically solving the Kolmogorov forward equation via finite differences and a discrete sine transform. The paper provides installation instructions, a step-by-step usage guide with R code, two numerical examples (the almost linear sensor problem and the 3-D cubic sensor problem), and a short discussion. The central claims are that the package is stable, accurate, accessible to non-specialists, and suitable for a wide range of nonlinear filtering applications.","tokens_in":9520,"tokens_out":5692,"duration_ms":59441,"significance":"If the numerical implementation is reliable, YauYauAL would be a useful contribution: it packages a theoretically well-motivated filtering algorithm into a reproducible, open-source R tool with a graphical interface. The paper's strengths include public code on GitHub, a reproducible seed-based simulation workflow, the use of Rcpp for efficiency, and a modular design that invites extension. However, the current numerical evidence is too thin to support the accuracy and stability claims: the experiments are side-by-side visualizations only, and the computational domain is chosen from the true simulated state path, which is both impractical for real applications and unexamined with respect to boundary effects. The paper therefore needs additional validation and methodological guidance before its central claims can be accepted.","major_comments":[{"comment":"The computational grid is constructed from the true simulated state trajectory: `s <- seq(min(x), max(x)+Ds, by=Ds)`, where `x` is the output of `Simulate_State_Obser` in §3.2. This is load-bearing for the paper's claim of a stable and accurate filter. First, in any real filtering problem the true state is unobserved, so the documented workflow cannot be applied to actual data, and the paper gives no instruction for choosing the grid from the observations `y` or from prior state bounds. Second, the discrete sine transform solver referenced in §3.4 imposes zero Dirichlet boundary conditions, so if the conditional density has nontrivial mass outside `[min(x), max(x)+Ds]`, the numerical solution is corrupted. The paper reports no grid-refinement study, no domain-size sensitivity analysis, and no check that the density mass lies inside the domain. Section 5 acknowledges that performance may depend on the system, but it does not connect this to domain choice. I recommend adding explicit guidance for grid selection from observables or prior bounds, and a sensitivity/refinement experiment that demonstrates domain adequacy.","section":"§3.3, code lines 2–4"},{"comment":"The experimental setup is internally inconsistent. Equation (2) states a scalar model with x(t), y(t) in R, but the parameter list immediately says Dim = 3, and Figure 4 displays only \"Dimension 1\". The same ambiguity occurs in §4.2: Equation (3) is scalar, yet the text refers to a \"3-D Cubic sensor\" and Figure 5 shows three dimensions. The paper does not explain whether the three dimensions are independent scalar sensors, a vector-valued generalization of the stated model, or something else. Because the numerical experiments are the only evidence for the algorithm's performance, this ambiguity prevents the reader from reproducing the results or assessing whether the stated model is actually the one being solved.","section":"§4.1, Eq. (2) and Figure 4"},{"comment":"The numerical evaluation consists solely of side-by-side plots of the true state and the filter estimate, with no error metrics, no convergence checks, and no comparison to standard baselines such as the particle filter or the extended Kalman filter. The abstract's claim that the method \"ensures a stable and accurate solution\" is therefore not substantiated. The paper should report at least one quantitative accuracy measure (e.g., root mean square error over time) and a comparison to a reference filter, plus a grid-refinement or domain-dependence check, before making this claim.","section":"§4, Figures 4 and 5"},{"comment":"The example setup is not reproducible as written because of an internal inconsistency in the parameter definitions. The code sets `T <- 5`, but the surrounding text states \"the terminal time T is set to 20,\" and the comments give `Ntau <- as.integer(T/Dtau) # 4000` and `NtNtau <- as.integer(T/Dt) # 20000`, which are only consistent with T = 20. The later call in §3.2 uses Ntau = 4000 and NtNtau = 20000, again matching T = 20. The manuscript should correct the code or the text so that the demonstration can actually be run.","section":"§3.1, code block"}],"minor_comments":[{"comment":"There are several typographical and spacing errors, including \"ccurate estimation\" in the introduction and the run-together text \"estimationorforecastsarecomputediterativelyandinreal-time.\" These should be corrected.","section":"Abstract and §1"},{"comment":"The sentence \"The Discrete Sine Transform to efficiently solve the Kolmogorov equation for accurate state estimation in nonlinear systems\" is missing a verb and should be rephrased.","section":"§3.4"},{"comment":"The claim of \"real-time parameter adjustment\" in the abstract is qualified by the statement that Shiny \"might not update the results in real-time\" for custom filters; the paper should reconcile these statements or clarify what \"real-time\" means in this context.","section":"§3.5"},{"comment":"The Discussion is generic and does not mention the true-state dependence of the grid construction or the need for boundary-condition checks; this limitation should be acknowledged explicitly and connected to the numerical solver used.","section":"§5"}],"recommendation":"major_revision","confidential_remarks":null},"author_rebuttal":null,"desk_editor":{"model":"deepseek-v4-flash","letter":"First: this is a software paper, and the software is the contribution. The YauYauAL package is on GitHub, installable, and includes a Shiny interface. That is real. The underlying algorithm is established (Yau-Yau 2008, etc.), so the novelty is the packaging, not the math.\n\nThe paper does some things well. Installation instructions are clear. The code is open source, with a seed for reproducibility. The step-by-step guide in Section 3 walks through the workflow. For someone who wants to try the Yau-Yau filter without writing a solver, this package could save real effort.\n\nThe soft spots are in the validation and the presentation. The strongest concern: the demo grid is built from the true simulated state path (`seq(min(x), max(x)+Ds, by=Ds)`). In a real filtering problem you don't have that. The paper never explains how a user should choose the domain from observations alone, nor does it check sensitivity to domain size or boundary. For a solver with zero boundary conditions, that's not a minor detail. Second, the numerical experiments are side-by-side plots only. No RMSE, no convergence under grid refinement, no comparison to a particle filter or EKF. The abstract says the method ensures 'stable and accurate solution,' but the paper provides no evidence of accuracy. Third, internal inconsistencies: the code listing sets T <- 5 while the text says T=20 (the Ntau comment even gives 4000, which only matches T=20); Example 4.2 is a scalar cubic sensor but Section 3 uses Dim=3 with vector functions; the sine transform is mentioned with no details. These are fixable, but they erode trust.\n\nThe core algorithm is sound, and the package likely works when the domain is chosen sensibly. The issues are not fatal, but the paper as written overclaims. I would send it to review, but with a clear revision letter: add quantitative metrics, a convergence study, a baseline comparison, fix the parameter inconsistencies, and address grid selection—either by requiring user-provided bounds with guidance, or by analyzing the domain choice in the demo.\n\nWho is this for? Researchers who want a turnkey Yau-Yau implementation, or applied users in filtering-heavy fields. They'll get a functional package but should read the paper with caution until the validation catches up.","headline":"A real R package for the Yau-Yau filter, but the paper's accuracy claims outrun its evidence and the demo builds the grid from the true state.","tokens_in":10156,"tokens_out":3452,"would_cite":false,"duration_ms":32052,"reading_group":"maybe","serious_thinker":"yes","would_accept_peer_review":true},"rs_alignment":null,"lean_confirmation":null,"pith_extraction":{"msc":["93E11","60G35","62M20","65M06","65M12"],"pacs":[],"model":"deepseek-v4-flash","headline":"YauYauAL packages the Yau-Yau nonlinear filter into open-source R software.","keywords":["Nonlinear filtering","Yau-Yau algorithm","Kolmogorov forward equation","DMZ equation","Finite difference method","R package","Shiny","Cubic sensor problem"],"falsifier":"Run YauYauAL on a scalar linear-Gaussian model where the Kalman filter gives the exact posterior, using a simulation that does not reach the distribution's tails, and compare the package's estimated conditional mean and density with the exact values; divergence beyond the discretization error would show the grid-coverage assumption is load-bearing. A second check: run the cubic sensor problem with h(x)=x instead of h(x)=$x^{3}$, where the observation-growth condition is weaker, and see whether the estimates degrade.","tokens_in":9087,"feed_emoji":"📦","tokens_out":7271,"duration_ms":70476,"temperature":0.7,"pith_summary":"This paper introduces YauYauAL, an open-source R package that turns the Yau-Yau nonlinear filter into a tool usable by people who do not write filtering code or solve partial differential equations by hand. The package solves the Kolmogorov forward equation on a state-space grid with finite differences and a discrete sine transform, and wraps the computation in a Shiny interface for live parameter changes and plots. The authors demonstrate the package on the almost linear sensor and cubic sensor problems and argue that making the method this accessible can widen its use in signal processing, finance, medicine, and biology.","feed_headline":"R package YauYauAL puts the Yau-Yau filter in reach","feed_subtitle":"No PDE code needed: the package solves the Kolmogorov equation and plots results live.","key_machinery":"The load-bearing mechanism is the Yau-Yau algorithm's reduction of the nonlinear filtering problem to the Kolmogorov forward equation, combined with a finite-difference spatial discretization and a discrete sine transform (DST) solver. Given a drift f and observation h, the package builds a spatial grid, assembles derivative, transition, and observation matrices, then advances the conditional density forward in time and normalizes against the incoming observations. The paper cites the Yau-Yau convergence guarantee that the estimate converges to the true solution when the growth rate of the observation function |h| exceeds that of the drift |f|.","core_discovery":"The central claim is that YauYauAL makes the Yau-Yau nonlinear filter practically usable as software. In the paper's account, the filter estimates a stochastic system's state from noisy observations by solving the Kolmogorov forward equation for the conditional density, and YauYauAL does this numerically with a finite-difference scheme and a discrete sine transform, taking only the drift f, the observation function h, and grid and time-step settings as inputs. The package is written in R with C++ kernels and includes a Shiny-based interactive interface for control and visualization. Its two numerical demonstrations show the Yau-Yau filter estimating states for the almost linear sensor problem and a three-dimensional cubic sensor problem.","pith_inferences":["The spatial grid is built from the range of one simulated trajectory (s <- seq(min(x), max(x)+Ds, by=Ds)), so the package's accuracy silently depends on that trajectory covering the density's support; a short or atypical simulation could produce estimates that are right only inside a truncated domain.","The paper's convergence guarantee (observation growth exceeding drift growth) is not checked in the demonstrations; f=0 and f=cos(x) with h=x^3 both satisfy it, so a stress test with slower-growing observations would probe whether the software is trustworthy outside that regime.","A natural validation the paper does not report is a comparison against the exact Kalman posterior in a linear-Gaussian case or against a particle filter in a nonlinear case; the finite-difference density could be checked for normalization and tail mass."],"forward_implications":["Users who can write down f and h can run a nonlinear filter on their own system without implementing the mathematics or writing numerical solvers.","The interactive interface lets parameters be adjusted and results inspected live, which makes the package usable for quick prototyping and teaching.","The two demonstrations show the method tracking a scalar almost linear sensor and a three-dimensional cubic sensor, so the package is positioned as working beyond scalar textbook examples.","Because the code is open-source and modular, researchers can replace or extend the numerical components for their own applications."],"supporting_citations":[{"why":"introduces the Yau-Yau algorithm for the pathwise-robust DMZ equation and the convergence condition used by the package.","marker":"[42]"},{"why":"provides the theoretical result that the state estimate follows from solving the Kolmogorov equations.","marker":"[35,36]"},{"why":"supplies the efficient numerical method for high-dimensional nonlinear filtering that the package implements.","marker":"[23,24]"},{"why":"extends Yau-Yau to time-varying cases and gives a spectral method for the forward Kolmogorov equation.","marker":"[21]"},{"why":"defines the cubic sensor problem used as a demonstration.","marker":"[41]"}],"fun_headline_variants":["YauYauAL solves nonlinear filtering without PDE expertise","Point-and-click nonlinear filtering with YauYauAL","YauYauAL: the R shortcut to solved filtering problems","Interactive R tool solves nonlinear filtering problems"],"cache_read_input_tokens":3200,"weakest_assumption_plain":"The numerical grid is constructed from the range of one simulated state path, so the result assumes that this path covers every region of state space where the true conditional density has meaningful mass; if the true state wanders outside that range, the finite-difference solution is not reliable.","fun_headline_variants_meta":{"raw":{"variants":["YauYauAL solves nonlinear filtering without PDE expertise","Point-and-click nonlinear filtering with YauYauAL","YauYauAL: the R shortcut to solved filtering problems","Interactive R tool solves nonlinear filtering problems"]},"model":"deepseek-v4-flash","effort":"low","cost_usd":0.000898,"raw_usage":{"total_tokens":3839,"prompt_tokens":885,"completion_tokens":2954,"prompt_tokens_details":{"cached_tokens":384},"prompt_cache_hit_tokens":384,"prompt_cache_miss_tokens":501,"completion_tokens_details":{"reasoning_tokens":2889}},"tokens_in":501,"tokens_out":2954,"duration_ms":23455,"temperature":1.0,"reasoning_tokens":2889,"cache_read_input_tokens":384,"cache_creation_input_tokens":0},"cache_creation_input_tokens":0},"created_at":"2026-08-07T04:57:17.562160+00:00","model_set":{"reader":"deepseek-v4-flash"},"falsifier":"Run YauYauAL on a scalar linear-Gaussian model where the Kalman filter gives the exact posterior, using a simulation that does not reach the distribution's tails, and compare the package's estimated conditional mean and density with the exact values; divergence beyond the discretization error would show the grid-coverage assumption is load-bearing. A second check: run the cubic sensor problem with h(x)=x instead of h(x)=$x^{3}$, where the observation-growth condition is weaker, and see whether the estimates degrade.","supporting_citations":[{"cited_title":"and Yau, S","cited_arxiv_id":null,"evidence_quote":"introduces the Yau-Yau algorithm for the pathwise-robust DMZ equation and the convergence condition used by the package."},{"cited_title":"and Yau, S","cited_arxiv_id":null,"evidence_quote":"extends Yau-Yau to time-varying cases and gives a spectral method for the forward Kolmogorov equation."},{"cited_title":"and Yau, S","cited_arxiv_id":null,"evidence_quote":"defines the cubic sensor problem used as a demonstration."}],"review_version":1}