From 204ceb292e4861c726b85fad8de7990ffff8468b Mon Sep 17 00:00:00 2001 From: "Ryan C. Cooper" Date: Tue, 27 Aug 2019 21:06:09 -0400 Subject: [PATCH] updated handout with problems and interaction --- ME3263_lab-00.ipynb | 267 +++++++++++++++++++----- __pycache__/check_lab00.cpython-37.pyc | Bin 0 -> 1476 bytes __pycache__/pretty_plots.cpython-37.pyc | Bin 0 -> 503 bytes check_lab00.py | 49 +++++ 4 files changed, 267 insertions(+), 49 deletions(-) create mode 100644 __pycache__/check_lab00.cpython-37.pyc create mode 100644 __pycache__/pretty_plots.cpython-37.pyc create mode 100644 check_lab00.py diff --git a/ME3263_lab-00.ipynb b/ME3263_lab-00.ipynb index d1873e4..f114586 100644 --- a/ME3263_lab-00.ipynb +++ b/ME3263_lab-00.ipynb @@ -2,19 +2,23 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from scipy.stats import norm, t\n", "\n", - "import matplotlib.pyplot as plt\n" + "import matplotlib.pyplot as plt\n", + "from ipywidgets import interact\n", + "import ipywidgets as widgets\n", + "\n", + "import check_lab00 as p" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 4, "metadata": { "slideshow": { "slide_type": "slide" @@ -69,27 +73,29 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Text(0,0.5,'Probability of\\\\\\\\ Measurement (\\\\%)')" + "Text(0, 0.5, 'Probability of\\\\\\\\ Measurement (\\\\%)')" ] }, - "execution_count": 3, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -110,27 +116,29 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Text(0,0.5,'Probability \\\\\\\\ Measurement $" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -153,18 +161,18 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "data mean=10.362, standard deviation=1.054\n", - "data mean=10.140, standard deviation=0.900\n", - "data mean=9.796, standard deviation=0.919\n", - "data mean=10.082, standard deviation=0.909\n", - "data mean=9.985, standard deviation=1.374\n" + "data mean=9.778, standard deviation=0.916\n", + "data mean=9.936, standard deviation=0.832\n", + "data mean=9.656, standard deviation=0.864\n", + "data mean=9.894, standard deviation=0.916\n", + "data mean=9.688, standard deviation=1.425\n" ] } ], @@ -183,6 +191,33 @@ "Each average and standard deviation is subject to random noise (here the noise is artificially created by python). " ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Problem #1\n", + "\n", + "Try creating 100 normally disributed random numbers with an average of 10 and standard deviation of 1. How close is the average to 10? How close is the standard deviation to 1?" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Whoops, try again\n" + ] + } + ], + "source": [ + "data # enter your work here\n", + "pts=p.check_p01(data)\n" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -207,18 +242,18 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "data confidence interval is 9.771 +/- 4.573\n", - "data confidence interval is 10.141 +/- 4.746\n", - "data confidence interval is 10.268 +/- 4.806\n", - "data confidence interval is 10.095 +/- 4.725\n", - "data confidence interval is 10.213 +/- 4.780\n" + "data confidence interval is 10.264 +/- 0.507\n", + "data confidence interval is 9.788 +/- 0.482\n", + "data confidence interval is 9.519 +/- 0.505\n", + "data confidence interval is 9.963 +/- 0.468\n", + "data confidence interval is 9.980 +/- 0.460\n" ] } ], @@ -231,7 +266,98 @@ " mu=np.mean(data)\n", " sigma=np.std(data)\n", " N=len(data) \n", - " print('data confidence interval is %1.3f +/- %1.3f'%(mu,tstat[1]*mu/np.sqrt(N)))" + " print('data confidence interval is %1.3f +/- %1.3f'%(mu,tstat[1]*sigma/np.sqrt(N)))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ef8542775f774fa19a2facaaf70114a2", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "interactive(children=(IntSlider(value=505, description='N', max=1000, min=10), Output()), _dom_classes=('widge…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Black bars show confidence interval based upon N measurements\n", + "Use the slider to change the number of samples, N\n" + ] + } + ], + "source": [ + "def convergence_of_mean(N):\n", + " x=np.linspace(-3,3)\n", + " y=norm.pdf(x,0,1) # convert fraction to percent\n", + " plt.plot(x,y)\n", + " y_sample=np.random.normal(0,1,N)\n", + " tstat=t.interval(0.95, N-1)\n", + " CI=tstat[1]*sigma/np.sqrt(N)\n", + " plt.hist(y_sample,density=True)\n", + " plt.vlines([np.mean(y_sample)-CI,np.mean(y_sample)+CI],0,0.4)\n", + " plt.xlabel('Measurement=$x_i-\\mu$')\n", + " plt.ylabel(r'Probability of\\\\ Measurement (\\%)')\n", + " plt.axis([-3,3,0,0.5])\n", + " \n", + "interact(convergence_of_mean,N=(10,1000))\n", + "print('Black bars show confidence interval based upon N measurements')\n", + "print('Use the slider to change the number of samples, N')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The interactive plot above generates `N` normally distributed numbers and plots the histogram with two vertical lines to indicate the confidence interval of the measured mean. More measurements, larger `N`, produce a smaller interval, even though the standard deviation is constant. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Problem #2\n", + "\n", + "Try creating 100 normally disributed random numbers with a true average of 10 and true standard deviation of 1. What is the confidence interval for the measured average? Is it higher or lower than the confidence interval for 20 samples?" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "ename": "IndexError", + "evalue": "invalid index to scalar variable.", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mavg\u001b[0m \u001b[0;31m# =... enter your work here\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mstd\u001b[0m\u001b[0;31m# =... enter your work here\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mconf_interval\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtstat\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mstd\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msqrt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mN\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 7\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0mp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcheck_p02\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mavg\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mconf_interval\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mIndexError\u001b[0m: invalid index to scalar variable." + ] + } + ], + "source": [ + "N=100\n", + "data # =... enter your work here\n", + "tstat# =... enter your work here\n", + "avg # =... enter your work here\n", + "std# =... enter your work here\n", + "conf_interval = tstat[1]*std/np.sqrt(N)\n", + "\n", + "p.check_p02(avg,conf_interval)" ] }, { @@ -256,20 +382,20 @@ "**df=18**\n", "\n", "|p=0.05 | p=0.025 | p=0.01 | p=0.005 |\n", - "|--- | --- | --- | --- | --- |\n", + "|--- | --- | --- | --- |\n", "|2.10|2.45|2.88|3.20|" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "t=-1.10\n", + "t=1.81\n", "df=200\n", "| p=0.05 | p=0.025 | p=0.01 | p=0.005 |\n", "| --- | --- | --- | --- |\n", @@ -289,7 +415,7 @@ "A=np.abs(N1+N2)/(N1*N2*1.0)\n", "B=((N1-1)*sigma1**2+(N2-1)*sigma2**2)/(N1+N2-2)\n", "\n", - "tstat=(mu1-mu2)/np.sqrt(A*B)\n", + "tstat=np.abs(mu1-mu2)/np.sqrt(A*B)\n", "\n", "print('t=%1.2f'%tstat)\n", "\n", @@ -309,9 +435,45 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Our t-statistic is much lower than even the p=0.05 confidence interval. This indicates that we cannot reject the null hypothesis. Based upon the current data set, there is no measured difference between the two sample averages. This makes sense because the two sample means should be the same. We just used two random data sets with the same average and same standard deviation. \n", + "Our t-statistic is lower than even the p=0.05 confidence interval. This indicates that we cannot reject the null hypothesis. Based upon the current data set, there is no measured difference between the two sample averages. This makes sense because the two sample means should be the same. We just used two random data sets with the same average and same standard deviation. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Problem 3\n", + "\n", + "Try changing the mean between samples. What happens to the value of tstat?\n", + "\n", + "At what point does the t-statistic become statistically significant? Keep the standard deviations, $\\sigma=1$, and vary the averages for `data1` and `data2`, shown above as `10` and `10`. With 200 samples, can you reliably measure the difference between 10 and 11? or 10 and 10.1? \n", "\n", - "*Try changing the mean between samples. What happens to the value of tstat?*" + "Create two datasets, `data1` and `data2` that *are* different, statistically with p$\\le 0.05$, but have means within 10% of each set. \n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'N' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mdata1\u001b[0m \u001b[0;31m#=\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mdata2\u001b[0m \u001b[0;31m#=\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcheck_p03\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mdata2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/Documents/UConn/ME3263/me3263_F2018/experiment_00/check_lab00.py\u001b[0m in \u001b[0;36mcheck_p03\u001b[0;34m(data1, data2)\u001b[0m\n\u001b[1;32m 27\u001b[0m \u001b[0mN1\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 28\u001b[0m \u001b[0mN2\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 29\u001b[0;31m \u001b[0mmu1\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m;\u001b[0m \u001b[0mmu2\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 30\u001b[0m \u001b[0msigma1\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstd\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m;\u001b[0m \u001b[0msigma2\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstd\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m;\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 31\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mNameError\u001b[0m: name 'N' is not defined" + ] + } + ], + "source": [ + "data1 #=\n", + "data2 #=\n", + "p.check_p03(data1,data2)" ] }, { @@ -326,21 +488,21 @@ "\n", "|mass(g) A |mass(g) B|mass(g) C|\n", "|---|---|---|\n", - "|43.8| 49.1| 41.9|\n", - "|41.1| 42.7| 40.9|\n", - "|49.4| 42.4| 44.6|\n", - "|41.4| 41.7| 42.4|\n", - "|45.5| 44.9| 50.2|\n", - "|53.5| 38.7| 44.2|\n", - "|43.7| 36.5| 45.8|\n", - "|41.0| 42.6| 40.2|\n", - "|44.2| 48.8| 43.8|\n", - "|35.2| 47.4| 44.4|\n", - "|48.5| 48.1| 46.2|\n", - "|47.7| 37.8| 42.2|\n", - "|38.5| 39.7| 37.1|\n", - "|37.8| 44.1| 42.2|\n", - "|40.8| 42.4| 46.9|" + "|43.8| 54.1| 41.9|\n", + "|41.1| 47.1| 40.9|\n", + "|49.4| 46.8| 44.6|\n", + "|41.4| 45.9| 42.4|\n", + "|45.5| 49.5| 50.2|\n", + "|53.5| 42.7| 44.2|\n", + "|43.7| 40.3| 45.8|\n", + "|41.0| 46.9| 40.2|\n", + "|44.2| 53.8| 43.8|\n", + "|35.2| 52.3| 44.4|\n", + "|48.5| 53.0| 46.2|\n", + "|47.7| 41.6| 42.2|\n", + "|38.5| 43.8| 37.1|\n", + "|37.8| 48.7| 42.2|\n", + "|40.8| 46.7| 46.9|" ] }, { @@ -361,7 +523,7 @@ "\n", " e. Why would you use the student t-test?\n", " \n", - "2. Procedure\n", + "2. Methods\n", "\n", " a. Description of materials and measurements\n", " \n", @@ -408,6 +570,13 @@ "\n", "\\[5\\] Sehgal, J., & Ito, S. (1999). [Brittleness of glass](./brittleness_of_glass.pdf). Journal of non-crystalline solids, 253(1-3), 126-132." ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -426,7 +595,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.5" + "version": "3.7.3" } }, "nbformat": 4, diff --git a/__pycache__/check_lab00.cpython-37.pyc b/__pycache__/check_lab00.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..86cf03575bdeef17e1b84a9874903e26b0b14aa3 GIT binary patch literal 1476 zcmaJ>OOG2x5bnpkcMSxrBqSV02o4sj__0x>NJ|U}j{{&uS|TD#(P-8^Yg_g_=xGDH zX`hn6zyVIlkqdXuocIfULr9T)L7X^nqN>N)tWZR2rs}Ke_g7VYyVZ&aw9VZI559K@ z`2&sTjRE)o{`xuyK?GfrF%?Yk$7IZeBV5p2c)|zmWUdGnO!hKQgpVkN(TAiHZD1xD zO(-g8u!H^YfUcJy6nR25c}mw55VME@;+hJ28T^7?C4w!8yl=g*xAi*K<7o1T3Kw?0 zuUz5TUHvuJ{E&bhSUYTNLGU!A4PJKou>JF=zn?xHZtz&secOH=ZUk7T;b=a|;%`g2 z*x>a~FMKsC%c|asl{|^lX*w??&gyuE6_s)FEG-PLl`uR#stsReg>fr6FI2}dj!0E% zSiX`0OfgU zpx3|I&AzKLImb~+uh*T-vdJP@rboTrwd%x#ja~Kn9M-O12SI2=BX*qz)S(VTDKCI` zg4e=^12G;p7Iy(OvG@<~2i8lsymN>Ka(^J)HB+qNT(d(Wd}~|It&Mz#BZ-@x@jd%4eEl}guq%4jTpf!`m41b;7KT4z4H`ydXp?1`Apk2v;zV3Ab`&VU+=XCP7{s<%!qF5i5ACm^#8hcQ<*WDK?Oz)lPmgW;^F=7nMe$_;j3ky`6Ga~pmV}L` zaq6$7vQag3WT-O1^LTbz#>E=yH)>$ms1N_Z@O;%rF&KOGe43~ItsWTqp`o|OuBuh4 z3=_xypA!35;1u=SAP6KvKqCS*Ln3yC?y&9fx2B%I4% do5?nbgM+*jt7UczADxr&1N4?MVwnwXdnW4t}7Azoe#hLr6nmF^|mu0jd_qL2R4zWT&3 z_~a~JLMJ_Q=FCiIdR(iO37&cP;bCME@|gvHCy(R^uewIygi}d;dT&tz*0cSV;}*9C zeW#T0T&D1Rhw#FJt^BhhvJx-z3a|3oQ+|bVPL+6!rVqM zbtwW+PKK|7>*1}bXc%iJQGnhw7J+2woFoul$iZy%Fc~p##GYWP1j>3mLsbdvNunvo zPET($DQBj+Tss8$0(xdPmqo<_a-YpT^2K6rG+Hoxbz2!OZdwLd|kN1&<8i3u)sYHy~Kw=EBEds3&xR@-o)$ZP$P)>N6bGmVLY1!3a%PrAf9xCj C<(B3E literal 0 HcmV?d00001 diff --git a/check_lab00.py b/check_lab00.py new file mode 100644 index 0000000..2e88a64 --- /dev/null +++ b/check_lab00.py @@ -0,0 +1,49 @@ +import numpy as np + +def check_p01(data): + mu=np.mean(data) + std=np.std(data) + + if np.abs(mu-10)/10<0.01 and np.abs(std-1)<0.15 and len(data)==100: + print('Nice work') + points=2 + return points + else: + print('Whoops, try again') + points=0 + return points + +def check_p02(mu,conf_interval): + if np.abs(mu-10)/10<0.01 and np.abs(conf_interval-0.2)/0.2<0.1: + points=2 + print('Nice work') + return points + else: + points=0 + print('Whoops, try again') + return points + +def check_p03(data1,data2): + N1=len(data1) + N2=len(data2) + mu1=np.mean(data1); mu2=np.mean(data2) + sigma1=np.std(data1); sigma2=np.std(data2); + + A=np.abs(N1+N2)/(N1*N2*1.0) + B=((N1-1)*sigma1**2+(N2-1)*sigma2**2)/(N1+N2-2) + + tstat=np.abs(mu1-mu2)/np.sqrt(A*B) + + print('t=%1.2f'%tstat) + + df=2*N-2 + if tstat>t.interval(0.95, df)[1] and (mu1-mu2)/mu1<0.1: + points=2 + print('Nice work') + return points + else: + print('Whoops, try again') + return points + +if __name__=='__main__': + print('This is the library to check Lab 00 prework') \ No newline at end of file