Skip to content

Instantly share code, notes, and snippets.

@diego898
Created June 30, 2015 17:49
Show Gist options
  • Save diego898/801e34bfe9fa394f0861 to your computer and use it in GitHub Desktop.
Save diego898/801e34bfe9fa394f0861 to your computer and use it in GitHub Desktop.
Homework 7 Solutions
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Homework 7 Solutions\n",
"\n",
"Welcome to your **seventh** IPython notebook! Please *edit* this document with your answers and upload to TED.\n",
"Solutions to HW6 IPython are on Ted!"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# load numerical packages\n",
"from __future__ import division\n",
"import numpy as np \n",
"import scipy as sp\n",
"import matplotlib.pyplot as plt \n",
"import seaborn as sns\n",
"sns.set()\n",
"import pandas as pd\n",
"import math\n",
"from IPython.html.widgets import interact, fixed\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**NOTE:** Please run the following cell before skipping to any section. **Do not** change it without knowing what you're doing."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Homework 6 Solution"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def calc_slope_and_intercept(x, y):\n",
" \n",
" # initialize return values\n",
" beta_hat = 0\n",
" alpha_hat = 0\n",
" \n",
" # calculate means\n",
" x_bar = np.mean(x)\n",
" y_bar = np.mean(y)\n",
" \n",
" # calculate beta_hat\n",
" numerator = np.sum((x - x_bar)*(y-y_bar))\n",
" denominator = np.sum((x - x_bar)**2)\n",
" beta_hat = numerator/denominator\n",
" \n",
" # calculate alpha_hat \n",
" alpha_hat = y_bar - beta_hat*x_bar\n",
" \n",
" # return both\n",
" return beta_hat, alpha_hat"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Problem 1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this problem, we're going to replicating the examples shown to use in class. We will be calculating the **coefficiant of determination**, or more comonly known as $R^2$:\n",
"\n",
"\\begin{equation} \n",
" R^{2} = 1 - \\frac{\\sum\\limits_{n=1}^N{(y_{real}-y_{fit})^{2}}}{\\sum\\limits_{n=1}^N{(y_{real}-y_{avg})^{2}}} = 1 - \\frac{\\color{blue}{SS_{fit}}}{\\color{red}{SS_{avg}}}\n",
"\\end{equation}\n",
"\n",
"This can be visualized as: \n",
"<img width='500' src='https://upload.wikimedia.org/wikipedia/commons/thumb/8/86/Coefficient_of_Determination.svg/1000px-Coefficient_of_Determination.svg.png'>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Problem 1.A"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here we will be looking at the following linear model:"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# specify the true model\n",
"def f(x):\n",
" y = 2*x + 3\n",
" return y"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Lets go ahead and simulate a noisy version of this model"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x1a476cf8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# noise parameter\n",
"noise_var = 1.5\n",
"\n",
"# set up x range\n",
"x = np.linspace(0,10)\n",
"\n",
"# observe the data through noise\n",
"y_true = f(x)\n",
"y_noise = y_true + noise_var*np.random.randn(x.shape[0])\n",
"\n",
"# plot the data\n",
"plt.scatter(x,y_noise,color='g');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, we can visualize and plot the $\\color{red}{SS_{avg}}$:"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Sum of squares to the average: 1837.67830126\n"
]
},
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x1a4764e0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Calculate the y-average.\n",
"y_avg = np.average(y_noise)\n",
"\n",
"# make it plottable\n",
"y_avg_plot = np.ones_like(x)*y_avg\n",
"\n",
"# plot data\n",
"plt.scatter(x,y_noise,color='g')\n",
"\n",
"# plot average line\n",
"plt.plot(x,y_avg_plot, 'r', linewidth=1)\n",
"\n",
"# plot distance to mean for all points\n",
"for e,yy in enumerate(y_noise):\n",
" plt.plot([x[e],x[e]], [yy, y_avg], 'r', linewidth=1)\n",
"\n",
"plt.title('Distance to mean')\n",
"\n",
"# calculate the ssq_avg\n",
"ssq_avg = np.sum( (y_noise-y_avg)**2 )\n",
"print 'Sum of squares to the average: ', ssq_avg"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can visualize and plot the $\\color{blue}{SS_{fit}}$:"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Sum of squares to the fit: 132.664437106\n"
]
},
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x18f27710>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# calculate our best linear fit:\n",
"slope, intercept = calc_slope_and_intercept(x,y_noise)\n",
"y_fit = slope*x + intercept\n",
"\n",
"# plot the data\n",
"plt.scatter(x,y_noise,color='g')\n",
"\n",
"# plot our best fit\n",
"plt.plot(x,y_fit,'b',linewidth=1)\n",
"\n",
"# plot the distance to the best fit\n",
"for e,yy in enumerate(y_noise):\n",
" plt.plot([x[e], x[e]], [yy, y_fit[e]],'b',linewidth=1)\n",
" \n",
"plt.title('Fitted Signal')\n",
"\n",
"# calculate\n",
"ssq_fit = np.sum( (y_noise-y_fit)**2 )\n",
"print 'Sum of squares to the fit: ', ssq_fit"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can actually calculate our $R^2$ for this model:"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"R_squared: 0.927808671945\n"
]
}
],
"source": [
"r_squared = 1 - ((ssq_fit)/(ssq_avg))\n",
"print \"R_squared: \", r_squared"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Problem 1.B"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, we're going to repeat these calculations, except were going to use the following true underlying model:"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# specify the true model\n",
"def f_non_lin(x):\n",
" y = 3*x**2 - 5\n",
" return y"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Lets go ahead and simulate a noisy version of this model: "
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x1b19a8d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# noise parameter\n",
"noise_var = 25\n",
"\n",
"# set up x range\n",
"x = np.linspace(0,10)\n",
"\n",
"# observe the data through noise\n",
"y_true = f_non_lin(x)\n",
"y_noise = y_true + noise_var*np.random.randn(x.shape[0])\n",
"\n",
"# plot the data\n",
"plt.scatter(x,y_noise,color='g');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, we can visualize and plot the $\\color{red}{SS_{avg}}$:"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Sum of squares to the average: 551329.578221\n"
]
},
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x1a89a9e8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Calculate the y-average.\n",
"y_avg = np.average(y_noise)\n",
"\n",
"# make it plottable\n",
"y_avg_plot = np.ones_like(x)*y_avg\n",
"\n",
"# plot data\n",
"plt.scatter(x,y_noise,color='g')\n",
"\n",
"# plot average line\n",
"plt.plot(x,y_avg_plot, 'r', linewidth=1)\n",
"\n",
"# plot distance to mean for all points\n",
"for e,yy in enumerate(y_noise):\n",
" plt.plot([x[e],x[e]], [yy, y_avg], 'r', linewidth=1)\n",
"\n",
"plt.title('Distance to mean')\n",
"\n",
"# calculate the ssq_avg\n",
"ssq_avg = np.sum( (y_noise-y_avg)**2 )\n",
"print 'Sum of squares to the average: ', ssq_avg"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can visualize and plot the $\\color{blue}{SS_{fit}}$:"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Sum of squares to the fit: 69473.0137174\n"
]
},
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x1abcf160>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# calculate our best linear fit:\n",
"slope, intercept = calc_slope_and_intercept(x,y_noise)\n",
"y_fit = slope*x + intercept\n",
"\n",
"# plot the data\n",
"plt.scatter(x,y_noise,color='g')\n",
"\n",
"# plot our best fit\n",
"plt.plot(x,y_fit,'b',linewidth=1)\n",
"\n",
"# plot the distance to the best fit\n",
"for e,yy in enumerate(y_noise):\n",
" plt.plot([x[e], x[e]], [yy, y_fit[e]],'b',linewidth=1)\n",
" \n",
"plt.title('Fitted Signal')\n",
"\n",
"# calculate\n",
"ssq_fit = np.sum( (y_noise-y_fit)**2 )\n",
"print 'Sum of squares to the fit: ', ssq_fit"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Once again, we can go ahead and calculate the $R^2$ for this model: "
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"R_squared: 0.873990047946\n"
]
}
],
"source": [
"r_squared = 1 - ((ssq_fit)/(ssq_avg))\n",
"print \"R_squared: \", r_squared"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Oh man! Thats not very good! Lets see if we can improve this by using a model with a squared regressor as well:"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Sum of squares to the fit: 28776.7553276\n"
]
},
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x1a9db198>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# calculate a squared model\n",
"degree = 2\n",
"coeffs = np.polyfit(x, y_noise, degree)\n",
"\n",
"# create this polynomial function\n",
"y_fit_func = np.poly1d(coeffs)\n",
"\n",
"# evaluate the fit\n",
"y_fit = y_fit_func(x)\n",
"\n",
"# plot the data\n",
"plt.scatter(x,y_noise,color='g')\n",
"\n",
"# plot our best fit\n",
"plt.plot(x,y_fit,'b',linewidth=1)\n",
"\n",
"# plot the distance to the best fit\n",
"for e,yy in enumerate(y_noise):\n",
" plt.plot([x[e], x[e]], [yy, y_fit[e]],'b',linewidth=1)\n",
" \n",
"plt.title('Fitted Signal')\n",
"\n",
"# calculate\n",
"ssq_fit = np.sum( (y_noise-y_fit)**2 )\n",
"print 'Sum of squares to the fit: ', ssq_fit"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can once again calcualte the $R^2$ value:"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"R_squared: 0.947804804124\n"
]
}
],
"source": [
"r_squared = 1 - ((ssq_fit)/(ssq_avg))\n",
"print \"R_squared: \", r_squared"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Perfect! Below, explain how what we did above fits into the paradigm weve discussed in class."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# -------\n",
"# EDIT THIS CELL\n",
"# -------"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Problem 2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this problem, we're going to take a closer look at the [Kolmogorov–Smirnov](https://en.wikipedia.org/wiki/Kolmogorov%E2%80%93Smirnov_test) test we discussed in class. "
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"true_variance = 3\n",
"\n",
"# draw our samples\n",
"x_samples = np.random.normal(0,np.sqrt(true_variance),10000)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, we're going to try and fit a guassian to these samples, and then see how well it fits with the K-S test. Below, implement your solution to the hw6 problem that asked for the MLE estimator for the variance of a 0 mean gaussian, with unknown variance"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def norm_var_mle_estimator(x):\n",
" var = 0\n",
" \n",
" x_bar = np.mean(x)\n",
" \n",
" var = np.mean((x - x_bar)**2)\n",
" \n",
" return var"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# use your MLE estimator to estimate the variance \n",
"my_var = norm_var_mle_estimator(x_samples)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, we normalize our samples, making them normally distributed with mean $0$ and variance $1$."
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# normalize your samples so that they're Norm(0,1)\n",
"x_normed = (1/np.sqrt(my_var))*x_samples"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, we plug them in to the Gaussian CDF, giving us uniformally distributed samples"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"kgpk+EtSgf4PITWn21RMlxkAAAAASUVORK5CYII=\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x1a1c1278>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"z_samples = sp.stats.norm.cdf(x_normed)\n",
"plt.hist(z_samples);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can actually plot the empirical CDF and the true CDF, and visually see how well they match"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x1a29bd30>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"z_sorted=np.sort(z_samples)\n",
"yvals=np.arange(len(z_sorted))/float(len(z_sorted))\n",
"plt.plot(z_sorted, yvals,'r--', label='Empirical CDF');\n",
"plt.plot(z_sorted, sp.stats.uniform.cdf(z_sorted),label='True CDF');\n",
"plt.legend(loc='lower right');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we can see, they fit quite well! Now we can actually go ahead and calculate the KS-statistic"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"KS Distance: 0.00828397318454\n"
]
}
],
"source": [
"ks_distance,_ = sp.stats.kstest(z_sorted,'uniform')\n",
"print \"KS Distance: \", ks_distance"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.9"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment