diff --git a/In_Sample_Out_Sample.ipynb b/In_Sample_Out_Sample.ipynb
new file mode 100644
index 0000000..6ce9706
--- /dev/null
+++ b/In_Sample_Out_Sample.ipynb
@@ -0,0 +1,942 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "\n",
+ "# In-Sample Evaluation and Out-of-Sample Evaluation"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "In-sample: data is what you have. \n",
+ "Out-of-sample: is the data you do not have and want to forecast or estimate. \n",
+ "\n",
+ "A way to numerically determine how good the model fits on dataset.\n",
+ "\n",
+ "\n",
+ "\n",
+ "Two important measures to determine the fit of a model: \n",
+ "Mean Squared Error (MSE) \n",
+ "R-squared (R^2)"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "import warnings\n",
+ "warnings.filterwarnings(\"ignore\")\n",
+ "\n",
+ "# fix_yahoo_finance is used to fetch data \n",
+ "import fix_yahoo_finance as yf\n",
+ "yf.pdr_override()"
+ ],
+ "outputs": [],
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false,
+ "outputHidden": false,
+ "inputHidden": false
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# input\n",
+ "symbol = 'AMD'\n",
+ "start = '2014-01-01'\n",
+ "end = '2018-08-27'\n",
+ "\n",
+ "# Read data \n",
+ "dataset = yf.download(symbol,start,end)\n",
+ "\n",
+ "# View columns \n",
+ "dataset.head()"
+ ],
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "[*********************100%***********************] 1 of 1 downloaded\n"
+ ]
+ },
+ {
+ "output_type": "execute_result",
+ "execution_count": 2,
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Open | \n",
+ " High | \n",
+ " Low | \n",
+ " Close | \n",
+ " Adj Close | \n",
+ " Volume | \n",
+ "
\n",
+ " \n",
+ " Date | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 2014-01-02 | \n",
+ " 3.85 | \n",
+ " 3.98 | \n",
+ " 3.84 | \n",
+ " 3.95 | \n",
+ " 3.95 | \n",
+ " 20548400 | \n",
+ "
\n",
+ " \n",
+ " 2014-01-03 | \n",
+ " 3.98 | \n",
+ " 4.00 | \n",
+ " 3.88 | \n",
+ " 4.00 | \n",
+ " 4.00 | \n",
+ " 22887200 | \n",
+ "
\n",
+ " \n",
+ " 2014-01-06 | \n",
+ " 4.01 | \n",
+ " 4.18 | \n",
+ " 3.99 | \n",
+ " 4.13 | \n",
+ " 4.13 | \n",
+ " 42398300 | \n",
+ "
\n",
+ " \n",
+ " 2014-01-07 | \n",
+ " 4.19 | \n",
+ " 4.25 | \n",
+ " 4.11 | \n",
+ " 4.18 | \n",
+ " 4.18 | \n",
+ " 42932100 | \n",
+ "
\n",
+ " \n",
+ " 2014-01-08 | \n",
+ " 4.23 | \n",
+ " 4.26 | \n",
+ " 4.14 | \n",
+ " 4.18 | \n",
+ " 4.18 | \n",
+ " 30678700 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Open High Low Close Adj Close Volume\n",
+ "Date \n",
+ "2014-01-02 3.85 3.98 3.84 3.95 3.95 20548400\n",
+ "2014-01-03 3.98 4.00 3.88 4.00 4.00 22887200\n",
+ "2014-01-06 4.01 4.18 3.99 4.13 4.13 42398300\n",
+ "2014-01-07 4.19 4.25 4.11 4.18 4.18 42932100\n",
+ "2014-01-08 4.23 4.26 4.14 4.18 4.18 30678700"
+ ]
+ },
+ "metadata": {}
+ }
+ ],
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false,
+ "outputHidden": false,
+ "inputHidden": false
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "dataset.shape"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "execution_count": 3,
+ "data": {
+ "text/plain": [
+ "(1172, 6)"
+ ]
+ },
+ "metadata": {}
+ }
+ ],
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false,
+ "outputHidden": false,
+ "inputHidden": false
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "X = np.array(dataset['Open']).reshape(1172,-1)\n",
+ "Y = np.array(dataset['Adj Close']).reshape(1172,-1)"
+ ],
+ "outputs": [],
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false,
+ "outputHidden": false,
+ "inputHidden": false
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "from sklearn.linear_model import LinearRegression\n",
+ "lm = LinearRegression()\n",
+ "\n",
+ "lm.fit(X, Y)\n",
+ "# Find the R^2\n",
+ "lm.score(X, Y)"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "execution_count": 5,
+ "data": {
+ "text/plain": [
+ "0.9976829341182026"
+ ]
+ },
+ "metadata": {}
+ }
+ ],
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false,
+ "outputHidden": false,
+ "inputHidden": false
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "Yhat = lm.predict(X)\n",
+ "Yhat[0:4]"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "execution_count": 6,
+ "data": {
+ "text/plain": [
+ "array([[3.85101685],\n",
+ " [3.98104974],\n",
+ " [4.01105733],\n",
+ " [4.19110287]])"
+ ]
+ },
+ "metadata": {}
+ }
+ ],
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false,
+ "outputHidden": false,
+ "inputHidden": false
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "from sklearn.metrics import mean_squared_error\n",
+ "\n",
+ "# mean_squared_error(Y_true, Y_predict)\n",
+ "mean_squared_error(dataset['Adj Close'],Yhat)"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "execution_count": 7,
+ "data": {
+ "text/plain": [
+ "0.055301235619033565"
+ ]
+ },
+ "metadata": {}
+ }
+ ],
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false,
+ "outputHidden": false,
+ "inputHidden": false
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "R-squared (R^2)\n",
+ "\n",
+ "The coefficient of Determination or R-squared. \n",
+ "Measurment to defined how close the data fit the regression line. \n",
+ "R-squared is the percentage of variation of the traget variable (Y) that is explained by the linear model. \n",
+ "Comparing a regression model to a simple model is the mean of the data points. \n",
+ "\n",
+ "R^2 = (1 - (MSE of regression line/MSE of the average of the data))\n",
+ "\n",
+ "Coefficient of Determination (R^2) \n",
+ "The blue line represents the regression line.\n",
+ "\n",
+ "R-squared = Explained variation / Total variation\n",
+ "\n",
+ "R-squared is always between 0 and 100%:\n",
+ "\n",
+ "MSE is close to zero is good fit because the numerator is small and error is small. "
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "lm.score(X,Y) # R^2 (coefficient of determination) regression "
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "execution_count": 8,
+ "data": {
+ "text/plain": [
+ "0.9976829341182026"
+ ]
+ },
+ "metadata": {}
+ }
+ ],
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false,
+ "outputHidden": false,
+ "inputHidden": false
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "df = dataset.drop(['Open','High','Low','Close','Volume'], axis=1)"
+ ],
+ "outputs": [],
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false,
+ "outputHidden": false,
+ "inputHidden": false
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "df.head()"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "execution_count": 10,
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Adj Close | \n",
+ "
\n",
+ " \n",
+ " Date | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 2014-01-02 | \n",
+ " 3.95 | \n",
+ "
\n",
+ " \n",
+ " 2014-01-03 | \n",
+ " 4.00 | \n",
+ "
\n",
+ " \n",
+ " 2014-01-06 | \n",
+ " 4.13 | \n",
+ "
\n",
+ " \n",
+ " 2014-01-07 | \n",
+ " 4.18 | \n",
+ "
\n",
+ " \n",
+ " 2014-01-08 | \n",
+ " 4.18 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Adj Close\n",
+ "Date \n",
+ "2014-01-02 3.95\n",
+ "2014-01-03 4.00\n",
+ "2014-01-06 4.13\n",
+ "2014-01-07 4.18\n",
+ "2014-01-08 4.18"
+ ]
+ },
+ "metadata": {}
+ }
+ ],
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false,
+ "outputHidden": false,
+ "inputHidden": false
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "plt.plot(df)"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "execution_count": 11,
+ "data": {
+ "text/plain": [
+ "[]"
+ ]
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": [
+ "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\n"
+ ]
+ },
+ "metadata": {}
+ }
+ ],
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false,
+ "outputHidden": false,
+ "inputHidden": false
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Out-of-Sample Data \n",
+ "\n",
+ "Create new data (forecast)"
+ ],
+ "metadata": {}
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "import pandas as pd\n",
+ "from fbprophet import Prophet"
+ ],
+ "outputs": [],
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false,
+ "outputHidden": false,
+ "inputHidden": false
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "data = dataset.reset_index()\n",
+ "data = data.drop(['Open','High','Low','Close','Volume'], axis=1)\n",
+ "new_df = data.rename(columns={'Date':'ds', 'Adj Close':'y'})\n",
+ "new_df.head()"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "execution_count": 22,
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " ds | \n",
+ " y | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 2014-01-02 | \n",
+ " 3.95 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 2014-01-03 | \n",
+ " 4.00 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 2014-01-06 | \n",
+ " 4.13 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 2014-01-07 | \n",
+ " 4.18 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 2014-01-08 | \n",
+ " 4.18 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " ds y\n",
+ "0 2014-01-02 3.95\n",
+ "1 2014-01-03 4.00\n",
+ "2 2014-01-06 4.13\n",
+ "3 2014-01-07 4.18\n",
+ "4 2014-01-08 4.18"
+ ]
+ },
+ "metadata": {}
+ }
+ ],
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": false,
+ "outputHidden": false,
+ "inputHidden": false
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# Python\n",
+ "m = Prophet(daily_seasonality=True)\n",
+ "m.fit(new_df)"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "execution_count": 26,
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {}
+ }
+ ],
+ "execution_count": 26,
+ "metadata": {
+ "collapsed": false,
+ "outputHidden": false,
+ "inputHidden": false
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "Out_of_Sample = m.make_future_dataframe(periods=365)\n",
+ "Out_of_Sample.head()"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "execution_count": 27,
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " ds | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 2014-01-02 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 2014-01-03 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 2014-01-06 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 2014-01-07 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 2014-01-08 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " ds\n",
+ "0 2014-01-02\n",
+ "1 2014-01-03\n",
+ "2 2014-01-06\n",
+ "3 2014-01-07\n",
+ "4 2014-01-08"
+ ]
+ },
+ "metadata": {}
+ }
+ ],
+ "execution_count": 27,
+ "metadata": {
+ "collapsed": false,
+ "outputHidden": false,
+ "inputHidden": false
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "Out_of_Sample.tail()"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "execution_count": 28,
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " ds | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1532 | \n",
+ " 2019-08-23 | \n",
+ "
\n",
+ " \n",
+ " 1533 | \n",
+ " 2019-08-24 | \n",
+ "
\n",
+ " \n",
+ " 1534 | \n",
+ " 2019-08-25 | \n",
+ "
\n",
+ " \n",
+ " 1535 | \n",
+ " 2019-08-26 | \n",
+ "
\n",
+ " \n",
+ " 1536 | \n",
+ " 2019-08-27 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " ds\n",
+ "1532 2019-08-23\n",
+ "1533 2019-08-24\n",
+ "1534 2019-08-25\n",
+ "1535 2019-08-26\n",
+ "1536 2019-08-27"
+ ]
+ },
+ "metadata": {}
+ }
+ ],
+ "execution_count": 28,
+ "metadata": {
+ "collapsed": false,
+ "outputHidden": false,
+ "inputHidden": false
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "forecast = m.predict(Out_of_Sample)\n",
+ "forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()"
+ ],
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "execution_count": 30,
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " ds | \n",
+ " yhat | \n",
+ " yhat_lower | \n",
+ " yhat_upper | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1532 | \n",
+ " 2019-08-23 | \n",
+ " 22.208154 | \n",
+ " 16.870245 | \n",
+ " 28.318758 | \n",
+ "
\n",
+ " \n",
+ " 1533 | \n",
+ " 2019-08-24 | \n",
+ " 22.089846 | \n",
+ " 16.581817 | \n",
+ " 28.007437 | \n",
+ "
\n",
+ " \n",
+ " 1534 | \n",
+ " 2019-08-25 | \n",
+ " 22.078294 | \n",
+ " 16.562700 | \n",
+ " 28.063231 | \n",
+ "
\n",
+ " \n",
+ " 1535 | \n",
+ " 2019-08-26 | \n",
+ " 22.232008 | \n",
+ " 16.780503 | \n",
+ " 28.273691 | \n",
+ "
\n",
+ " \n",
+ " 1536 | \n",
+ " 2019-08-27 | \n",
+ " 22.153669 | \n",
+ " 16.880195 | \n",
+ " 28.122720 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " ds yhat yhat_lower yhat_upper\n",
+ "1532 2019-08-23 22.208154 16.870245 28.318758\n",
+ "1533 2019-08-24 22.089846 16.581817 28.007437\n",
+ "1534 2019-08-25 22.078294 16.562700 28.063231\n",
+ "1535 2019-08-26 22.232008 16.780503 28.273691\n",
+ "1536 2019-08-27 22.153669 16.880195 28.122720"
+ ]
+ },
+ "metadata": {}
+ }
+ ],
+ "execution_count": 30,
+ "metadata": {
+ "collapsed": false,
+ "outputHidden": false,
+ "inputHidden": false
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "fig1 = m.plot(forecast)"
+ ],
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ "