diff --git a/fall-2024/math/mat-203/00010/.~lock.mat-203-00010.odt# b/fall-2024/math/mat-203/00010/.~lock.mat-203-00010.odt# new file mode 100644 index 0000000..e3b831e --- /dev/null +++ b/fall-2024/math/mat-203/00010/.~lock.mat-203-00010.odt# @@ -0,0 +1 @@ +,winsdominoes,Fons-iMac-2.local,19.11.2024 23:03,file:///Users/winsdominoes/Library/Application%20Support/LibreOffice/4; \ No newline at end of file diff --git a/fall-2024/math/mat-203/00010/01_ExampleDescriptiveStatsStudents.ipynb b/fall-2024/math/mat-203/00010/01_ExampleDescriptiveStatsStudents.ipynb index df45e49..2a079cc 100644 --- a/fall-2024/math/mat-203/00010/01_ExampleDescriptiveStatsStudents.ipynb +++ b/fall-2024/math/mat-203/00010/01_ExampleDescriptiveStatsStudents.ipynb @@ -4,7 +4,19 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'numpy'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[1], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m#Numerical Python\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mnumpy\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mnp\u001b[39;00m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;66;03m# To plot\u001b[39;00m\n\u001b[1;32m 5\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mmatplotlib\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpyplot\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mplt\u001b[39;00m\n", + "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'numpy'" + ] + } + ], "source": [ "#Numerical Python\n", "import numpy as np\n", @@ -810,7 +822,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.4" + "version": "3.13.0" } }, "nbformat": 4, diff --git a/fall-2024/math/mat-203/00010/Whr2024Descriptive.ipynb b/fall-2024/math/mat-203/00010/Whr2024Descriptive.ipynb index b870f5a..a512cdf 100644 --- a/fall-2024/math/mat-203/00010/Whr2024Descriptive.ipynb +++ b/fall-2024/math/mat-203/00010/Whr2024Descriptive.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 21, + "execution_count": 278, "metadata": {}, "outputs": [], "source": [ @@ -22,7 +22,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 279, "metadata": {}, "outputs": [], "source": [ @@ -32,7 +32,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 280, "metadata": {}, "outputs": [], "source": [ @@ -49,7 +49,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 281, "metadata": {}, "outputs": [], "source": [ @@ -59,7 +59,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 282, "metadata": {}, "outputs": [], "source": [ @@ -70,7 +70,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 283, "metadata": {}, "outputs": [ { @@ -79,7 +79,7 @@ "['Iceland', 'India', 'Indonesia', 'Iraq', 'Ireland', 'Israel', 'Italy']" ] }, - "execution_count": 26, + "execution_count": 283, "metadata": {}, "output_type": "execute_result" } @@ -92,7 +92,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 284, "metadata": {}, "outputs": [], "source": [ @@ -106,7 +106,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 285, "metadata": {}, "outputs": [ { @@ -283,7 +283,7 @@ "max 0.590000 0.948000 0.843000 0.516000 " ] }, - "execution_count": 28, + "execution_count": 285, "metadata": {}, "output_type": "execute_result" } @@ -294,7 +294,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 286, "metadata": {}, "outputs": [ { @@ -571,7 +571,7 @@ "[121 rows x 13 columns]" ] }, - "execution_count": 29, + "execution_count": 286, "metadata": {}, "output_type": "execute_result" } @@ -582,7 +582,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 287, "metadata": {}, "outputs": [ { @@ -623,18 +623,18 @@ " \n", " \n", " \n", - " 13\n", + " 0\n", " Afghanistan\n", - " 2022\n", - " 1.281\n", + " 2023\n", + " 1.446\n", " NaN\n", - " 0.228\n", - " 54.875\n", " 0.368\n", + " 55.2\n", + " 0.228\n", " NaN\n", - " 0.733\n", - " 0.206\n", - " 0.576\n", + " 0.738\n", + " 0.261\n", + " 0.46\n", " Southern Asia\n", " Asia\n", " \n", @@ -643,31 +643,31 @@ "" ], "text/plain": [ - " Country name year Life Ladder Log GDP per capita Social support \\\n", - "13 Afghanistan 2022 1.281 NaN 0.228 \n", + " Country name year Life Ladder Log GDP per capita Social support \\\n", + "0 Afghanistan 2023 1.446 NaN 0.368 \n", "\n", - " Healthy life expectancy at birth Freedom to make life choices \\\n", - "13 54.875 0.368 \n", + " Healthy life expectancy at birth Freedom to make life choices Generosity \\\n", + "0 55.2 0.228 NaN \n", "\n", - " Generosity Perceptions of corruption Positive affect Negative affect \\\n", - "13 NaN 0.733 0.206 0.576 \n", + " Perceptions of corruption Positive affect Negative affect Subregion \\\n", + "0 0.738 0.261 0.46 Southern Asia \n", "\n", - " Subregion Continent \n", - "13 Southern Asia Asia " + " Continent \n", + "0 Asia " ] }, - "execution_count": 40, + "execution_count": 287, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "Dat.loc[Dat[\"Life Ladder\"] == Dat[\"Life Ladder\"].min()]" + "Dat2023.loc[Dat2023[\"Life Ladder\"] == Dat2023[\"Life Ladder\"].min()]" ] }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 288, "metadata": {}, "outputs": [ { @@ -708,18 +708,18 @@ " \n", " \n", " \n", - " 497\n", - " Denmark\n", - " 2005\n", - " 8.019\n", - " 10.849\n", - " 0.972\n", - " 68.3\n", - " 0.971\n", - " NaN\n", - " 0.237\n", - " 0.777\n", - " 0.154\n", + " 35\n", + " Finland\n", + " 2023\n", + " 7.699\n", + " 10.808\n", + " 0.947\n", + " 71.3\n", + " 0.943\n", + " -0.001\n", + " 0.185\n", + " 0.717\n", + " 0.173\n", " Northern Europe\n", " Europe\n", " \n", @@ -728,47 +728,47 @@ "" ], "text/plain": [ - " Country name year Life Ladder Log GDP per capita Social support \\\n", - "497 Denmark 2005 8.019 10.849 0.972 \n", + " Country name year Life Ladder Log GDP per capita Social support \\\n", + "35 Finland 2023 7.699 10.808 0.947 \n", "\n", - " Healthy life expectancy at birth Freedom to make life choices \\\n", - "497 68.3 0.971 \n", + " Healthy life expectancy at birth Freedom to make life choices \\\n", + "35 71.3 0.943 \n", "\n", - " Generosity Perceptions of corruption Positive affect Negative affect \\\n", - "497 NaN 0.237 0.777 0.154 \n", + " Generosity Perceptions of corruption Positive affect Negative affect \\\n", + "35 -0.001 0.185 0.717 0.173 \n", "\n", - " Subregion Continent \n", - "497 Northern Europe Europe " + " Subregion Continent \n", + "35 Northern Europe Europe " ] }, - "execution_count": 43, + "execution_count": 288, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "Dat.loc[Dat[\"Life Ladder\"] == Dat[\"Life Ladder\"].max()]" + "Dat2023.loc[Dat2023[\"Life Ladder\"] == Dat2023[\"Life Ladder\"].max()]" ] }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 289, "metadata": {}, "outputs": [], "source": [ - "avg_health = Dat[\"Healthy life expectancy at birth\"].median()" + "avg_health = Dat2023[\"Healthy life expectancy at birth\"].median()" ] }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 290, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "65.22\n" + "66.3\n" ] } ], @@ -778,7 +778,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 291, "metadata": {}, "outputs": [ { @@ -787,7 +787,7 @@ "np.float64(0.231)" ] }, - "execution_count": 56, + "execution_count": 291, "metadata": {}, "output_type": "execute_result" } @@ -801,7 +801,7 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 292, "metadata": {}, "outputs": [ { @@ -810,7 +810,7 @@ "array([4.6125, 5.42 , 6.3215])" ] }, - "execution_count": 57, + "execution_count": 292, "metadata": {}, "output_type": "execute_result" } @@ -822,34 +822,373 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 293, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "5.42\n", - "5.4660082404265635\n", - "5.3416056329049155\n", - "5.207292342092034\n", - "5.446561471442401\n", - "1.7089999999999996\n", - "5.4660082404265635\n" + "5.868\n", + "5.601454545454545\n", + "5.46003534802306\n", + "5.277807689332831\n", + "5.670474226804124\n", + "5.738901639344262\n", + "5.601454545454545\n" ] } ], "source": [ - "ll = Dat[\"Life Ladder\"]\n", + "ll = Dat2023[\"Life Ladder\"]\n", + "\n", + "Mean = ll.mean()\n", "\n", "print(ll.median())\n", - "print(ll.mean())\n", + "print(Mean)\n", "print(gmean(ll))\n", "print(hmean(ll))\n", + "print(trim_mean(ll, 0.1))\n", "print(trim_mean(ll, 0.25))\n", - "print(iqr(ll).mean())\n", "print(winsorize(ll).mean())" ] + }, + { + "cell_type": "code", + "execution_count": 294, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.1545804575939485\n", + "1.1593812286445444\n", + "6.253\n", + "1.8730000000000002\n", + "0.8130000000000006\n", + "0.9629526671675434\n" + ] + } + ], + "source": [ + "S2Biased = np.var(ll)\n", + "S2Unbiased = np.var(ll, ddof=1)\n", + "\n", + "S1 = np.sqrt(S2Biased)\n", + "S2 = np.sqrt(S2Unbiased)\n", + "R = ll.max() - ll.min()\n", + "IQR = iqr(ll)\n", + "MAD = median_abs_deviation(ll)\n", + "AAD = abs(ll-ll.mean()).mean()\n", + "\n", + "print(S1)\n", + "print(S2)\n", + "print(R)\n", + "print(IQR)\n", + "print(MAD)\n", + "print(AAD)" + ] + }, + { + "cell_type": "code", + "execution_count": 295, + "metadata": {}, + "outputs": [], + "source": [ + "def an(n):\n", + " return np.sqrt((n-1)/2) * gamma((n-1)/2) / gamma(n/2)\n", + "\n", + "def c4(n):\n", + " return 1/an(n)\n", + "\n", + "# d2 for n in 2,...,25\n", + "d2 = {2:1.128, 3:1.693, 4:2.059, 5:2.326, 6:2.534, 7:2.704, 8:2.847, 9:2.970, 10:3.078, 11:3.173, 12:3.258, 13:3.336, 14:3.407, 15:3.472, 16:3.532, 17:3.588, 18:3.640, 19:3.689, 20:3.735, 21:3.778, 22:3.819, 23:3.858, 24:3.895, 25:3.931}" + ] + }, + { + "cell_type": "code", + "execution_count": 296, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "121\n", + "0.9979188593597667\n" + ] + } + ], + "source": [ + "N = len(ll)\n", + "\n", + "print(N)\n", + "print(c4(N))" + ] + }, + { + "cell_type": "code", + "execution_count": 297, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.1617990959589308\n", + "1.3884569776304965\n", + "1.2053556036450552\n", + "1.2068821913267496\n" + ] + } + ], + "source": [ + "\n", + "\n", + "sigma_1 = S2 / c4(N)\n", + "#sigma_2 = R / d2[N]\n", + "sigma_3 = IQR / (2 * norm.ppf(0.75))\n", + "sigma_4 = MAD / norm.ppf(0.75)\n", + "sigma_5 = AAD * np.sqrt(np.pi/2)\n", + "\n", + "print(sigma_1)\n", + "#print(sigma_2)\n", + "print(sigma_3)\n", + "print(sigma_4)\n", + "print(sigma_5)" + ] + }, + { + "cell_type": "code", + "execution_count": 298, + "metadata": {}, + "outputs": [], + "source": [ + "m2 = S2Biased\n", + "m3 = ((ll-Mean)**3).mean()\n", + "\n", + "k2 = S2Unbiased\n", + "k3 = N**2 / ((N-1)*(N-2))*m3" + ] + }, + { + "cell_type": "code", + "execution_count": 299, + "metadata": {}, + "outputs": [], + "source": [ + "g1_byhand = m3 / m2**(3/2)\n", + "g1 = skew(ll)" + ] + }, + { + "cell_type": "code", + "execution_count": 300, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(np.float64(-0.6037), np.float64(-0.6037))" + ] + }, + "execution_count": 300, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "g1_byhand.round(4), g1.round(4)" + ] + }, + { + "cell_type": "code", + "execution_count": 301, + "metadata": {}, + "outputs": [], + "source": [ + "G1_byhand = k3 / k2**(3/2)\n", + "G1 = skew(ll, bias=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 302, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(np.float64(-0.6113), np.float64(-0.6113))" + ] + }, + "execution_count": 302, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "G1_byhand.round(4), G1.round(4)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m4 = ((ll-Mean)**4).mean()\n", + "\n", + "k4 = N**2*((N+1)*m4 - 3*(N-1)*m2**2) / ((N-1)*(N-2)*(N-3))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Coefficient of kurtosis based on central moments" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "g2_byhand = m4/m2**2\n", + "g2 = kurtosis(ll, fisher=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(np.float64(4.8753), np.float64(4.8753))" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "g2_byhand.round(4), g2.round(4)" + ] + }, + { + "cell_type": "code", + "execution_count": 303, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'k4' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[303], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m G2_byhand \u001b[38;5;241m=\u001b[39m \u001b[43mk4\u001b[49m\u001b[38;5;241m/\u001b[39mk2\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m2\u001b[39m \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m3\u001b[39m\n\u001b[1;32m 2\u001b[0m G2 \u001b[38;5;241m=\u001b[39m kurtosis(ll, fisher\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, bias\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n", + "\u001b[0;31mNameError\u001b[0m: name 'k4' is not defined" + ] + } + ], + "source": [ + "G2_byhand = k4/k2**2 + 3\n", + "G2 = kurtosis(ll, fisher=False, bias=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(np.float64(7.2795), np.float64(7.2795))" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "G2_byhand.round(4), G2.round(4)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'g2_byhand' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[251], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m g2_excess_byhand \u001b[38;5;241m=\u001b[39m \u001b[43mg2_byhand\u001b[49m \u001b[38;5;241m-\u001b[39m \u001b[38;5;241m3\u001b[39m\n\u001b[1;32m 2\u001b[0m g2_excess \u001b[38;5;241m=\u001b[39m kurtosis(ll)\n", + "\u001b[0;31mNameError\u001b[0m: name 'g2_byhand' is not defined" + ] + } + ], + "source": [ + "g2_excess_byhand = g2_byhand - 3\n", + "g2_excess = kurtosis(ll)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(np.float64(1.8753), np.float64(1.8753))" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "g2_excess_byhand.round(4), g2_excess.round(4)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "G2_excess_byhand = G2_byhand - 3\n", + "G2_excess = kurtosis(ll, bias=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(np.float64(4.2795), np.float64(4.2795))" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "G2_excess_byhand.round(4), G2_excess.round(4)" + ] } ], "metadata": { @@ -868,7 +1207,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.6" + "version": "3.13.0" } }, "nbformat": 4, diff --git a/fall-2024/math/mat-203/00010/mat-203-00010.odt b/fall-2024/math/mat-203/00010/mat-203-00010.odt index df16b60..fa3be39 100644 Binary files a/fall-2024/math/mat-203/00010/mat-203-00010.odt and b/fall-2024/math/mat-203/00010/mat-203-00010.odt differ