Skip to content

Instantly share code, notes, and snippets.

@mpaloni
Created June 26, 2024 11:07
Show Gist options
  • Save mpaloni/04d29fa4172ee30d6881b0d358d9c9fa to your computer and use it in GitHub Desktop.
Save mpaloni/04d29fa4172ee30d6881b0d358d9c9fa to your computer and use it in GitHub Desktop.
Bootstrapping sample means example
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Bootstrapping\n",
"\n",
"This example performs a comparative analysis of two datasets representing the heights of sons and fathers in a population. By using bootstrap resampling, we estimated the distributions of the sample means and visualized the results through histograms.\n",
"\n",
"## Key Findings:\n",
"- **Central Tendency**:\n",
" - The histogram for sons' heights is centered around a slightly lower mean compared to fathers' heights, indicating that, on average, sons are shorter than fathers in the sampled population.\n",
"- **Variability**:\n",
" - Both histograms show the spread of the sample means, reflecting the variability in height within each group. The spreads are similar, indicating comparable variability in both groups' heights.\n",
"\n",
"## Conclusion:\n",
"This analysis provided a robust statistical foundation for comparing two datasets, offering valuable business insights into central tendencies and variability. The methodology and visualizations ensure informed decision-making for product development, policy formulation, and marketing strategies.\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"\n",
"def bootstrap_mean(data, group_count=1000, n_count=1000):\n",
" \"\"\"\n",
" Performs bootstrap resampling to estimate the distribution of the mean of the input data.\n",
"\n",
" Parameters:\n",
" data (numpy.ndarray): Input array of data points.\n",
" group_count (int): Number of bootstrap samples to generate. Default is 1000.\n",
" n_count (int): Number of data points to sample in each bootstrap sample. Default is 1000.\n",
"\n",
" Returns:\n",
" numpy.ndarray: Array containing the means of the bootstrap samples.\n",
"\n",
" Notes:\n",
" - If the input data has fewer elements than `n_count`, the function will adjust `n_count` to the length of the data.\n",
" - The bootstrap method involves sampling with replacement from the input data.\n",
" \"\"\"\n",
" len_data=len(data)\n",
" if len_data<n_count:\n",
" n_count = len_data\n",
"\n",
" groups = np.array([np.random.choice(data, \n",
" n_count, \n",
" replace = True) for _ in range(group_count)])\n",
" mean = np.mean(groups, axis=1)\n",
" return mean\n",
"\n",
"def create_histogram(data, bins=10, range=None, title='Histogram', xlabel='Value', ylabel='Frequency', fig = None):\n",
" \"\"\"\n",
" Creates and displays a histogram from a numpy array.\n",
"\n",
" Parameters:\n",
" data (numpy.ndarray): Input array.\n",
" bins (int or sequence): Number of bins or the bin edges.\n",
" range (tuple): The lower and upper range of the bins.\n",
" title (str): The title of the histogram.\n",
" xlabel (str): The label for the x-axis.\n",
" ylabel (str): The label for the y-axis.\n",
" \n",
" Returns:\n",
" fig (matplotlib.pyplot.Figure): Matplotlib figure.\n",
" \"\"\"\n",
" # Compute the histogram\n",
" hist, bin_edges = np.histogram(data, bins=bins, range=range)\n",
" \n",
" # Plot the histogram\n",
" if not fig:\n",
" fig = plt.figure(figsize=(10, 6))\n",
" plt.hist(data, bins=bin_edges, alpha=0.45, edgecolor='black')\n",
" plt.title(title)\n",
" plt.xlabel(xlabel)\n",
" plt.ylabel(ylabel)\n",
" plt.grid(True)\n",
" return fig\n",
"\n",
"def compare_samples(sample1, sample2):\n",
" \"\"\"\n",
" Compares two samples by performing bootstrap resampling on each and visualizing the results.\n",
"\n",
" Parameters:\n",
" sample1 (numpy.ndarray): The first sample array.\n",
" sample2 (numpy.ndarray): The second sample array.\n",
"\n",
" Notes:\n",
" - The function performs bootstrap resampling with 1000 samples of size 1000 (or the size of the sample if smaller).\n",
" - It creates histograms of the bootstrap means for each sample and prints the 5th percentile, mean, and 95th percentile of the bootstrap means.\n",
"\n",
" Returns:\n",
" None\n",
"\n",
" Example:\n",
" >>> sample1 = np.random.randn(100)\n",
" >>> sample2 = np.random.randn(100)\n",
" >>> compare_samples(sample1, sample2)\n",
" \"\"\"\n",
" n_count=1000\n",
" group_count=1000\n",
"\n",
" boot_strapped = bootstrap_mean(sample1,group_count=group_count,n_count=n_count)\n",
" fig = create_histogram(boot_strapped, bins=200, title='Compare samples', xlabel='Data Values', ylabel='Frequency')\n",
" print(f\"0.05th quantile: {np.round(np.quantile(boot_strapped,0.05),2)}, mean: {np.round(np.mean(boot_strapped),2)}, 0.95th quantile: {np.round(np.quantile(boot_strapped,0.95),2)}\")\n",
"\n",
" boot_strapped = bootstrap_mean(sample2,group_count=group_count,n_count=n_count)\n",
" fig = create_histogram(boot_strapped, bins=200, title='Compare samples', xlabel='Data Values', ylabel='Frequency', fig=fig)\n",
" print(f\"0.05th quantile: {np.round(np.quantile(boot_strapped,0.05),2)}, mean: {np.round(np.mean(boot_strapped),2)}, 0.95th quantile: {np.round(np.quantile(boot_strapped,0.95),2)}\")\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Father</th>\n",
" <th>Son</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>1078.000000</td>\n",
" <td>1078.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>67.686827</td>\n",
" <td>68.684230</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>2.745827</td>\n",
" <td>2.816194</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>59.000000</td>\n",
" <td>58.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>65.800000</td>\n",
" <td>66.900000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>67.800000</td>\n",
" <td>68.600000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>69.600000</td>\n",
" <td>70.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>75.400000</td>\n",
" <td>78.400000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Father Son\n",
"count 1078.000000 1078.000000\n",
"mean 67.686827 68.684230\n",
"std 2.745827 2.816194\n",
"min 59.000000 58.500000\n",
"25% 65.800000 66.900000\n",
"50% 67.800000 68.600000\n",
"75% 69.600000 70.500000\n",
"max 75.400000 78.400000"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# One way to get the data\n",
"df = pd.read_csv('https://raw.githubusercontent.com/Sid2697/Father-Son-height/master/Pearson.txt',\n",
" delim_whitespace=True,\n",
" header=None,\n",
" )\n",
"df.columns=[\"Father\",\"Son\"]\n",
"df.describe()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Father</th>\n",
" <th>Son</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>1078.000000</td>\n",
" <td>1078.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>67.686827</td>\n",
" <td>68.684230</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>2.745827</td>\n",
" <td>2.816194</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>59.000000</td>\n",
" <td>58.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>65.800000</td>\n",
" <td>66.900000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>67.800000</td>\n",
" <td>68.600000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>69.600000</td>\n",
" <td>70.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>75.400000</td>\n",
" <td>78.400000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Father Son\n",
"count 1078.000000 1078.000000\n",
"mean 67.686827 68.684230\n",
"std 2.745827 2.816194\n",
"min 59.000000 58.500000\n",
"25% 65.800000 66.900000\n",
"50% 67.800000 68.600000\n",
"75% 69.600000 70.500000\n",
"max 75.400000 78.400000"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Another way to get the data\n",
"df = pd.read_csv(\"https://www.randomservices.org/random/data/Pearson.tsv\", delim_whitespace=True)\n",
"df.describe()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.05th quantile: 68.54, mean: 68.68, 0.95th quantile: 68.83\n",
"0.05th quantile: 67.54, mean: 67.69, 0.95th quantile: 67.83\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA18AAAIjCAYAAAD80aFnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACCfUlEQVR4nOzdeZgU5bn38V/1MhvM4MIuyCag7IpGUYwLAi5R0cSoxABKjCFyDspRz6vxRJQkGhfUREUkChgluASN0YgigsaAGhREFtkEibIMAzN0z0x31/r+MU5LM/tWM8x8P9fVF11PPVvdXV01N1XdbXie5wkAAAAA0KACjT0BAAAAAGgJSL4AAAAAwAckXwAAAADgA5IvAAAAAPAByRcAAAAA+IDkCwAAAAB8QPIFAAAAAD4g+QIAAAAAH5B8AQAAAIAPSL4AAGhBli1bJsMwtGzZssaeCgC0OCRfANDCbd26VTfccIN69uypjIwM5eTk6IwzztCjjz6qWCzW2NMDAKDZCDX2BAAAjeeNN97QFVdcofT0dI0bN04DBgyQaZr64IMPdOutt2rdunV66qmnGnuaAAA0CyRfANBCbdu2TVdddZW6deumd999V506dUquu/HGG7Vlyxa98cYbjTjDhuO6rkzTVEZGRmNPBQDQgnDbIQC0UPfff78KCwv19NNPpyRepY477jhNmTIluWzbtqZPn65evXopPT1d3bt31x133KFEIpHSrnv37vrBD36gZcuW6eSTT1ZmZqYGDhyY/IzRwoULNXDgQGVkZGjo0KFatWpVSvsJEyaodevW+vLLLzV69Gi1atVKnTt31j333CPP81LqPvjggzr99NN19NFHKzMzU0OHDtXLL79cZlsMw9DkyZP1/PPPq3///kpPT9eiRYskSd98842uu+46dejQQenp6erfv7+eeeaZasVw8eLFGj58uI444gi1bt1affv21R133JFcb5qmfv3rX2vo0KFq06aNWrVqpTPPPFNLly5N6Wf79u0yDEMPPvigHn/8cfXs2VNZWVkaNWqU/vOf/8jzPE2fPl1dunRRZmamLr30Uu3fv7/cuL/99tsaMmSIMjIy1K9fPy1cuLBa2/LRRx/p/PPPV5s2bZSVlaWzzjpL//rXv1LqRKNR3XTTTerevbvS09PVvn17jRw5Up9++mm1xgCAls7wDj2TAQBahC5duig9PV1bt26tVv0JEyZo3rx5+tGPfqRzzjlHH330kZ599lmNGTNGr7zySrJe9+7dlZGRoUgkohtuuEFt2rTRgw8+qAMHDujJJ5/UHXfcoV/+8peSpHvvvVft2rXTxo0bFQgEkuO88MIL6tq1q0477TSdeuqpWrRokV5//XX93//9n+65557kWF27dtUll1yifv36yTRNLViwQB9//LFef/11XXTRRcl6hmHohBNOUF5eniZPnqy2bdvq9NNPV6dOnXTyySfLMAxdf/31ateund5880299tprevjhh3XTTTdVGI9169bppJNO0qBBg/TTn/5U6enp2rJliz7++GO99957kqS8vDwNGjRIV199tXr37q1oNKqnn35aX375pT7++GMNGTJEUkny1aNHDw0ZMkSmaepnP/uZ9u/fr/vvv18nnXSSzj33XC1btkxXXXWVtmzZoj/+8Y+aMGFCSpJYmhDl5ubqF7/4hdq3b685c+Zo3bp1WrRokUaOHCmp5As3zjnnHC1dulRnn322JOndd9/VBRdcoKFDh+pHP/qRAoGA5syZoy+++EL//Oc/9b3vfU+S9JOf/EQvv/yyJk+erH79+mnfvn364IMPdOWVV+onP/lJtfYjAGjRPABAi3PgwAFPknfppZdWq/7q1as9Sd7PfvazlPJbbrnFk+S9++67ybJu3bp5krzly5cny9566y1PkpeZmel99dVXyfJZs2Z5krylS5cmy8aPH+9J8v7rv/4rWea6rnfRRRd5aWlp3t69e5PlxcXFKfMxTdMbMGCAd+6556aUS/ICgYC3bt26lPKJEyd6nTp18vLy8lLKr7rqKq9NmzZl+j/Yww8/7ElKmc+hbNv2EolESll+fr7XoUMH77rrrkuWbdu2zZPktWvXzisoKEiW33777Z4kb/DgwZ5lWcnyq6++2ktLS/Pi8XiyrDTuf/3rX5NlBw4c8Dp16uSdeOKJybKlS5emxNx1Xa93797e6NGjPdd1k/WKi4u9Hj16eCNHjkyWtWnTxrvxxhsr3F4AQOW47RAAWqBIJCJJys7Orlb9f/zjH5KkqVOnppT/z//8jySV+WxYv379NGzYsOTyqaeeKkk699xzdeyxx5Yp//LLL8uMOXny5OTz0tsGTdPUO++8kyzPzMxMPs/Pz9eBAwd05plnlnsb3FlnnaV+/follz3P01//+lddfPHF8jxPeXl5ycfo0aN14MCBSm+nO+KIIyRJf/vb3+S6brl1gsGg0tLSJJV8zmz//v2ybVsnn3xyuX1fccUVatOmTXK5ND7XXHONQqFQSrlpmvrmm29S2nfu3FmXXXZZcjknJ0fjxo3TqlWrtHv37nLnuHr1am3evFljx47Vvn37kjEoKirSiBEj9P777ye374gjjtBHH32knTt3VhgXAEDFSL4AoAXKycmRVPIZnur46quvFAgEdNxxx6WUd+zYUUcccYS++uqrlPKDEyxJyYSia9eu5Zbn5+enlAcCAfXs2TOlrE+fPpJKbtEr9frrr+u0005TRkaGjjrqKLVr104zZ87UgQMHymxDjx49Upb37t2rgoICPfXUU2rXrl3K49prr5Uk5ebmlg3Gt6688kqdccYZ+tnPfqYOHTroqquu0osvvlgmEZs3b54GDRqkjIwMHX300WrXrp3eeOONcudY17gdd9xxMgwjpay8uB1s8+bNkqTx48eXicOf/vQnJRKJ5Fzvv/9+rV27Vl27dtX3vvc9TZs2rdzEGQBQPr7tEABaoJycHHXu3Flr166tUbtD/7CvSDAYrFG5V4uPH//zn//UJZdcou9///t64okn1KlTJ4XDYc2ZM0fz588vU//gq2SSkknSNddco/Hjx5c7xqBBgyocPzMzU++//76WLl2qN954Q4sWLdILL7ygc889V2+//baCwaCee+45TZgwQWPGjNGtt96q9u3bKxgM6t577y33s3Z+xO1QpXF44IEHkp9BO1Tr1q0lST/+8Y915pln6pVXXtHbb7+tBx54QL///e+1cOFCXXDBBXWeCwA0dyRfANBC/eAHP9BTTz2lFStWpNwiWJ5u3brJdV1t3rxZJ5xwQrJ8z549KigoULdu3ep1bq7r6ssvv0xetZGkTZs2SSr5YglJ+utf/6qMjAy99dZbSk9PT9abM2dOtcZo166dsrOz5TiOzjvvvFrNMxAIaMSIERoxYoRmzJih3/3ud/rVr36lpUuX6rzzztPLL7+snj17auHChSmJ61133VWr8aqyZcsWeZ6XMtahcTtUr169JJUk5NWJQ6dOnfTLX/5Sv/zlL5Wbm6uTTjpJv/3tb0m+AKAauO0QAFqo2267Ta1atdLPfvYz7dmzp8z6rVu36tFHH5UkXXjhhZKkRx55JKXOjBkzJCnlmwXry2OPPZZ87nmeHnvsMYXDYY0YMUJSydUgwzDkOE6y3vbt2/Xqq69Wq/9gMKgf/vCH+utf/1ruFcC9e/dW2v7Qr3qXlLxyVPr1+6VXrA6+QvXRRx9pxYoV1ZpjTe3cuTPlmycjkYieffZZDRkyRB07diy3zdChQ9WrVy89+OCDKiwsLLO+NA6O45S5VbJ9+/bq3LlzmZ8bAACUjytfANBC9erVS/Pnz9eVV16pE044QePGjdOAAQNkmqaWL1+ul156SRMmTJAkDR48WOPHj9dTTz2lgoICnXXWWfr44481b948jRkzRuecc069zi0jI0OLFi3S+PHjdeqpp+rNN9/UG2+8oTvuuEPt2rWTVJLwzZgxQ+eff77Gjh2r3NxcPf744zruuOO0Zs2aao1z3333aenSpTr11FN1/fXXq1+/ftq/f78+/fRTvfPOO+UmWKXuuecevf/++7rooovUrVs35ebm6oknnlCXLl00fPhwSSVXFxcuXKjLLrtMF110kbZt26Ynn3xS/fr1KzfRqas+ffpo4sSJ+ve//60OHTromWee0Z49eyq9GhgIBPSnP/1JF1xwgfr3769rr71WxxxzjL755hstXbpUOTk5+vvf/65oNKouXbroRz/6kQYPHqzWrVvrnXfe0b///W899NBD9b4tANAckXwBQAt2ySWXaM2aNXrggQf0t7/9TTNnzlR6eroGDRqkhx56SNdff32y7p/+9Cf17NlTc+fO1SuvvKKOHTvq9ttvb5Bb6ILBoBYtWqRJkybp1ltvVXZ2tu666y79+te/TtY599xz9fTTT+u+++7TTTfdpB49euj3v/+9tm/fXu3kq0OHDvr44491zz33aOHChXriiSd09NFHq3///vr9739fadtLLrlE27dv1zPPPKO8vDy1bdtWZ511lu6+++7kF2JMmDBBu3fv1qxZs/TWW2+pX79+eu655/TSSy8lf3S6PvXu3Vt//OMfdeutt2rjxo3q0aOHXnjhBY0ePbrSdmeffbZWrFih6dOn67HHHlNhYaE6duyoU089VTfccIMkKSsrS7/85S/19ttva+HChXJdV8cdd5yeeOIJTZo0qd63BQCaI35kGQDQpEyYMEEvv/xyg1wZas66d++uAQMG6PXXX2/sqQAAKsBnvgAAAADAByRfAAAAAOADki8AAAAA8AGf+QIAAAAAH3DlCwAAAAB8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Bw7UypUrk+sNwyj38cADD1Sr//vuu0+GYeimm25qoC04vDRUvKvqtyVriJg7jqP/+7//U48ePZSZmalevXpp+vTp4ruBqo53YWGhJk+erC5duigzM1P9+vXTk08+WWW/L730ko4//nhlZGRo4MCB+sc//tGQm3HYaIh4z549W2eeeaaOPPJIHXnkkTrvvPP08ccfN/SmHBYaav8utWDBAhmGoTFjxjTA7A8/DRXvgoIC3XjjjerUqZPS09PVp08fjinfaqiYP/LII+rbt68yMzPVtWtX3XzzzYrH4w25KYeFquK9Z88eTZgwQZ07d1ZWVpbOP/98bd68ucp+63zO9NAg9u/f73Xr1s2bMGGC99FHH3lffvml99Zbb3lbtmxJ1tm1a1fK45lnnvEMw/C2bt1aZf8ff/yx1717d2/QoEHelClTGnBLDg8NFe/q9NtSNVTMf/vb33pHH3209/rrr3vbtm3zXnrpJa9169beo48+6sdmNVnViff111/v9erVy1u6dKm3bds2b9asWV4wGPT+9re/Vdjvv/71Ly8YDHr333+/t379eu/OO+/0wuGw9/nnn/uxWU1WQ8V77Nix3uOPP+6tWrXK27BhgzdhwgSvTZs23tdff+3HZjVZDRXvUtu2bfOOOeYY78wzz/QuvfTSBtySw0NDxTuRSHgnn3yyd+GFF3offPCBt23bNm/ZsmXe6tWr/disJq2hYv7888976enp3vPPP+9t27bNe+utt7xOnTp5N998sx+b1WRVFW/Xdb3TTjvNO/PMM72PP/7Y++KLL7yf//zn3rHHHusVFhZW2G99nDNJvhrI//7v/3rDhw+vUZtLL73UO/fcc6usF41Gvd69e3uLFy/2zjrrLJIvr+HiXZt+W4qGivlFF13kXXfddSlll19+ufeTn/ykxnNsTqoT7/79+3v33HNPStlJJ53k/epXv6qwzY9//GPvoosuSik79dRTvRtuuKH2k20GGireh7Jt28vOzvbmzZtXq3k2Fw0Zb9u2vdNPP93705/+5I0fP57ky2u4eM+cOdPr2bOnZ5pmvcyzOWmomN94441lzqtTp071zjjjjNpPthmoKt4bN270JHlr165NljmO47Vr186bPXt2he3q45zJbYcN5LXXXtPJJ5+sK664Qu3bt9eJJ56o2bNnV1h/z549euONNzRx4sQq+77xxht10UUX6bzzzqvPKR/WGireNe23JWmomJ9++ulasmSJNm3aJEn67LPP9MEHH+iCCy6o1/kfbqoT79NPP12vvfaavvnmG3mep6VLl2rTpk0aNWpUhf2uWLGizLFk9OjRWrFiRYNsx+GioeJ9qOLiYlmWpaOOOqq+N+Gw0pDxvueee9S+fftqnV9bioaK92uvvaZhw4bpxhtvVIcOHTRgwAD97ne/k+M4Db1JTV5Dxfz000/XJ598krx9+csvv9Q//vEPXXjhhQ26PU1dVfFOJBKSpIyMjGRZIBBQenq6Pvjggwr7rZdzZrXTNNRIenq6l56e7t1+++3ep59+6s2aNcvLyMjw5s6dW2793//+996RRx7pxWKxSvv9y1/+4g0YMCBZjytfJRoq3jXttyVpqJg7juP97//+r2cYhhcKhTzDMLzf/e53DbEJh5XqxDsej3vjxo3zJHmhUMhLS0ur8opKOBz25s+fn1L2+OOPe+3bt2+Q7ThcNFS8DzVp0iSvZ8+eVb4vmruGivc///lP75hjjvH27t3reZ7Hla9vNVS8+/bt66Wnp3vXXXedt3LlSm/BggXeUUcd5U2bNq2hN6nJa8hjyqOPPuqFw2EvFAp5krxf/OIXDbkph4Wq4m2apnfsscd6V1xxhbd//34vkUh49913nyfJGzVqVIX91sc5k+SrgYTDYW/YsGEpZf/1X//lnXbaaeXW79u3rzd58uRK+9yxY4fXvn1777PPPkuWkXyVaIh416bflqShYv6Xv/zF69Kli/eXv/zFW7Nmjffss896Rx11VItPeKsT7wceeMDr06eP99prr3mfffaZ98c//tFr3bq1t3jx4kr7Jfkqq6HifbB7773XO/LII1OO6S1VQ8Q7Eol43bt39/7xj38ky0i+SjTU/t27d2+va9eunm3bybKHHnrI69ixY/1vxGGmoWK+dOlSr0OHDt7s2bO9NWvWeAsXLvS6du1a5vbFlqY68V65cqU3ePBgT5IXDAa90aNHexdccIF3/vnnV9ovyVcTdeyxx3oTJ05MKXviiSe8zp07l6n7/vvve5Kq/EDqK6+8ktxBSh+SPMMwvGAwmHKwa2kaIt417belaaiYd+nSxXvsscdSyqZPn+717du3bhM+zFUV7+LiYi8cDnuvv/56Sp2JEyd6o0ePrrDfrl27eg8//HBK2a9//Wtv0KBB9TPxw1RDxbvUAw884LVp08b797//XX+TPow1RLxXrVpV5pxpGEbynNmSvzipofbv73//+96IESNSyv7xj394krxEIlFPsz88NVTMhw8f7t1yyy0pZX/+85+9zMxMz3Gcepr94acmf6MUFBR4ubm5nud53ve+9z3vl7/8ZYX91sc5k898NZAzzjhDGzduTCnbtGmTunXrVqbu008/raFDh2rw4MGV9jlixAh9/vnnWr16dfJx8skn6yc/+YlWr16tYDBYr9twOGmIeNe035amoWJeXFysQCD10BQMBuW6bt0mfJirKt6WZcmyrBrHbtiwYVqyZElK2eLFizVs2LB6mvnhqaHiLUn333+/pk+frkWLFunkk0+u34kfphoi3scff3yZc+Yll1yic845R6tXr1bXrl0bZmMOAw21f59xxhnasmVLSp1NmzapU6dOSktLq8ctOPw0VMwrOmdKatE/0VKTv1HatGmjdu3aafPmzVq5cqUuvfTSCvutl3NmtdM01MjHH3/shUIh77e//a23efNm7/nnn/eysrK85557LqXegQMHvKysLG/mzJnl9nPuued6f/zjHysch9sOSzRUvKvbb0vUUDEfP368d8wxxyS/an7hwoVe27Ztvdtuu61Bt6epq068zzrrLK9///7e0qVLvS+//NKbM2eOl5GR4T3xxBPJOj/96U+9//f//l9y+V//+pcXCoW8Bx980NuwYYN311138VXzXsPF+7777vPS0tK8l19+OeVnGKLRqK/b19Q0VLwPxW2HJRoq3jt27PCys7O9yZMnexs3bvRef/11r3379t5vfvMbX7evKWqomN91111edna295e//MX78ssvvbffftvr1auX9+Mf/9jX7WtqqhPvF1980Vu6dKm3detW79VXX/W6devmXX755Sn9NMQ5k+SrAf3973/3BgwY4KWnp3vHH3+899RTT5WpM2vWLC8zM9MrKCgot49u3bp5d911V4VjkHx9p6HiXZ1+W6qGiHkkEvGmTJniHXvssV5GRobXs2dP71e/+lWLv2XF86qO965du7wJEyZ4nTt39jIyMry+fft6Dz30kOe6brLOWWed5Y0fPz6l3Ysvvuj16dPHS0tL8/r37++98cYbfmxOk9cQ8e7WrZsnqcyjsuN8S9FQ+/fBSL6+01DxXr58uXfqqad66enpXs+ePb3f/va3Lfpj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",
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Compare the means of each group\n",
"compare_samples(df.Son.to_numpy(), df.Father.to_numpy())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"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.10.12"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment