From 605b60b51972fd45baf8f9154a756d47b7a245ba Mon Sep 17 00:00:00 2001 From: HeTron <31374088+HeTron@users.noreply.github.com> Date: Tue, 5 Dec 2023 01:44:24 +0000 Subject: [PATCH] Solutions completed --- notebook/problems.ipynb | 148 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 144 insertions(+), 4 deletions(-) diff --git a/notebook/problems.ipynb b/notebook/problems.ipynb index ff2c594b..6dd4042a 100644 --- a/notebook/problems.ipynb +++ b/notebook/problems.ipynb @@ -33,9 +33,111 @@ "execution_count": 1, "id": "34720ab6", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Normal vector: [ 0.49671415 -0.1382643 0.64768854 1.52302986 -0.23415337 -0.23413696\n", + " 1.57921282 0.76743473 -0.46947439 0.54256004 -0.46341769 -0.46572975\n", + " 0.24196227 -1.91328024 -1.72491783 -0.56228753 -1.01283112 0.31424733\n", + " -0.90802408 -1.4123037 1.46564877 -0.2257763 0.0675282 -1.42474819\n", + " -0.54438272 0.11092259 -1.15099358 0.37569802 -0.60063869 -0.29169375\n", + " -0.60170661 1.85227818 -0.01349722 -1.05771093 0.82254491 -1.22084365\n", + " 0.2088636 -1.95967012 -1.32818605 0.19686124 0.73846658 0.17136828\n", + " -0.11564828 -0.3011037 -1.47852199 -0.71984421 -0.46063877 1.05712223\n", + " 0.34361829 -1.76304016 0.32408397 -0.38508228 -0.676922 0.61167629\n", + " 1.03099952 0.93128012 -0.83921752 -0.30921238 0.33126343 0.97554513\n", + " -0.47917424 -0.18565898 -1.10633497 -1.19620662 0.81252582 1.35624003\n", + " -0.07201012 1.0035329 0.36163603 -0.64511975 0.36139561 1.53803657\n", + " -0.03582604 1.56464366 -2.6197451 0.8219025 0.08704707 -0.29900735\n", + " 0.09176078 -1.98756891 -0.21967189 0.35711257 1.47789404 -0.51827022\n", + " -0.8084936 -0.50175704 0.91540212 0.32875111 -0.5297602 0.51326743\n", + " 0.09707755 0.96864499 -0.70205309 -0.32766215 -0.39210815 -1.46351495\n", + " 0.29612028 0.26105527 0.00511346 -0.23458713]\n", + "Chi-square vector: [ 0.4168513 1.53749288 2.0019707 3.31954478 2.93509884 2.17617828\n", + " 0.15830407 2.27652419 2.46587889 12.72456265 1.94196651 3.04725102\n", + " 5.77516859 4.36378602 6.86491387 0.42618426 0.78098785 1.3113313\n", + " 0.33084683 2.48460231 0.85740894 7.53845363 1.01734997 1.7044591\n", + " 4.56886089 0.55649438 0.29858042 2.75534614 2.9409741 4.4625349\n", + " 3.65222252 3.03548985 1.15103525 2.87187902 3.02542952 1.10535719\n", + " 9.13003056 3.51390358 0.79761542 4.48007115 5.09450961 3.3434575\n", + " 1.84236463 1.05445618 2.17070629 3.15061854 2.36153348 7.09243827\n", + " 3.96269904 0.92828493 0.70025868 3.53848141 1.8831237 4.24057767\n", + " 3.51221427 2.17951444 0.94044813 0.35233451 2.82705909 0.54422803\n", + " 0.89743356 2.68142092 2.4613509 0.63275656 5.54211583 5.43039306\n", + " 3.63214678 3.62852305 3.63218282 5.06050325 4.04232775 1.03035801\n", + " 1.85822454 11.7557897 0.17754328 1.45511551 5.56483363 1.10410752\n", + " 4.1308596 2.43317078 1.18979801 2.75974204 1.00588199 2.09414701\n", + " 3.60307013 4.7477682 1.450369 1.18741582 0.531925 4.9308192\n", + " 10.57550712 5.34984734 6.2796709 1.11415225 3.42940531 4.43865013\n", + " 0.74626305 0.13247338 0.50086102 2.0667793 ]\n", + "Normal mean: -0.10384651739409385\n", + "Chi mean: 2.9380795335328225\n", + "Normal median: -0.1269562917797126\n", + "Chi median: 2.4636148965577283\n", + "Normal mode: 0.4967141530112327\n", + "Chi mode: 0.4168513022813494\n", + "Normal range: 4.472023288598682\n", + "Normal chi: 12.592089274962756\n", + "Normal variance: 0.82476989363016 and std: 0.9081684280078007\n", + "Chi variance: 5.87576054587392 and std: 2.4239968122656266\n", + "Normal skewness: -0.17526772024433726\n", + "Chi skewness: 1.6683703423622345\n", + "Normal kurtosis: -0.1554047077420817\n", + "Chi kurtosis: 3.620577909892315\n" + ] + } + ], "source": [ - "# TODO" + "import numpy as np\n", + "import statistics as stats\n", + "from scipy.stats import skew\n", + "from scipy.stats import kurtosis\n", + "import math\n", + "import sys\n", + "\n", + "np.random.seed(42)\n", + "\n", + "normal = np.random.normal(size = 100)\n", + "chi = np.random.chisquare(3, 100)\n", + "\n", + "print(f\"Normal vector: {normal}\")\n", + "print(f\"Chi-square vector: {chi}\")\n", + "\n", + "print(f\"Normal mean: {stats.mean(normal)}\")\n", + "print(f\"Chi mean: {stats.mean(chi)}\")\n", + "\n", + "print(f\"Normal median: {stats.median(normal)}\")\n", + "print(f\"Chi median: {stats.median(chi)}\")\n", + "\n", + "print(f\"Normal mode: {stats.mode(normal)}\")\n", + "print(f\"Chi mode: {stats.mode(chi)}\")\n", + "\n", + "range_normal = max(normal) - min(normal)\n", + "range_chi = max(chi) - min(chi)\n", + "print(f\"Normal range: {range_normal}\")\n", + "print(f\"Normal chi: {range_chi}\")\n", + "\n", + "var_normal = stats.variance(normal)\n", + "std_normal = stats.stdev(normal)\n", + "var_chi = stats.variance(chi)\n", + "std_chi = stats.stdev(chi)\n", + "\n", + "print(f\"Normal variance: {var_normal} and std: {std_normal}\")\n", + "print(f\"Chi variance: {var_chi} and std: {std_chi}\")\n", + "\n", + "skew_normal = skew(normal)\n", + "skew_chi = skew(chi)\n", + "\n", + "print(f\"Normal skewness: {skew_normal}\")\n", + "print(f\"Chi skewness: {skew_chi}\")\n", + "\n", + "kurt_normal = kurtosis(normal)\n", + "kurt_chi = kurtosis(chi)\n", + "\n", + "print(f\"Normal kurtosis: {kurt_normal}\")\n", + "print(f\"Chi kurtosis: {kurt_chi}\")" ] }, { @@ -57,9 +159,47 @@ "execution_count": 2, "id": "d590308e", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sample Data: [4, 2, 5, 8, 6]\n", + "Standard Deviation: 2.23606797749979\n" + ] + } + ], "source": [ - "# TODO" + "def standev(data):\n", + " n = len(data)\n", + "\n", + " if (n <= 1):\n", + " return 0.0\n", + "\n", + " mean, sd = avg_calc(data), 0.0\n", + "\n", + " for d in data:\n", + " sd += (float(d) - mean) ** 2\n", + " sd = math.sqrt(sd / float(n - 1))\n", + "\n", + " return sd\n", + "\n", + "def avg_calc(data):\n", + " n, mean = len(data), 0.0\n", + "\n", + " if (n <= 1):\n", + " return data[0]\n", + "\n", + " for d in data:\n", + " mean = mean + float(d)\n", + "\n", + " mean = mean / float(n)\n", + " return mean\n", + "\n", + "\n", + "data = [4, 2, 5, 8, 6]\n", + "print(f\"Sample Data: {data}\")\n", + "print(f\"Standard Deviation: {standev(data)}\")" ] } ],