Redesign and Expansion of the SOCR Modeler Project

(Difference between revisions)

SOCR Project - Redesign & Expansion of the SOCR Modeler

Project Goal

To redesign and expand the utility of the SOCR Modeler in HTML5.

Background

Explore and research the SOCR Modeler first. The Modeler is one of the major SOCR packages and consists of a collection of applets that allow sampling/simulation and model-fitting. It currently allows fitting several distribution, Fourier or Wavelet models to real or simulated data.

Project specs

• Need to expand the framework of distribution models that are allowed to be fit to the data using the 40+ SOCR Distributions available in the SOCR Distributions package. This will not involve writing new distribution classes, but rather just utilizing the existent members (objects and methods) of the SOCR Distribution Package.
• All Code must be pure HTML5-compatible JavaScript/JQuery.
• Need to improve on the current Graph/Plotting functionality, perhaps by using SOCR Charts (see Charts doc).
• Need to improve the entire design of the SOCR Modeler - interface, computation and visualization.
• Need to expand the calculation methods for parameter estimation for many other SOCR distributions. This reference discusses classical statistical estimation theory, concentrating on maximum likelihood estimation in parametric models, from the point of view of physical science and engineering (Adriaan van den Bos, Parameter Estimation for Scientists and Engineers, Wiley, 2007, ISBN 978-0-470-14781-8).

References

The following references would be useful for this project:

Technical Details

Here are some of the details about designing and implementing HTML5 version of the SOCR Modeler:

public NormalDistribution(double[] distData) {
paramEstimate(distData);
}
public void paramEstimate(double[] distData) {
double mn = getMean(distData);
double std = Math.sqrt(getVariance(distData));
setParameters(mn, std);
}

Clearly, for different distributions, the paramEstimate function will be different. However the Data-driven estimate calls (public XXX_Distribution(double[] distData)) will always be the same template.