{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "\n", "def show_scatter_plot(title, \n", " x_label, y_label, \n", " x_values, y_values):\n", " \"\"\"\n", " @param title the chart title.\n", " @param x_label the x-axis label.\n", " @param y_label the y-axis label.\n", " @param x_values the independent x values to plot.\n", " @param y_values the dependent y values to plot.\n", " \"\"\"\n", " plt.scatter(x_values, y_values)\n", " plt.title(title)\n", " plt.ylabel(x_label)\n", " plt.xlabel(y_label)\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "\n", "def calculate_ss(x_values, y_values):\n", " \"\"\"\n", " Calculate the residual and total sums of squares.\n", " @param x_values the independent x values.\n", " @param y_values the dependent y values.\n", " @return a list of the residual and total sums of squares.\n", " \"\"\"\n", " x = np.array(x_values)\n", " y = np.array(y_values)\n", " \n", " n = len(x)\n", " sum_x = np.sum(x)\n", " sum_y = np.sum(y)\n", " sum_xx = np.sum(x*x)\n", " sum_yy = np.sum(y*y)\n", " sum_xy = np.sum(x*y)\n", " mean_x = np.mean(x)\n", " mean_y = np.mean(y)\n", " \n", " numerator = sum_xy - (sum_x*sum_y)/n\n", " denominator = sum_xx - ((sum_x*sum_x)/n)\n", " \n", " m = numerator/denominator\n", " b = mean_y - m*mean_x\n", " \n", " ss_residual = sum_yy - b*sum_y - m*sum_xy\n", " ss_total = sum_yy - (sum_y*sum_y)/n\n", " \n", " return ss_residual, ss_total" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "def calculate_r2(ss_residual, ss_total):\n", " \"\"\"\n", " Calculate the coefficient of determination.\n", " @param ss_residual the residual sum of squares.\n", " @param ss_total the total sum of squares.\n", " @return the coefficient of determination.\n", " \"\"\"\n", " cofd = 1 - ss_residual/ss_total\n", " return cofd" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "xs = [35.43, 36.10, 35.74, 35.30, 35.40, 35.91, 35.48, 36.28]\n", "ys = [30.0, 24.2, 25.4, 29.8, 30.7, 24.0, 28.5, 22.7]\n", "\n", "show_scatter_plot('Scatter Plot', 'Dependent variable', \n", " 'Independent variable', xs, ys )" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ss_residual = 6.11253\n", "ss_total = 70.60875\n" ] } ], "source": [ "ss_residual, ss_total = calculate_ss(xs, ys)\n", "\n", "print(f'ss_residual = {ss_residual:8.5f}')\n", "print(f'ss_total = {ss_total:8.5f}')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "coefficient of determination = 0.913\n" ] } ], "source": [ "r2 = calculate_r2(ss_residual, ss_total)\n", "\n", "print(f'coefficient of determination = {r2:.3f}')" ] } ], "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.7.7" } }, "nbformat": 4, "nbformat_minor": 4 }