diff --git a/Projects/Pearson-Regression-App.md b/Projects/Pearson-Regression-App.md new file mode 100644 index 00000000..b1467f08 --- /dev/null +++ b/Projects/Pearson-Regression-App.md @@ -0,0 +1,63 @@ +# Pearson Regression + +**Tier:** 1-Beginner + +There are few, if any, applications that don't require some form of +cross-disciplinary knowledge in order to implement useful functionality for +a user. In the case of an app for the medical profession it might be domain +expertise in biology or pharmacology. A paint manufacturer or a crop science +business might rely on apps with an intimate knowledge of chemistry. And, a +payroll application will certainly incorporate HR and accounting concepts. + +Regardless of the industry segement an app is developed for one cross domain +expertise in common with them all is mathematics. As an application developer +you don't have to be a mathemetician, but it's useful to have an understanding +of how to apply mathematical concepts to the problems you are trying to solve. + +The objective of this app is to apply the Pearson Correlation Coefficient +against two sets of data to provide the user with the degree to which they +may or may not be related. For example, given a set of temperatures and another +set of car prices this would let the user test whether or not they are related +(spoiler alert: they are unrelated!). + +### Constraints + +- The Developer must program all calculations without relying on a package. + +## User Stories + +- [ ] User can see an input panel with two input fields allowing entry of `x` +and `y` coordinates, and 'Add' and 'Calculate' buttons. +- [ ] User can enter numbers into these boxes where `x` and `y` are observations +from the two data sets. +- [ ] User can click the 'Add' button to add the `x` and `y` to a tabular +output area listing the pairs of observations. +- [ ] User can see and error message if either of the two input fields are +empty or do not contain valid real numbers. +- [ ] User can see the 'Calculate' button is disabled until errors have been +corrected. +- [ ] User can click the 'Calculate' button to perform the regression analysis +and to display its results. +- [ ] User can see results of the calculation which include: + - Arithmetic means for both the `x` and `y` observations + - Standard deviations for both the `x` and `y` observations + - Pearson correlation coefficient with one of the following interpretations: + - No correlation + - Neutral + - Some correlation + +## Bonus features + +- [ ] User can see a scatter plot of the observations +- [ ] User can upload observations from a file on the local machine. +- [ ] User can see a regression line overlaying the scatter plot + +## Useful links and resources + +- [Pearson Correlation Coefficient (Wikipedia)](https://en.wikipedia.org/wiki/Pearson_correlation_coefficient) +- [Linear Regression](https://en.wikipedia.org/wiki/Linear_regression) +- [Pearson's Correlation Coefficient](http://www.code-in-javascript.com/pearsons-correlation-coefficient-in-javascript/) + +## Example projects + +[Correlation](https://memory.psych.mun.ca/tech/js/correlation.shtml) diff --git a/README.md b/README.md index 1adc9cac..9f74fab5 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,7 @@ required to complete them. | [🌟Key Value](./Projects/Key-Value-App.md) | Keyboard Event Values | 1-Beginner | | [Lorem Ipsum Generator](./Projects/Lorem-Ipsum-Generator.md) | Generate lorem ipsum placeholder text | 1-Beginner | | [Notes App](./Projects/Notes-App.md) | Create an online note pad | 1-Beginner | +| [🌟Pearson Regression](./Projects/Pearson-Regression-App.md) | Calculate the correlation coefficent for two sets of data | 1-Beginner | | [Pomodoro Clock](./Projects/Pomodoro-Clock.md) | Task timer to aid personal productivity | 1-Beginner | | [:star2: Product Landing Page](./Projects/Product-Landing-Page.md) | Showcase product details for possible buyers | 1-Beginner | | [Quiz App](./Projects/Quiz-App.md) | Test your knowledge by answering questions | 1-Beginner |