Difference between revisions of "Redesign and Expansion of the SOCR Modeler Project"

From SOCR
Jump to: navigation, search
m
m (Text replacement - "{{translate|pageName=http://wiki.stat.ucla.edu/socr/" to ""{{translate|pageName=http://wiki.socr.umich.edu/")
 
(16 intermediate revisions by 3 users not shown)
Line 1: Line 1:
==[[SOCR]] Project - Redesign & Expansion of the SOCR Modeler==
+
==[[Available_SOCR_Development_Projects | SOCR Project]] - Redesign & Expansion of the SOCR Modeler==
  
* '''Project Goal''': To redesign and expand the utility of the [[SOCR]] [http://www.socr.ucla.edu/htmls/SOCR_Modeler.html Modeler].
+
===Project Goal===
 +
To redesign and expand the utility of the [[SOCR]] [http://socr.umich.edu/html/mod/ Modeler] in HTML5.
  
 +
===Background===
 +
Explore and research the [http://socr.umich.edu/html/mod/ 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.
  
* '''Background''': Research the [http://www.socr.ucla.edu/htmls/SOCR_Modeler.html 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 fiting 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+ [[About_pages_for_SOCR_Distributions | SOCR Distributions]] available in the [http://socr.umich.edu/html/dist/ SOCR Distributions] package. This will not involve writing new distribution classes, but rather just utilizing the existent members (objects and methods) of the [http://www.socr.ucla.edu/docs/edu/ucla/stat/SOCR/distributions/package-frame.html SOCR Distribution Package].
 +
* All Code must be pure HTML5-compatible JavaScript/JQuery.
 +
* Need to improve on the current Graph/Plotting functionality, perhaps by using [http://socr.umich.edu/html/cha/ SOCR Charts] (see [http://www.socr.ucla.edu/docs/edu/ucla/stat/SOCR/chart/package-frame.html 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).
  
 +
===Data Import/Input===
 +
* '''Copy-Paste''': user copy-pastes data using the mouse from a CSV/XLS/HTML table into a data spreadsheet.
 +
* '''Interactive Graph Entry''': Moderer always displays the distribution (frequency histogram for numerical data, and/or the analytical probability distribution for modeling). User can click on the graph and effectively alter (change, pull, push the histogram and/or modeling graph up or down at the X-coordinate on the graph (see how the current modeler does that (http://socr.umich.edu/html/mod/).
 +
* '''RNG''': Random Number Generation (see the current [[SOCR_EduMaterials_Activities_RNG|Modeler RNG engine]]). Of course, we already have the JS versions of the simulators/sampling functionality for over 50+ distributions (http://www.distributome.org/js/calc/index.html, http://www.distributome.org/js/calc/distributions.js, http://distributome.googlecode.com/).
 +
* '''DB API''': Use data from available API’s. See the Worldbank example: This would allow us access to an enormous collection of real (social, econ, Geo-spatial, environmental, etc.) data. See an example of [http://www.google.com/publicdata/directory Google Open-Data Explorer] utilization of the [http://data.worldbank.org/developers Worldbank data API].
  
* '''Project specs''':
+
===References===
** Need to expand the framework of disrtibution models that are allowed to be fit to the data using the 40+ [[About_pages_for_SOCR_Distributions | SOCR Disrtibutions]] available in the [http://www.socr.ucla.edu/htmls/SOCR_Distributions.html SOCR Distributions] package. This sill not involve writing new distribution classes, but rather just utilizing the existent members (objects and methods) of the [http://www.socr.ucla.edu/docs/edu/ucla/stat/SOCR/distributions/package-frame.html SOCR Distribution Package].
+
The following references would be useful for this project:
** All Code must be pure Java.
+
* [https://github.com/Distributome/distributome/tree/master/web_site Distributome (Distributions Calculators) JavaScript code]
** Need to improve on the current Graph/Plotting functionality, perhaps by using [http://www.socr.ucla.edu/htmls/SOCR_Charts.html SOCR Charts] (see [http://www.socr.ucla.edu/docs/edu/ucla/stat/SOCR/chart/package-frame.html Charts doc]).
+
* [[Redesign_and_Expansion_of_the_SOCR_Modeler_Project|This Wiki Project Description]]
** Need to improve the entire design of the SOCR Modeler - interface, computation and visualization.
+
* [http://code.google.com/p/socr/source/checkout SOCR Source Code]
 +
* [http://socr.umich.edu/html/mod/ Available/Implemented SOCR Modelers]
 +
* [[SOCR_EduMaterials_ModelerActivities | Modeler Activities]]
 +
* [http://socr.ucla.edu/htmls/jars/implementedDistributions.txt Available/Implemented SOCR Distributions]
 +
* [http://socr.umich.edu/html/dist SOCR Distribution Applets]
 +
* [http://code.google.com/p/socr/source/browse/#svn%2Ftrunk%2FSOCR2.0%2Fsrc%2Fedu%2Fucla%2Fstat%2FSOCR%2Fdistributions Distributions Source Code]
 +
 
 +
===Technical Details===
 +
Here are some of the details about designing and implementing HTML5 version of the SOCR Modeler:
 +
* [https://github.com/SOCR/SOCR-Java/tree/master/src/edu/ucla/stat/SOCR/modeler Current Java Modeler Code]
 +
* [https://github.com/SOCR/SOCR-Java/tree/master/src/edu/ucla/stat/SOCR/distributions Current Java Distribution Code]
 +
* [http://www.socr.ucla.edu/htmls/mod/ Current SOCR Modeler Java Tool]  
 +
* [https://github.com/Distributome/distributome/blob/master/web_site/V.3.0/calc JavaScript Implementations of the Distributions (Distributome Project)]
 +
** These need to be extended to include the same parameter-estimation (MLE) methods (paramEstimate) as in the Java source code
 +
** For example: The [https://github.com/SOCR/SOCR-Java/blob/master/src/edu/ucla/stat/SOCR/distributions/NormalDistribution.java normal distribution Java Code] has this method that needs to be pushed from Java to the [https://github.com/Distributome/distributome/blob/master/web_site/V.3.0/calc/NormalCalculator.js corresponding JavaScript implementation of Normal distribution].
 +
::: 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.
 +
 
 +
* So, we need to expand the [https://github.com/Distributome/distributome/blob/master/web_site/V3/scripts/distributions.js Distributome's distributions.js] functionality to include '''paramEstimate()''' function for each distribution that the [https://github.com/SOCR/SOCR-Java/tree/master/src/edu/ucla/stat/SOCR/distributions SOCR Java-based modeler] already implements these data-driven parameter estimates for.
 +
 
 +
<hr>
  
 
===[[Available_SOCR_Development_Projects]]===
 
===[[Available_SOCR_Development_Projects]]===
  
 
===[[SOCR_ProposalSubmissionGuidelines]]===
 
===[[SOCR_ProposalSubmissionGuidelines]]===
 
  
 
<hr>
 
<hr>
 
*[http://socr.stat.ucla.edu/docs/index.html SOCR JavaDoc]
 
*[http://socr.stat.ucla.edu/docs/index.html SOCR JavaDoc]
  
{{translate|pageName=http://wiki.stat.ucla.edu/socr/index.php?title=Redesign_and_Expansion_of_the_SOCR_Modeler_Project}}
+
"{{translate|pageName=http://wiki.socr.umich.edu/index.php?title=Redesign_and_Expansion_of_the_SOCR_Modeler_Project}}

Latest revision as of 12:56, 3 March 2020

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).

Data Import/Input

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.


Available_SOCR_Development_Projects

SOCR_ProposalSubmissionGuidelines


"-----


Translate this page:

(default)
Uk flag.gif

Deutsch
De flag.gif

Español
Es flag.gif

Français
Fr flag.gif

Italiano
It flag.gif

Português
Pt flag.gif

日本語
Jp flag.gif

България
Bg flag.gif

الامارات العربية المتحدة
Ae flag.gif

Suomi
Fi flag.gif

इस भाषा में
In flag.gif

Norge
No flag.png

한국어
Kr flag.gif

中文
Cn flag.gif

繁体中文
Cn flag.gif

Русский
Ru flag.gif

Nederlands
Nl flag.gif

Ελληνικά
Gr flag.gif

Hrvatska
Hr flag.gif

Česká republika
Cz flag.gif

Danmark
Dk flag.gif

Polska
Pl flag.png

România
Ro flag.png

Sverige
Se flag.gif