{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 02.1\n", "\n", "Create a function that receives two inputs a and b, and returns the product of the a decimal of pi and the b decimal of pi.\n", "\n", "```\n", "i.e, \n", "pi = 3.14159\n", "if a = 2 and b = 4\n", "result = 4 * 5\n", "result = 20\n", "```\n", "\n", "Caveats:\n", "- a and b are between 1 and 15\n", "- decimals positions 1 and 2 are 1 and 4, respectively. (remember that python start indexing in 0)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from math import pi\n", "def mult_dec_pi(a, b):\n", " \n", " # Add the solution here\n", " \n", " result = ''\n", " return result" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "mult_dec_pi(a=2, b=4)\n", "# 20.0" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "mult_dec_pi(a=5, b=10)\n", "# 45.0" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "mult_dec_pi(a=14, b=1)\n", "# 9.0" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "mult_dec_pi(a=6, b=8)\n", "# 10.0" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Bonus\n", "mult_dec_pi(a=16, b=4)\n", "# 'Error'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 02.2\n", "\n", "Using the given dataset. Estimate a linear regression between Employed and GNP.\n", "\n", "$$Employed = b_0 + b_1 * GNP $$\n", "\n", "$$\\hat b = (X^TX)^{-1}X^TY$$\n", "$$Y = Employed$$\n", "$$X = [1 \\quad GNP]$$" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "# Import data\n", "raw_data = \"\"\"\n", "Year,Employed,GNP\n", "1947,60.323,234.289\n", "1948,61.122,259.426\n", "1949,60.171,258.054\n", "1950,61.187,284.599\n", "1951,63.221,328.975\n", "1952,63.639,346.999\n", "1953,64.989,365.385\n", "1954,63.761,363.112\n", "1955,66.019,397.469\n", "1956,67.857,419.18\n", "1957,68.169,442.769\n", "1958,66.513,444.546\n", "1959,68.655,482.704\n", "1960,69.564,502.601\n", "1961,69.331,518.173\n", "1962,70.551,554.894\"\"\"\n", "\n", "data = []\n", "for line in raw_data.splitlines()[2:]:\n", " words = line.split(',')\n", " data.append(words)\n", "data = np.array(data, dtype=np.float)\n", "n_obs = data.shape[0]\n", "plt.plot(data[:, 2], data[:, 1], 'bo')\n", "plt.xlabel(\"GNP\")\n", "plt.ylabel(\"Employed\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.1" } }, "nbformat": 4, "nbformat_minor": 0 }