{ "cells": [ { "cell_type": "markdown", "id": "aa71a4bf", "metadata": {}, "source": [ "# Homework 2 - Chapter 14" ] }, { "cell_type": "markdown", "id": "d8b5aac0", "metadata": {}, "source": [ "- Due Date: ?? no later than 11:59 p.m.\n", "- Partner Information: You must complete this assignment individually.\n", "- Submission Instructions: Upload your solution, entitled **YourFirstName-YourLastName-Homework2.ipynb** to the \n", "BrightSpace Homework 2 Dropbox.\n", "- Deadline Reminder: Once the submission deadline passes, BrightSpace will no longer accept your submission and you will no longer be able to earn credit. \n", "Thus, if you are not able to fully complete the assignment, submit whatever you have before the deadline so that partial credit can be earned." ] }, { "cell_type": "markdown", "id": "98f2e2cf", "metadata": {}, "source": [ "## Starting Code" ] }, { "cell_type": "code", "execution_count": 97, "id": "597dfa74", "metadata": {}, "outputs": [], "source": [ "from datascience import *\n", "import numpy as np\n", "import matplotlib.pyplot as plots\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "id": "275f006d", "metadata": {}, "source": [ "Download the file [top_10_spotify_2025.csv]() into the same directory as this Jupyter notebook." ] }, { "cell_type": "code", "execution_count": 98, "id": "8b8cedc4", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
name artists daily_rank country danceability
What I Want (feat. Tate McRae) Morgan Wallen, Tate McRae 1 US 0.657
Just In Case Morgan Wallen 2 US 0.649
Ordinary Alex Warren 3 US 0.368
I Got Better Morgan Wallen 4 US 0.598
undressed sombr 5 US 0.642
back to friends sombr 6 US 0.436
luther (with sza) Kendrick Lamar, SZA 7 US 0.707
NOKIA Drake 8 US 0.537
I'm The Problem Morgan Wallen 9 US 0.549
BIRDS OF A FEATHER Billie Eilish 10 US 0.747
\n", "

... (2771 rows omitted)

" ], "text/plain": [ "name | artists | daily_rank | country | danceability\n", "What I Want (feat. Tate McRae) | Morgan Wallen, Tate McRae | 1 | US | 0.657\n", "Just In Case | Morgan Wallen | 2 | US | 0.649\n", "Ordinary | Alex Warren | 3 | US | 0.368\n", "I Got Better | Morgan Wallen | 4 | US | 0.598\n", "undressed | sombr | 5 | US | 0.642\n", "back to friends | sombr | 6 | US | 0.436\n", "luther (with sza) | Kendrick Lamar, SZA | 7 | US | 0.707\n", "NOKIA | Drake | 8 | US | 0.537\n", "I'm The Problem | Morgan Wallen | 9 | US | 0.549\n", "BIRDS OF A FEATHER | Billie Eilish | 10 | US | 0.747\n", "... (2771 rows omitted)" ] }, "execution_count": 98, "metadata": {}, "output_type": "execute_result" } ], "source": [ "spotify = Table().read_table('top_10_spotify_2025.csv')\n", "spotify" ] }, { "cell_type": "markdown", "id": "00af1fec", "metadata": {}, "source": [ "*Danceability* is a metric Spotify has developed that determines how easy it is to dance to a certain song. It is recorded on a scale of 0 - 1, with 0 being the least \"danceable\", and 1 being the most danceable. The selected dataset contains the top 10 songs in the United States and France everyday from the beginning of 2025 until the date the assignment was created.\n", "\n", "We will use the *danceability* metric to analyze how means change when sampling, and introduce one of the most important ideas in statistics: The **Central Limit Theorem**." ] }, { "cell_type": "markdown", "id": "afe37e2f", "metadata": {}, "source": [ "## Question 1a - 1 Point" ] }, { "cell_type": "markdown", "id": "071e47e7", "metadata": {}, "source": [ "One of the first steps in many statistical analyses is to visualize the data. This helps us get a basic idea on some of the measures we will use in an experiment. Using a Histogram, plot the *danceability* column of the **spotify** table. The histogram should have 20 bins ranging from 0 to 1. Plot a vertical red line at the mean of the data on the x-axis, and extend it from 0 to 3 on the y-axis. (Hint: check the [plots.vline()](https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.vlines.html) documentation)" ] }, { "cell_type": "code", "execution_count": 99, "id": "4143ac2c", "metadata": {}, "outputs": [], "source": [ "# Place Answer Here" ] }, { "cell_type": "code", "execution_count": 100, "id": "ffc72771", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plots the Histogram of the data with 20 bins, then plots the mean with a vertical line\n", "spotify.hist('danceability', bins=np.arange(0,1.1, .05))\n", "plots.vlines(np.mean(spotify['danceability']), 0, 3, colors='Red');" ] }, { "cell_type": "markdown", "id": "7c118587", "metadata": {}, "source": [ "## Question 1b - 1 Point" ] }, { "cell_type": "markdown", "id": "788d84aa", "metadata": {}, "source": [ "What direction is the histogram skewed? While code is not necessary for this question, you **may** use the following code block if desired. Answer in the space provided." ] }, { "cell_type": "code", "execution_count": 101, "id": "fdd6c02f", "metadata": {}, "outputs": [], "source": [ "# Place Code Here" ] }, { "cell_type": "markdown", "id": "7938b1cd", "metadata": {}, "source": [ "**Answer -**" ] }, { "cell_type": "code", "execution_count": 102, "id": "0f9b46b5", "metadata": {}, "outputs": [ { "data": { "image/png": "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yqxZs8xj69atndZr19c+ffqY52+//bYZUl1LOLRnifZAef/99x375suXz1THaK8UDSI6fkfv3r1lwoQJLjtPAADghnE4XCW94dFTCwwMlJkzZ5olIzoY2erVq118dgAAwG2Bo1+/ftfdPm/evJycDwAA8EJ+2ekWm5IOzKXdWbUniX00UADwBtpAPSoqymXH0wETdeBCwBdlOXBoj5L0Bu3SNhTVqlVz1XkBgNvDRq3QUImPi3PZMQODguTwoUOEDvgkl7Th0Ead2pNEG3++9NJLrjgkALiVlmxo2Gh4ZycpHByS4+PFXIyS8K0rzHEJHPBFLms0euzYMaaEB+B1NGwEh6Q/iCAACwOHlmSk7mmiU8LrFPLaHRUAACDHgWPv3r1pqlNKlCgh06dPv2EPFgAA4JuyHDh0vhMAAABLJ28DAADIKgIHAACwHIEDAABYjsABAAA8K3DoMOb33nuv/Pbbb9adEQAA8O3A4e/vL7/88ot1ZwMAALxSlqtUevToIXPnzrXmbAAAgFfK8jgcOny5TkG/fv16ady4sRQsWNBp+4wZM1x5fgAAwBcDh05Ff9ttt5nnR44ccdqWJ08e150ZAADwGow0CgAAPLdb7NGjR+W7776TuLg4xyRuAAAALgkc58+fN11ja9asKe3btzczxar+/fvLCy+8kNXDAQAAH5DlwDFs2DDTPfbUqVNSoEABx/pu3brJmjVrXH1+AADAF9twrF271lSllC9f3ml9jRo15OTJk648NwAA4KslHJcvX3Yq2bD7+++/JSAgwFXnBQAAfDlwtGrVShYtWuTUFfbatWsydepUufvuu119fgAAwBerVDRYaKPRn376SRITE+Wll16S/fv3mxKO7du3W3OWAADAt0o46tatawb8atmypXTu3NlUsXTp0kX27t0r1apVs+YsAQCAb5VwqODgYHnllVdcfzYAAMArZStwXLhwwUzgdvDgQfO6Tp060rdvXylWrJirzw8AAPhilcrWrVulcuXK8s9//tMED130eZUqVcw2AACAHJdwDB482AzyNWvWLMmXL59Zd/XqVXnmmWfMtn379mX1kAAAwMvlzc4cKjqEuT1sKH0+fPhwsw0AACDHgUOnpre33UhJ1zVo0CCrhwMAAD4gy1Uqzz77rDz33HOmNOOOO+4w63bt2iUzZ86UKVOmyC+//OLYt379+q49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vmfz5s2m2L9169bmr/Q333xTbr31VvN5+t4uXbrIwYMHMzzHCxcuyIQJE6RJkybmRq3vq1q1qjz66KPy7bffptk/OTlZPvroI/N5xYoVk4CAAKlSpYoMGjRITp8+ne5nLFu2TJ588knz/W+55RYJDAw07+nXr58cPnz4htfx559/Nt+jRIkS5vzq168v7777brrXMaM2HNeTug2Hvb3HwoULzeu+ffua1/Zl/PjxcuzYMTM9u34fnbo9I/qz0PesXr060+cDeBx3zx4HIGP/+c9/bAULFjQzSOrMkI899pitTZs2Nn9/f1vXrl0ds+ieOHHC8Z7+/fubdaGhobawsDBbt27dbM2aNbPlzZvXrB82bFiGs1Y2b97cHF+nwG7Xrp35DJ3RU7fptOMpP8cuPDzcVq5cObNPcHCwrX379o7PDAoKSjPb5aVLl2ytW7c2+xcqVMhsf/jhh221atUy64oXL27bs2dPms/Rabj1vJo0aWLr0qWLrVOnTuaa6Hv0Gm3fvj3Ne3S2Td0+aNAgMztp5cqVzbm1bdvWzLap2/Szr1275vQ+nYEz5ayddvr9db1e99RS/yz++usv836dGVXXt2jRwry2L8uXLzf7dezY0WyfM2dOuv8GNm7caLbrcVKfJ5CbEDgADxUXF+e42T///PNO06D//PPPtpCQEMd01imDwObNm23Hjh1Lc7xDhw7Zypcvb/b//vvvM5wmu1GjRraIiAin89DgotsGDhzo9L7Y2FjHOfbq1csWExPjtD06Otq2bt06p3VPPPGE2f+BBx6wRUZGOm17++23zbYaNWqkmfZ9yZIl5vNS0hvwzJkzzXtuvfXWNDdke+DQRadB1+nR7X799VdbiRIlzLbZs2e7PHCkPoeMphHX66PbGzRokO52DX26ffr06eluB3ILAgfgof7973+bG43e0BMTE9Nst9+c07vJZeSDDz4w+48YMSLdwJEnTx5TYpHarl27HKUsKb3zzjtmfcOGDdMEhPQcOHDAfEbZsmVNSUd6tIREj7ly5UpbZmlpir5n//796d7sy5QpY4JTau+9954j4LgrcCgNS7qPlmildPr0aZufn58p2blw4cINrgLg2Wg0CngobVehtB2Ev79/mu29e/eWYcOGpfve2NhY03Zi7969EhUVJYmJiWZ9RESEecyozUPFihWlQYMGadbXrl3bPP7xxx9O69esWWMe+/fvb9oi3Ii2QdA/dO6//34pXLhwuvtouw7db8eOHfLAAw84bTt69Kj5TH2MiYlxtL+IjIx0fK86deqkOaZeQ23zkd41HDp0qPz222/y559/StmyZcUdnn32WXnqqafkX//6l7Rs2dKx/oMPPjDtXbT9R9GiRd1yboCrEDgAD3XmzBnzqA0j06MNDbWB5sWLF53Wr1y50tygzp8/n+GxL126lGHgSE+RIkXMY0JCgtP6kydPmsfQ0FDJjOPHj5vHuXPnmuV6/vrrL8dzDRZDhgwxN2ANLFn9XhldQw092ihWr5Veb3cFjh49esjLL79sGsZqKCxTpowJiR9++KHZrt8dyO0IHIAX0RKIbt26SVxcnLz00kvSvXt303uiUKFCkjdvXlm7dq2EhYVleNPWfax07do189iwYcN0S1JSatq0qeO59iaZPXu2lC5dWmbMmCHNmzeXUqVKOUotnnjiCfn000+vG0ZuJCfvzakCBQrIgAEDZOrUqTJnzhzTy+jLL780JTetWrUyPWqA3I7AAXgo+wBSGQ2VHR0dnW7phoYNHbhKu7amplUHrqQlItpd9tChQ6bb7Y1UqFDBPGqXXa0+yCx7d14t4ejUqVOWv9eJEyfSXa/VMvaSoPLly4s7DR48WKZPn24Cx+jRox3Xh9INeAvG4QA81F133eW42erYGKktWrQozbq///7bPFaqVCndv+AXL17s0nNs166deZw3b16G44KkpG031IoVKyQ+Pj7Tn3O977V//34JDw+/7vuXLl2apjpIffzxx+axevXqlo0QquOgKG2LcaPw9uCDD5q2JGPHjjVtWLSKR8cOAbwBgQPwUA8//LC5CZ46dUpGjRrlqI5Qv/76q7z++usZNu784osvHA1ElYYB+03MlXQgLi0Z0MapWiVw+fLlNG0q1q9f73jdqFEj6dq1qxncS2+k6ZXe6DE++eQTR0PQlN9r5syZTtdBv2OvXr1ueDPXm/iLL77oFIq0ZEYHK1MZNb51BXvJiQajG3nuuefM45QpU8yjNiT186MgGl7C3d1kAGRMx9TQLpH2gZ904K/77rvPDPylg1+l7oqp40w0btzYMahWhw4dbI8++qjZT98zcuRIsy31YFz2brGp16dk74Kbmg7SVbp0acfgYPqZOriWDiKW0cBf9957r9lfB9+6/fbbzTk+8sgj5rl9QK6DBw86dcu1r69evbrZXwcm0+Nrl9KHHnoo3a6n9i6pTz/9tBn4q0qVKuYa6rgi9uPpe60Y+CvlmCk66JouOqha3759zeBsX3/9dbrXWcdB0ePozyvleChAbkcJB+Dh1Srff/+9KQ3Q4cOXL19uelPoX+afffZZmv31r2HtTqttALR0RCcU09dasrBz505HFYgr6bH37dsnY8aMMW009PO0yuTs2bOmvYWWzqTuGaKNV7V6R9t9aAmOfq+NGzea9ifa0FVfp5ybRBuQ/vTTT+Z4WgKix9dhwbVLq34vey+ajOj7tXRHh0Vft26dOccaNWqYBqhaZaXDhltFG3xqA9BmzZqZn6UOm649dPbs2ZPu/m3btnWUcGkjWcBb5NHU4e6TAAD8t+pLg5Z2N9aApCEF8BaUcACAh9AeKho2NGgQNuBtaI0EAG6ko6O+9dZbpgpKR1HVsVB0NmDA2xA4AMCNtKeNtunQ7rM6Db1OW68DmwHehjYcAADAcrThAAAAliNwAAAAyxE4AACA5QgcAADAcgQOAABgOQIHAACwHIEDAABYjsABAAAsR+AAAABitf8D5KDh6K/dKgIAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# NOTE: This code block is optional. It should not be graded.\n", "\n", "# Plots the histogram with mean and median, which could be used to determine skew following the definition in the book\n", "spotify.hist('danceability', bins=np.arange(0,1.1, .05))\n", "plots.vlines(np.mean(spotify['danceability']), 0, 3, colors='Red', label='Mean')\n", "plots.vlines(np.median(spotify['danceability']), 0, 3, colors='Green', label='Median')\n", "plots.legend();" ] }, { "cell_type": "markdown", "id": "0eb842e4", "metadata": {}, "source": [ "**Sample Answer -** Left" ] }, { "cell_type": "markdown", "id": "117b4c8b", "metadata": {}, "source": [ "## Question 2a - 2 Points" ] }, { "cell_type": "markdown", "id": "17d0f4c7", "metadata": {}, "source": [ "The \"informal statement\" in section 14.2.4 of the book says \"In all numerical data sets, the bulk of the entries are within the range *average \n", " $\\pm$ a few SDs*\". Finding this proportion helps us view the spread of the data.\n", " \n", "Create a function that calculates the proportion of data that falls within **2 Standard Deviations** of the mean. Print out this proportion in the following format: *74.68% of the data is within 2 standard deviations of the mean.* (Note: the number will be different in your answer.)" ] }, { "cell_type": "code", "execution_count": 103, "id": "1b94c85e", "metadata": {}, "outputs": [], "source": [ "# Place Answer Here" ] }, { "cell_type": "code", "execution_count": 104, "id": "d994912a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "95.76% of the data is within 2 standard deviations of the mean.\n" ] } ], "source": [ "def prop_in_bounds(col):\n", " '''Calculates the proportion of the data within 2 SDs'''\n", " mean = np.mean(col)\n", " sd = np.std(col)\n", " # Takes the column length, necessary to calculate the proportion\n", " col_len = len(col)\n", "\n", " # Calculates the upper and lower bounds\n", " lower_bound = mean - (2 * sd)\n", " upper_bound = mean + (2 * sd)\n", "\n", " number = 0\n", " # Counts the number of datapoints within the bounds\n", " for i in col:\n", " if lower_bound <= i <= upper_bound:\n", " number += 1\n", "\n", " # Returns the proportion\n", " return number/col_len\n", "\n", "# Calculates the proportion and prints in the desired format\n", "chebychevs_2 = prop_in_bounds(spotify['danceability'])\n", "print(f'{round(chebychevs_2*100, 2)}% of the data is within 2 standard deviations of the mean.')" ] }, { "cell_type": "markdown", "id": "9f62b853", "metadata": {}, "source": [ "## Question 2b - 1 Point" ] }, { "cell_type": "markdown", "id": "518f6740", "metadata": {}, "source": [ "Since this distribution is not normal, we cannot use any known proportions for data that is similar to a bell curve. However, we can use **Chebychev's bounds**. Does the proportion from question 2a make sense when using Chebychev's bounds?" ] }, { "cell_type": "markdown", "id": "57d6c6fe", "metadata": {}, "source": [ "**Answer -**" ] }, { "cell_type": "markdown", "id": "9478609f", "metadata": {}, "source": [ "**Sample Answer -** Yes, because Chebychev's bounds provide a lower bound for the proportion. At least 75% of the data should fall within 2 Standard Deviations, and we have ~95% of the data within 2 Standard Deviations. " ] }, { "cell_type": "markdown", "id": "773dc313", "metadata": {}, "source": [ "## Question 3 - 1 Point" ] }, { "cell_type": "markdown", "id": "47d0eccb", "metadata": {}, "source": [ "Converting data to *Standard Units* is a helpful technique while performing data analysis. This technique is also known as **Z-Score Normalizing**. Add a column containing the danceability scores in standard unites called *norm_dance* to the **spotify** table. Then, display a histogram of the new column." ] }, { "cell_type": "code", "execution_count": 105, "id": "7cd3b59b", "metadata": {}, "outputs": [], "source": [ "# Place Answer Here" ] }, { "cell_type": "code", "execution_count": 106, "id": "9b096436", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def normalize(col):\n", " '''z-score normalizes the data'''\n", " return (col - np.mean(col))/np.std(col)\n", "\n", "# Adds the column to the table and displays the histogram\n", "spotify = spotify.with_column('norm_dance', normalize(spotify['danceability']))\n", "spotify.hist('norm_dance')" ] }, { "cell_type": "markdown", "id": "1f5560b5", "metadata": {}, "source": [ "## Question 4 - 1 Point" ] }, { "cell_type": "markdown", "id": "7fb6e9c7", "metadata": {}, "source": [ "Print the mean and the standard deviation of the *norm_dance* column of the **spotify** table in the following format: *The (mean/standard deviation) is: 1.7*. (Note: the number will change)" ] }, { "cell_type": "code", "execution_count": 107, "id": "0f0f5490", "metadata": {}, "outputs": [], "source": [ "# Place Answer Here" ] }, { "cell_type": "code", "execution_count": 108, "id": "6a66207b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The mean is: -0.0\n", "The standard deviation is: 1.0\n" ] } ], "source": [ "print(f'The mean is: {round(np.mean(spotify['norm_dance']), 2)}')\n", "print(f'The standard deviation is: {round(np.std(spotify['norm_dance']), 2)}')" ] }, { "cell_type": "markdown", "id": "f7efb687", "metadata": {}, "source": [ "## Question 5a - 2 Points" ] }, { "cell_type": "markdown", "id": "5bf46700", "metadata": {}, "source": [ "Now that we have standardized data, we can attempt to understand the Central Limit Theorem. Create a function called **simulate** that takes a sample of variable size 500 times, takes the mean *norm_dance* of the sample, then adds it it to an array. Once the array has 500 means in it, return the array. \n", "\n", "Use this function to create two tables: one with a sample size of 5 called *means_5*, and one with a sample size of 250 called *means_250*. Each table should have 500 rows. Display a histogram of both tables." ] }, { "cell_type": "code", "execution_count": 109, "id": "5cf5dc1e", "metadata": {}, "outputs": [], "source": [ "# Place Answer Here" ] }, { "cell_type": "code", "execution_count": 110, "id": "0896f6ca", "metadata": {}, "outputs": [ { "data": { "image/png": "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T5o0ydvlAwCUQJXImhIVHePvYiBEFDtMrFy50rRKdOvWTT744AOpWbOm+1ilSpWkUaNGUq9ePV+VEwAAlPUwcc0115jbvXv3miYpbYkAAAAoVpjYunWrtGrVSsLCwiQtLU22bdtW5LmXXnqpN8sHAACCIUy0bdtWDh8+bDpY6n1tldBLHgXpfu2MCQAAQkexwoRe2rjwwgvd9wEAADwKE9q5srD7AAAAHk9apX788UczuuPo0aOSm5ub79iECRO8VTYAABCMYeKNN96QBx54wEyDGhMTk29Uh94nTAAAEFo8DhPPPPOMTJkyRcaNG+ebEgEAgOBeNfS3336T22+/3TelAQAAwR8mNEh88cUXvikNAAAI/sscTZs2laeeekrWrVsnrVu3looVK+Y7PmLECG+WDwAABFuYeP3116VatWqyatUqs+WlHTA9DRMHDx40/S8+//xzOXnypAkr8+fPl44dO5rjOjnWxIkTTcfP1NRUufLKK2XOnDnSrFkzT4sOAAACIUx4c9Iq7X+h4eC6664zYUInxtJhpxdccIH7nGnTpsnMmTNl4cKFEhsba1pFevbsKT/88EO+ZdABAEAZmmfCW5577jlp0KCBaYlw0cDgoq0SL730kjz55JPSu3dvsy8+Pl7q1Kkjixcvlv79+/ul3AAAwCJMDBky5JzH582bV+zXWrJkiWll0E6desnkoosukgcffFDuvfdedyuIrgnSo0cP93OioqKkU6dOsnbt2kLDRHZ2ttlc0tPTi10eAABQSkND8246C+ZXX30lH374oenT4ImffvrJ3f9h2bJlZjIs7XOhlzSUBgmlLRF56WPXsYKmTp1qAodr05YPAAAQQC0TH3300Vn7dEptDQJNmjTx6LX0edrR8m9/+5t53K5dO9m+fbvMnTtXBg8eLCUxfvx4GT16dL6WCQIFAAAB1DJR6IuEhZkv8BdffNGj59WtW1datmyZb98ll1wiycnJ5r5O162OHDmS7xx97DpWUHh4uFSvXj3fBgAAAjxMqD179khOTo5Hz9GRHElJSfn27dq1y70yqXbG1NCwYsWKfC0N69evl86dO3up5AAAoFQvc+S9hOAacXHo0CH57LPPPL40MWrUKOnSpYu5zHHHHXfIhg0bzDwWurnmrRg5cqRZD0T7VbiGhtarV0/69OnjadEBAEAghImEhISzLnHo/BAv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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def simulate(col, reps):\n", " '''Simulates 1000 means of a set sample size'''\n", " sample_means = make_array()\n", "\n", " # Gets 1000 means, adds to the array\n", " for _ in range(500):\n", " song_sample = spotify.sample(reps)\n", " sample_means = np.append(sample_means, np.mean(song_sample[col]))\n", "\n", " return sample_means\n", "\n", "# Creates two tables, one with a sample size of 5 and one with sample size of 100\n", "means_5 = Table().with_column('Sample Mean', simulate('norm_dance', 5))\n", "means_250 = Table().with_column('Sample Mean', simulate('norm_dance', 250))\n", "\n", "# Displays the histograms of the means\n", "means_5.hist('Sample Mean')\n", "means_250.hist('Sample Mean')" ] }, { "cell_type": "markdown", "id": "78e7c850", "metadata": {}, "source": [ "## Question 5b - 1 Point" ] }, { "cell_type": "markdown", "id": "5c389647", "metadata": {}, "source": [ "Print the means the **norm_dance** column of the *spotify* table, and the means of the *means_5* and *means_250* tables in the following format: *The mean of (Replace with table name) is: -4.5* (Note: The number will change). Round these values to two decimal places. What table has a mean closest to the *spotify* table? Does this make sense? Answer in the space provided." ] }, { "cell_type": "code", "execution_count": 111, "id": "29f1452e", "metadata": {}, "outputs": [], "source": [ "# Place Code Here" ] }, { "cell_type": "markdown", "id": "fe97b3ee", "metadata": {}, "source": [ "**Answer -**" ] }, { "cell_type": "code", "execution_count": 112, "id": "110b0697", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The mean of the spotify table is: -0.0\n", "The mean of the means_5 table is: -0.03\n", "The mean of the means_250 table is: -0.0\n" ] } ], "source": [ "# Prints the means of all the tables to two decimal places\n", "print(f'The mean of the spotify table is: {round(np.mean(spotify['norm_dance']), 2)}')\n", "print(f'The mean of the means_5 table is: {round(np.mean(means_5['Sample Mean']), 2)}')\n", "print(f'The mean of the means_250 table is: {round(np.mean(means_250['Sample Mean']), 2)}')" ] }, { "cell_type": "markdown", "id": "faaa2af2", "metadata": {}, "source": [ "**Sample Answer-** The table with a sample size of 250 has a mean that is closest to the spotify table. This makes sense as the Central Limit Theorem states that larger samples will be closer to the population mean." ] }, { "cell_type": "markdown", "id": "a0d68ab2", "metadata": {}, "source": [ "## Bonus Question" ] }, { "cell_type": "markdown", "id": "b7d0b4f1", "metadata": {}, "source": [ "A two-sample t-test is a way of comparing two groups, and seeing if their means are \"substantially\" different. This is may sound similar to A/B testing explored in chapter 12 of the text, but while A/B testing checks if two samples come from the same underlying distribution, t-tests examine whether one group's mean is different than the other. In our case, we can use this test to see if the *danceability* of one countries top songs is higher or lower than another country.\n", "\n", "T-tests have a set of assumptions that need to be met in order for them to work. These assumptions are the observations are **Independent**, the samples have **Equal Variance**, and the distributions of each sample are **Normal**." ] }, { "cell_type": "markdown", "id": "e55984e0", "metadata": {}, "source": [ "## Bonus Question (a) - 1 Point" ] }, { "cell_type": "markdown", "id": "29dfe6e9", "metadata": {}, "source": [ "The first step in performing a t-test is creating the two groups. Then, we must check if the groups have nearly **Equal Variance**. This is one of the assumptions that must be met to perform a t-test.\n", "\n", "Create two tables, one only containing rows from the *spotify* table where the country is **FR**, and one only containing rows from the *spotify* table where the country is **US**. Call these tables *spotify_fr* and *spotify_us*. Print the standard deviation of the **norm_dance** columns of these tables in the following format: *The variance of norm_dance for top songs in (country) is: 5.68* (Note: The number will change)" ] }, { "cell_type": "code", "execution_count": null, "id": "69a30f1b", "metadata": {}, "outputs": [], "source": [ "# Place Answer Here" ] }, { "cell_type": "code", "execution_count": 113, "id": "43a9aa36", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The variance of norm_dance for top songs in France is: 0.84\n", "The variance of norm_dance for top songs in America is: 1.06\n" ] } ], "source": [ "# Separates the table into two by country\n", "spotify_fr = spotify.where('country', 'FR')\n", "spotify_us = spotify.where('country', 'US')\n", "\n", "# Displays the variance of the new tables\n", "print(f'The variance of norm_dance for top songs in France is: {round(np.std(spotify_fr['norm_dance']), 2)}')\n", "print(f'The variance of norm_dance for top songs in America is: {round(np.std(spotify_us['norm_dance']), 2)}')" ] }, { "cell_type": "markdown", "id": "af217fdf", "metadata": {}, "source": [ "If the ratio of the (larger standard deviation)/(smaller standard deviation) is less than 2, we can claim there is **weak evidence** against the Equal Variance assumption and proceed in our tests. If there is weak evidence against an assumption, we can continue with the test.\n", "\n", "Regardless of the value of the ratio, we will continue as if there is weak evidence against the equal variance assumption." ] }, { "cell_type": "markdown", "id": "d1e580a4", "metadata": {}, "source": [ "### Other Assumptions" ] }, { "cell_type": "markdown", "id": "c3c8b9cd", "metadata": {}, "source": [ "**Independence of Observations -** We can say observations are not independent if knowledge about one observation allows to make an improved guess about another observation. In this case, knowing one song on the top 10 list of a country probably wouldn't help in determining the rest of the list, so we can say there is **weak evidence** against the assumption of independence.\n", "\n", "**Normality -** As we can see on the figures below, neither country follows a normal distribution. However, this is OK! Using the **Central Limit Theorem**, we can still use t-tests on samples that have non-normal distributions, as long as they have a large sample size. Each sample has over 1300 observations, so there are more than enough for us to use a t-test. Therefore, we have **weak evidence** against the assumption of Normality!" ] }, { "cell_type": "code", "execution_count": 121, "id": "6e0dc2af", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Prints the histograms of each country\n", "spotify_fr.hist('norm_dance')\n", "spotify_us.hist('norm_dance')" ] }, { "cell_type": "markdown", "id": "50b0c34d", "metadata": {}, "source": [ "## Bonus Question (b) - 2 Points" ] }, { "cell_type": "markdown", "id": "910e5008", "metadata": {}, "source": [ "Now it is time to perform the actual t-test since all assumptions were met. To do this, we need to decide on a hypothesis we need to test. We will use the following hypoteses:\n", "\n", "$H_0$: The mean danceability of songs popular in France is the same as the mean danceability of songs popular in America\n", "\n", "$H_a$: The mean danceability of songs popular in France is higher than the mean danceability of songs popular in America\n", "\n", "While the math behind a t-test is simple, it is beyond the scope of this class. (Here is a resource if you are interested: [Statology](https://www.statology.org/two-sample-t-test/)) Fill in the *None* values of the following code block with the correct value. The *a_value* and *b_value* should be columns of the two tables created in part a of the bonus question. *equal_variance* Should be a True/False boolean. (Note: Order matters for the *a_value* and *b_value*!)" ] }, { "cell_type": "code", "execution_count": null, "id": "303743e7", "metadata": {}, "outputs": [ { "ename": "TypeError", "evalue": "unsupported operand type(s) for /: 'NoneType' and 'int'", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", "Cell \u001b[1;32mIn[92], line 8\u001b[0m\n\u001b[0;32m 5\u001b[0m equal_variance \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;66;03m# This value should be True or False\u001b[39;00m\n\u001b[0;32m 7\u001b[0m \u001b[38;5;66;03m# Performs the t-test and displays the results\u001b[39;00m\n\u001b[1;32m----> 8\u001b[0m t_test \u001b[38;5;241m=\u001b[39m \u001b[43mstats\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mttest_ind\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43ma_value\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mb\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mb_value\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mequal_var\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mequal_variance\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 10\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mThe results of the t-test are: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mt_test\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m)\n", "File \u001b[1;32mc:\\Users\\allin\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\site-packages\\scipy\\_lib\\deprecation.py:234\u001b[0m, in \u001b[0;36m_deprecate_positional_args.._inner_deprecate_positional_args..inner_f\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 232\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m extra_args \u001b[38;5;241m<\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[0;32m 233\u001b[0m warn_deprecated_args(kwargs)\n\u001b[1;32m--> 234\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 236\u001b[0m \u001b[38;5;66;03m# extra_args > 0\u001b[39;00m\n\u001b[0;32m 237\u001b[0m kwonly_extra_args \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mset\u001b[39m(kwonly_args[:extra_args]) \u001b[38;5;241m-\u001b[39m deprecated_args\n", "File \u001b[1;32mc:\\Users\\allin\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\site-packages\\scipy\\stats\\_axis_nan_policy.py:586\u001b[0m, in \u001b[0;36m_axis_nan_policy_factory..axis_nan_policy_decorator..axis_nan_policy_wrapper\u001b[1;34m(***failed resolving arguments***)\u001b[0m\n\u001b[0;32m 583\u001b[0m res \u001b[38;5;241m=\u001b[39m _add_reduced_axes(res, reduced_axes, keepdims)\n\u001b[0;32m 584\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m tuple_to_result(\u001b[38;5;241m*\u001b[39mres)\n\u001b[1;32m--> 586\u001b[0m res \u001b[38;5;241m=\u001b[39m \u001b[43mhypotest_fun_out\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43msamples\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 587\u001b[0m res \u001b[38;5;241m=\u001b[39m result_to_tuple(res, n_out)\n\u001b[0;32m 588\u001b[0m res \u001b[38;5;241m=\u001b[39m _add_reduced_axes(res, reduced_axes, keepdims)\n", "File \u001b[1;32mc:\\Users\\allin\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\site-packages\\scipy\\stats\\_stats_py.py:6678\u001b[0m, in \u001b[0;36mttest_ind\u001b[1;34m(a, b, axis, equal_var, nan_policy, permutations, random_state, alternative, trim, method)\u001b[0m\n\u001b[0;32m 6676\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m trim \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[0;32m 6677\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m np\u001b[38;5;241m.\u001b[39merrstate(divide\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mignore\u001b[39m\u001b[38;5;124m'\u001b[39m, invalid\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mignore\u001b[39m\u001b[38;5;124m'\u001b[39m):\n\u001b[1;32m-> 6678\u001b[0m v1 \u001b[38;5;241m=\u001b[39m \u001b[43m_var\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mddof\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mxp\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mxp\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 6679\u001b[0m v2 \u001b[38;5;241m=\u001b[39m _var(b, axis, ddof\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m, xp\u001b[38;5;241m=\u001b[39mxp)\n\u001b[0;32m 6681\u001b[0m m1 \u001b[38;5;241m=\u001b[39m xp\u001b[38;5;241m.\u001b[39mmean(a, axis\u001b[38;5;241m=\u001b[39maxis)\n", "File \u001b[1;32mc:\\Users\\allin\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\site-packages\\scipy\\stats\\_stats_py.py:1210\u001b[0m, in \u001b[0;36m_var\u001b[1;34m(x, axis, ddof, mean, xp)\u001b[0m\n\u001b[0;32m 1207\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21m_var\u001b[39m(x, axis\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0\u001b[39m, ddof\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0\u001b[39m, mean\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, xp\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[0;32m 1208\u001b[0m \u001b[38;5;66;03m# Calculate variance of sample, warning if precision is lost\u001b[39;00m\n\u001b[0;32m 1209\u001b[0m xp \u001b[38;5;241m=\u001b[39m array_namespace(x) \u001b[38;5;28;01mif\u001b[39;00m xp \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m xp\n\u001b[1;32m-> 1210\u001b[0m var \u001b[38;5;241m=\u001b[39m \u001b[43m_moment\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m2\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmean\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmean\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mxp\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mxp\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1211\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m ddof \u001b[38;5;241m!=\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[0;32m 1212\u001b[0m n \u001b[38;5;241m=\u001b[39m x\u001b[38;5;241m.\u001b[39mshape[axis] \u001b[38;5;28;01mif\u001b[39;00m axis \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m xp_size(x)\n", "File \u001b[1;32mc:\\Users\\allin\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\site-packages\\scipy\\stats\\_stats_py.py:1189\u001b[0m, in \u001b[0;36m_moment\u001b[1;34m(a, order, axis, mean, xp)\u001b[0m\n\u001b[0;32m 1186\u001b[0m n_list\u001b[38;5;241m.\u001b[39mappend(current_n)\n\u001b[0;32m 1188\u001b[0m \u001b[38;5;66;03m# Starting point for exponentiation by squares\u001b[39;00m\n\u001b[1;32m-> 1189\u001b[0m mean \u001b[38;5;241m=\u001b[39m (\u001b[43mxp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmean\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43maxis\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkeepdims\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m \u001b[38;5;28;01mif\u001b[39;00m mean \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 1190\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m xp\u001b[38;5;241m.\u001b[39masarray(mean, dtype\u001b[38;5;241m=\u001b[39mdtype))\n\u001b[0;32m 1191\u001b[0m mean \u001b[38;5;241m=\u001b[39m mean[()] \u001b[38;5;28;01mif\u001b[39;00m mean\u001b[38;5;241m.\u001b[39mndim \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m mean\n\u001b[0;32m 1192\u001b[0m a_zero_mean \u001b[38;5;241m=\u001b[39m _demean(a, mean, axis, xp\u001b[38;5;241m=\u001b[39mxp)\n", "File \u001b[1;32mc:\\Users\\allin\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\site-packages\\numpy\\_core\\fromnumeric.py:3860\u001b[0m, in \u001b[0;36mmean\u001b[1;34m(a, axis, dtype, out, keepdims, where)\u001b[0m\n\u001b[0;32m 3857\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 3858\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m mean(axis\u001b[38;5;241m=\u001b[39maxis, dtype\u001b[38;5;241m=\u001b[39mdtype, out\u001b[38;5;241m=\u001b[39mout, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[1;32m-> 3860\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_methods\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_mean\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43maxis\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdtype\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdtype\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 3861\u001b[0m \u001b[43m \u001b[49m\u001b[43mout\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[1;32mc:\\Users\\allin\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\site-packages\\numpy\\_core\\_methods.py:137\u001b[0m, in \u001b[0;36m_mean\u001b[1;34m(a, axis, dtype, out, keepdims, where)\u001b[0m\n\u001b[0;32m 135\u001b[0m ret \u001b[38;5;241m=\u001b[39m umr_sum(arr, axis, dtype, out, keepdims, where\u001b[38;5;241m=\u001b[39mwhere)\n\u001b[0;32m 136\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(ret, mu\u001b[38;5;241m.\u001b[39mndarray):\n\u001b[1;32m--> 137\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[43mum\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrue_divide\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 138\u001b[0m \u001b[43m \u001b[49m\u001b[43mret\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrcount\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mret\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcasting\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43munsafe\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msubok\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[0;32m 139\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m is_float16_result \u001b[38;5;129;01mand\u001b[39;00m out \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 140\u001b[0m ret \u001b[38;5;241m=\u001b[39m arr\u001b[38;5;241m.\u001b[39mdtype\u001b[38;5;241m.\u001b[39mtype(ret)\n", "\u001b[1;31mTypeError\u001b[0m: unsupported operand type(s) for /: 'NoneType' and 'int'" ] } ], "source": [ "#TODO: Fill in the None values in this block!\n", "\n", "import scipy.stats as stats\n", "\n", "a_value = None # This value should contain a column of a table\n", "b_value = None # This value should contain a column of a table\n", "equal_variance = None # This value should be True or False\n", "\n", "# Performs the t-test and displays the results\n", "t_test = stats.ttest_ind(a=a_value, b=b_value, equal_var=equal_variance)\n", "\n", "print(f'The results of the t-test are: {t_test}')" ] }, { "cell_type": "code", "execution_count": 94, "id": "f062baa3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The results of the t-test are: TtestResult(statistic=15.827670381970748, pvalue=4.3120559806621321e-54, df=2779.0)\n" ] } ], "source": [ "import scipy.stats as stats\n", "\n", "# Assigns the correct values to the variables (NOTE: Order matters for a and b values)\n", "a_value = spotify_fr['norm_dance']\n", "b_value = spotify_us['norm_dance']\n", "equal_variance = True\n", "\n", "# Performs the t-test and displays the results\n", "t_test = stats.ttest_ind(a=a_value, b=b_value, equal_var=equal_variance)\n", "print(f'The results of the t-test are: {t_test}')" ] }, { "cell_type": "markdown", "id": "d4479d06", "metadata": {}, "source": [ "## Bonus Question (c) - 2 Points" ] }, { "cell_type": "markdown", "id": "4710b935", "metadata": {}, "source": [ "Now that we have completed the t-test, we can draw a conclusion about our hypotheses. Use the following format, replacing the values with the ones from the previous questions. (Hint: If we have a p-value less than 0.05, we can say there is **strong evidence** for the alternative hypothesis!)\n", "\n", "Format: *There is (amount of evidence) that the true mean danceability of popular French songs is higher than the true mean danceability of popular American songs. (t=(test statistic), p-value=(p value), df=(degrees of freedom))*" ] }, { "cell_type": "markdown", "id": "dd5f2b22", "metadata": {}, "source": [ "**Answer -**" ] }, { "cell_type": "markdown", "id": "6d0cc0d9", "metadata": {}, "source": [ "**Sample Answer-** There is strong evidence that the true mean danceability of popular French songs is higher than the true mean danceability of popular American songs. (t=15.827670381970748, p-value=4.3120559806621321 $e^{-54}$, df=2779)" ] } ], "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.13.1" } }, "nbformat": 4, "nbformat_minor": 5 }