From 54f160c24a3b37d1ed792f4da2a45c83034b933b Mon Sep 17 00:00:00 2001 From: Phil McCown Date: Fri, 17 Nov 2017 10:55:35 -0500 Subject: [PATCH 01/10] Initial Python scripts for Jupyter notebooks --- Ex12Q1.py | 0 Ex12Q2.py | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100755 Ex12Q1.py create mode 100755 Ex12Q2.py diff --git a/Ex12Q1.py b/Ex12Q1.py new file mode 100755 index 0000000..e69de29 diff --git a/Ex12Q2.py b/Ex12Q2.py new file mode 100755 index 0000000..e69de29 From 484902e735ceab25a734b2aef6f6943af7f98b91 Mon Sep 17 00:00:00 2001 From: Phil McCown Date: Fri, 17 Nov 2017 11:25:15 -0500 Subject: [PATCH 02/10] ggplot equation for Q1 solved --- Ex12Q1.py | 8 ++++++++ Ex12Q2.py | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/Ex12Q1.py b/Ex12Q1.py index e69de29..54d267b 100755 --- a/Ex12Q1.py +++ b/Ex12Q1.py @@ -0,0 +1,8 @@ +import numpy +import pandas +import plotnine +from plotnine import * + +chicken=pandas.read_csv("chickwts.txt", sep=",") +chicken.shape +ggplot(chicken,aes(x="feed",y="weight"))+geom_dotplot(binaxis="y",stackdir="center", stackratio=0.5, dotsize=0.2)+theme_classic() \ No newline at end of file diff --git a/Ex12Q2.py b/Ex12Q2.py index e69de29..c31e30f 100755 --- a/Ex12Q2.py +++ b/Ex12Q2.py @@ -0,0 +1,4 @@ +import numpy +import pandas +import re + From 829a451a5596360a4a8587556493b536446aaafb Mon Sep 17 00:00:00 2001 From: kkilgoreND <31992787+kkilgoreND@users.noreply.github.com> Date: Mon, 20 Nov 2017 12:43:14 -0500 Subject: [PATCH 03/10] Q2 ipynb and html --- Exercise12-Q2.html | 11947 ++++++++++++++++++++++++++++++++++++++++++ Exercise12-Q2.ipynb | 146 + 2 files changed, 12093 insertions(+) create mode 100644 Exercise12-Q2.html create mode 100644 Exercise12-Q2.ipynb diff --git a/Exercise12-Q2.html b/Exercise12-Q2.html new file mode 100644 index 0000000..f31e894 --- /dev/null +++ b/Exercise12-Q2.html @@ -0,0 +1,11947 @@ + + + +Exercise12-Q2 + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+

Using Regular Expressions to Match Patterns

Matching patterns using regular expressions is useful when you want to look for strings in a file with a lot of data. In this exercise we will look at 3 scenarios and use regular expressions to match patterns.

+

In order to use regular expressions in Python you first need to add the regular expression package(re). Then, for each scenario, you will need to simulate some data, build the necessary regular expression(s)

+ +
+
+
+
+
+
+
+

Scenario 1: Times

This pattern will match times after noon, but before midnight when reported in 24-hour or "military" format(e.g. 15:30). The following regular expression(s) work because it makes it so the only digits you capture are those that start with a 1 (i.e. 12:xx) or 2 (i.e. 20:xx). The print then combines the 2 filters so that you can see all values after noon/before midnight.

+ +
+
+
+
+
+
In [1]:
+
+
+
#Import packages needed
+import re
+#Simulate Data
+times=['00:30','o1:30','02:30','03:30','04:30','05:30','06:30','07:30','08:30','09:30','10:30','11:30','12:30','13:30','14:30','15:30','16:30','17:30','18:30','19:30','20:30','21:30','22:30','23:30']
+#Build expressions
+regex1=re.compile('[1][2-9]:\d{2}')
+regex2=re.compile('[2][0-9]:\d{2}')
+#Filter
+print(filter(regex1.match,times)+filter(regex2.match,times))
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
['12:30', '13:30', '14:30', '15:30', '16:30', '17:30', '18:30', '19:30', '20:30', '21:30', '22:30', '23:30']
+
+
+
+ +
+
+ +
+
+
+
+
+

Scenario 2: Genus Species Names

This pattern will match genus species names that are expressed in the format G. species(e.g. H. sapiens). This code will look for a capital letter(A-Z), followed by a period, then a space and finally 2-25 lowercase letters. As we use the .match function, it will look for instances where the string starts with the specified parameters.

+ +
+
+
+
+
+
In [4]:
+
+
+
#Simulate Data
+names=['M. avium','Bubbles','T. cruzi','J. F. Kennedy','B. megaterium','Kei-ichi Uchiya','mumbo.jumbo','T. rex', 'S. pyogenes','h. sapiens']
+#Build Expression
+regex=re.compile('[A-Z]\.\s[a-z]{2,25}')
+#Filter
+print(filter(regex.match,names))
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
['M. avium', 'T. cruzi', 'B. megaterium', 'T. rex', 'S. pyogenes']
+
+
+
+ +
+
+ +
+
+
+
+
+

As you can see, this expression works because it ignored items like 'Bubbles', 'J. F. Kennedy, etc. This is because they did not fit the required format. In the instance of 'Bubbles' it was ignored because it didn't have a period or space following the first letter.In the 'J. F. Kennedy' example it was ignored because it failed the second part of the expression which required a lowercase letter/word following the first period and space.

+ +
+
+
+
+
+
+
+

Scenario 3: Social Security Numbers

This pattern will match social security numbers in the proper format(e.g. 389-05-4771). This code will look for 3 digits followed by a dash, then 2 digits followed by a dash and finally 4 digits.

+ +
+
+
+
+
+
In [5]:
+
+
+
#Simulate Data
+data=['389-05-4771','123-45-6789','McDougal Littell','876-54-3210','111-22-3333','Goofy','888-77-6666','22-333-44']
+#Build Expression
+regex=re.compile('\d{3}\-\d{2}\-\d{4}')
+#Filter
+print(filter(regex.match,data))
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
['389-05-4771', '123-45-6789', '876-54-3210', '111-22-3333', '888-77-6666']
+
+
+
+ +
+
+ +
+
+
+
+
+

This regular expression worked because it ignored data like 'Goofy' and '22-333-44'. Naturally, Goofy was gnored because it didn't start with a digit and 22-333-44 was ignored because it didn't start with 3 digits.

+ +
+
+
+
+
+ + + + + + diff --git a/Exercise12-Q2.ipynb b/Exercise12-Q2.ipynb new file mode 100644 index 0000000..785a18e --- /dev/null +++ b/Exercise12-Q2.ipynb @@ -0,0 +1,146 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Using Regular Expressions to Match Patterns\n", + "\n", + "Matching patterns using regular expressions is useful when you want to look for strings in a file with a lot of data. In this exercise we will look at 3 scenarios and use regular expressions to match patterns. \n", + " \n", + "In order to use regular expressions in Python you first need to add the regular expression package(re). Then, for each scenario, you will need to simulate some data, build the necessary regular expression(s) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Scenario 1: Times\n", + "\n", + "This pattern will match times after noon, but before midnight when reported in 24-hour or \"military\" format(e.g. 15:30). The following regular expression(s) work because it makes it so the only digits you capture are those that start with a 1 (i.e. 12:xx) or 2 (i.e. 20:xx). The print then combines the 2 filters so that you can see all values after noon/before midnight." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['12:30', '13:30', '14:30', '15:30', '16:30', '17:30', '18:30', '19:30', '20:30', '21:30', '22:30', '23:30']\n" + ] + } + ], + "source": [ + "#Import packages needed\n", + "import re\n", + "#Simulate Data\n", + "times=['00:30','o1:30','02:30','03:30','04:30','05:30','06:30','07:30','08:30','09:30','10:30','11:30','12:30','13:30','14:30','15:30','16:30','17:30','18:30','19:30','20:30','21:30','22:30','23:30']\n", + "#Build expressions\n", + "regex1=re.compile('[1][2-9]:\\d{2}')\n", + "regex2=re.compile('[2][0-9]:\\d{2}')\n", + "#Filter\n", + "print(filter(regex1.match,times)+filter(regex2.match,times))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Scenario 2: Genus Species Names\n", + "\n", + "This pattern will match genus species names that are expressed in the format G. species(e.g. H. sapiens). This code will look for a capital letter(A-Z), followed by a period, then a space and finally 2-25 lowercase letters. As we use the .match function, it will look for instances where the string starts with the specified parameters." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['M. avium', 'T. cruzi', 'B. megaterium', 'T. rex', 'S. pyogenes']\n" + ] + } + ], + "source": [ + "#Simulate Data\n", + "names=['M. avium','Bubbles','T. cruzi','J. F. Kennedy','B. megaterium','Kei-ichi Uchiya','mumbo.jumbo','T. rex', 'S. pyogenes','h. sapiens']\n", + "#Build Expression\n", + "regex=re.compile('[A-Z]\\.\\s[a-z]{2,25}')\n", + "#Filter\n", + "print(filter(regex.match,names))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see, this expression works because it ignored items like 'Bubbles', 'J. F. Kennedy, etc. This is because they did not fit the required format. In the instance of 'Bubbles' it was ignored because it didn't have a period or space following the first letter.In the 'J. F. Kennedy' example it was ignored because it failed the second part of the expression which required a lowercase letter/word following the first period and space." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Scenario 3: Social Security Numbers\n", + "\n", + "This pattern will match social security numbers in the proper format(e.g. 389-05-4771). This code will look for 3 digits followed by a dash, then 2 digits followed by a dash and finally 4 digits." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['389-05-4771', '123-45-6789', '876-54-3210', '111-22-3333', '888-77-6666']\n" + ] + } + ], + "source": [ + "#Simulate Data\n", + "data=['389-05-4771','123-45-6789','McDougal Littell','876-54-3210','111-22-3333','Goofy','888-77-6666','22-333-44']\n", + "#Build Expression\n", + "regex=re.compile('\\d{3}\\-\\d{2}\\-\\d{4}')\n", + "#Filter\n", + "print(filter(regex.match,data))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This regular expression worked because it ignored data like 'Goofy' and '22-333-44'. Naturally, Goofy was gnored because it didn't start with a digit and 22-333-44 was ignored because it didn't start with 3 digits." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 8c29783dee688cf8cb79191d4adce5e34af494e5 Mon Sep 17 00:00:00 2001 From: Michelle Corley Date: Mon, 20 Nov 2017 16:12:23 -0500 Subject: [PATCH 04/10] subset data - getting an error on this --- Ex12Q1.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Ex12Q1.py b/Ex12Q1.py index 54d267b..1610fae 100755 --- a/Ex12Q1.py +++ b/Ex12Q1.py @@ -2,7 +2,13 @@ import pandas import plotnine from plotnine import * +from scipy.optimize import minimize +from scipy.stats import norm chicken=pandas.read_csv("chickwts.txt", sep=",") chicken.shape -ggplot(chicken,aes(x="feed",y="weight"))+geom_dotplot(binaxis="y",stackdir="center", stackratio=0.5, dotsize=0.2)+theme_classic() \ No newline at end of file +ggplot(chicken,aes(x="feed",y="weight"))+geom_dotplot(binaxis="y",stackdir="center", stackratio=0.5, dotsize=0.2)+theme_classic() + +#subset data into different data frames +sub1=chicken.loc[data.feed.isin(:,['soybean])] +sub2=chicken.loc[data.feed.isin(:,['sunflower])] From 284f109b9338f06cbeed762689bff52fb964616d Mon Sep 17 00:00:00 2001 From: Michelle Corley Date: Mon, 20 Nov 2017 16:23:37 -0500 Subject: [PATCH 05/10] subsetting successful --- Ex12Q1.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Ex12Q1.py b/Ex12Q1.py index 1610fae..d7b717d 100755 --- a/Ex12Q1.py +++ b/Ex12Q1.py @@ -10,5 +10,7 @@ ggplot(chicken,aes(x="feed",y="weight"))+geom_dotplot(binaxis="y",stackdir="center", stackratio=0.5, dotsize=0.2)+theme_classic() #subset data into different data frames -sub1=chicken.loc[data.feed.isin(:,['soybean])] -sub2=chicken.loc[data.feed.isin(:,['sunflower])] +sub1=chicken.loc[chicken.feed.isin(['soybean']),:] +sub2=chicken.loc[chicken.feed.isin(['sunflower']),:] + + From ee5d955958d5b264e4bd08617e513ee18b722432 Mon Sep 17 00:00:00 2001 From: Michelle Corley Date: Mon, 20 Nov 2017 16:36:20 -0500 Subject: [PATCH 06/10] attempting maximum likehood, not completed --- Ex12Q1.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Ex12Q1.py b/Ex12Q1.py index d7b717d..d677ae2 100755 --- a/Ex12Q1.py +++ b/Ex12Q1.py @@ -10,7 +10,14 @@ ggplot(chicken,aes(x="feed",y="weight"))+geom_dotplot(binaxis="y",stackdir="center", stackratio=0.5, dotsize=0.2)+theme_classic() #subset data into different data frames -sub1=chicken.loc[chicken.feed.isin(['soybean']),:] -sub2=chicken.loc[chicken.feed.isin(['sunflower']),:] +sub1=chicken.loc[chicken.feed.isin(['soybean','sunflower']),:] + +#Make new data frame with 'group' column (your x=0 or x=1) +#var2=pandas.DataFrame({'y':var1.col2name, 'x':}) +sub1frame=pandas.DataFrame({'y':sub1.feed,'x':0}) + +#Designate 'treatment' group as x=1 +#var2.loc[var1.col1name=='name of treatment group', 'x']=1 +sub1frame.loc[sub1.weight=='sunflower','x']=1 From 851079a05143a0e76fb7e0fc5890f2ad5e361c09 Mon Sep 17 00:00:00 2001 From: kkilgoreND <31992787+kkilgoreND@users.noreply.github.com> Date: Tue, 21 Nov 2017 11:58:10 -0500 Subject: [PATCH 07/10] Q1 ipynb and html --- Exercise12-Q1.html | 12715 ++++++++++++++++++++++++++++++++++++++++++ Exercise12-Q1.ipynb | 288 + 2 files changed, 13003 insertions(+) create mode 100644 Exercise12-Q1.html create mode 100644 Exercise12-Q1.ipynb diff --git a/Exercise12-Q1.html b/Exercise12-Q1.html new file mode 100644 index 0000000..096d4e7 --- /dev/null +++ b/Exercise12-Q1.html @@ -0,0 +1,12715 @@ + + + +Exercise12-Q1 + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+

Exercise 12: Question 1

Dataset- chichwts.txt

This dataset describes the attributes of chicks. The first column contains the weights of the chicks in a numeric value and the second column contains a character string which describes the type of feed they received.

+

Import Necessary Packages and Data

+
+
+
+
+
+
In [4]:
+
+
+
#Import packages
+import numpy
+import pandas
+import scipy
+import scipy.integrate as spint
+from scipy.stats import norm
+from scipy.optimize import minimize
+from scipy.stats import chi2
+import plotnine
+from plotnine import *
+
+#Load Data
+chicken=pandas.read_csv("chickwts.txt", sep=",")
+
+ +
+
+
+ +
+
+
+
+
+

Part 1: Generate a Plot to Summarize Data

+
+
+
+
+
+
In [5]:
+
+
+
#Generate plot that shows the weights of chicks vs. feed type(scatter)
+plot1= ggplot(chicken,aes(x="feed",y="weight"))+geom_dotplot(binaxis="y",stackdir="center", stackratio=0.5, dotsize=0.2)+theme_classic()
+
+print plot1
+
+#Generate plot that shows average weight vs. feed type (bar)
+plot2= ggplot(chicken, aes(y="weight",x="feed"))+geom_bar(stat="summary",fun_y=numpy.mean)
+print plot2
+
+ +
+
+
+ +
+
+ + +
+ +
+ + + + +
+ +
+ +
+ +
+ +
+ + +
+
<ggplot: (7535692365)>
+
+
+
+ +
+ +
+ + + + +
+ +
+ +
+ +
+ +
+ + +
+
<ggplot: (7535781365)>
+
+
+
+ +
+
+ +
+
+
+
+
+

Part 2: Null Hypotheses for Difference in Chick Weight (Soybean vs. Sunflower)

Hypotheses

    +
  • Null Hypothesis: There is no difference in chick weight when fed soybean or sunflower seed.
  • +
  • Alternative Hypothesis: There is a significant difference in chick weight between those fed soybean feed and those fed sunflower seed.
  • +
+ +
+
+
+
+
+
In [6]:
+
+
+
#Subset the Data to Only Have the Types of Feed we are Interested in
+chicksub=chicken.loc[chicken.feed.isin(['soybean', 'sunflower']),:]
+
+#Make Dataframe for Modeling
+chickFrame= pandas.DataFrame({'y':chicksub.weight,'x':0})
+chickFrame.loc[chicksub.feed=='sunflower','x']=1
+
+ +
+
+
+ +
+
+
+
+
+

Part 3: Test Null Hypothesis Using Likelihood Ratio Test

    +
  • Step 1: Define Null Model
  • +
  • Step 2: Define Alternative Model
  • +
  • Step 3: Run/Generate Likelihood Ratio Tests
  • +
+ +
+
+
+
+
+
In [12]:
+
+
+
#Define Null
+def nllikeNull(pNull,obsNull):
+    B0Null=pNull[0]
+    sigmaNull=pNull[1]
+    expectedNull=B0Null
+    nllNull=-1*norm(expectedNull,sigmaNull).logpdf(obsNull.y).sum()
+    return nllNull
+
+#Define Alternative
+def nlllikeAlt(pAlt,obsAlt):
+    B0Alt=pAlt[0]
+    B1Alt=pAlt[1]
+    sigmaAlt=pAlt[2]
+    expectedAlt=B0Alt+B1Alt*obsAlt.x
+    nllAlt=-1*norm(expectedAlt,sigmaAlt).logpdf(obsAlt.y).sum()
+    return nllAlt
+
+ +
+
+
+ +
+
+
+
In [8]:
+
+
+
#Null Model
+initialGuessNull=numpy.array([1,1])
+fitNullChickFrame=minimize(nllikeNull,initialGuessNull, method="Nelder-Mead",options={'disp':True},args=chickFrame)
+print("Estimated Parameters: Null Model")
+print(fitNullChickFrame.x)
+print("NLL: Null Model")
+nllNullChickFrame=fitNullChickFrame.fun
+#Print NLL value for Null Model
+print(nllNullChickFrame)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
Optimization terminated successfully.
+         Current function value: 145.240592
+         Iterations: 85
+         Function evaluations: 162
+Estimated Parameters: Null Model
+[ 284.49999051   64.53691755]
+NLL: Null Model
+145.240592097
+
+
+
+ +
+
+ +
+
+
+
In [13]:
+
+
+
#Alternative Model
+initialGuessAlt=numpy.array([1,1,1])
+fitAltChickFrame=minimize(nlllikeAlt,initialGuessAlt,method="Nelder-Mead",options={'disp':True},args=chickFrame)
+print("Estimated Parameters: Alternative Model")
+print(fitAltChickFrame.x)
+print("NLL: Alternative Model")
+nllAltChickFrame=fitAltChickFrame.fun
+#Print NLL value for Alternative Model
+print(nllAltChickFrame)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
Optimization terminated successfully.
+         Current function value: 138.469162
+         Iterations: 200
+         Function evaluations: 363
+Estimated Parameters: Alternative Model
+[ 246.42855057   82.48813575   49.73948886]
+NLL: Alternative Model
+138.469161825
+
+
+
+ +
+
+ +
+
+
+
+
+

Part 4: Interpret Results of Likelihood Ratio Test

    +
  • Step 1: Calculate D value
  • +
  • Step 2: Calculate p value
  • +
+
Conclusions:

As our p-value was less than 0.05, we can report that our alternative hypothesis was correct. This means that there is a significant difference between the chicks who were fed soybean feed vs. those who were fed sunflower feed.

+ +
+
+
+
+
+
In [14]:
+
+
+
#Calculate D value
+DchickFrame=2*(nllNullChickFrame-nllAltChickFrame)
+print("D Value")
+print(DchickFrame)
+
+#Calculate p value
+pChickFrame=1-scipy.stats.chi2.cdf(x=DchickFrame,df=1)
+print("p-value")
+print(pChickFrame)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
D Value
+13.5428605444
+p-value
+0.000233176728695
+
+
+
+ +
+
+ +
+
+
+ + + + + + diff --git a/Exercise12-Q1.ipynb b/Exercise12-Q1.ipynb new file mode 100644 index 0000000..d4468b6 --- /dev/null +++ b/Exercise12-Q1.ipynb @@ -0,0 +1,288 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise 12: Question 1\n", + "\n", + "### Dataset- chichwts.txt\n", + "This dataset describes the attributes of chicks. The first column contains the weights of the chicks in a numeric value and the second column contains a character string which describes the type of feed they received.\n", + "\n", + "#### Import Necessary Packages and Data" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "#Import packages\n", + "import numpy\n", + "import pandas\n", + "import scipy\n", + "import scipy.integrate as spint\n", + "from scipy.stats import norm\n", + "from scipy.optimize import minimize\n", + "from scipy.stats import chi2\n", + "import plotnine\n", + "from plotnine import *\n", + "\n", + "#Load Data\n", + "chicken=pandas.read_csv(\"chickwts.txt\", sep=\",\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Part 1: Generate a Plot to Summarize Data" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nkwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "image/png": "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\n7Vr98ssvqlWrlgYPHqxHH31UNWvWlCS9+OKLZVosAACoWEoVNCSpZs2aGjt2bFnWAgAALjJ8MygA\nALDG5ysaV111lebNm6cmTZqc8kuuf8SvtwIAAOkcf701PDzc+//8kisAADgbn4PGW2+95f1/fskV\np5OamurvEsqVSZMm+bsEAPC7836PhjFGe/fuVVFRUVnUAwAALiKlDhqff/65rrvuOlWqVEmXX365\nfv75Z0nS4MGDNXfu3DIrEAAAVFylChrz589X586dVadOHU2bNk3GGO+6evXqlZhmAQAAf12lChr/\n/Oc/NXToUM2fP1/9+/cvsa5x48basGFDWdQGAAAquFIFje3bt6tz586nXRceHq4jR46cV1EAAODi\nUKqgUbNmTW3atOm0637++WfFxcWdV1EAAODiUKqg0adPHz377LP68ssvvbcFBARow4YNGjt2rPr1\n61dmBQIAgIqrVL918uyzz2rjxo266aabVL16dUnSrbfeqoMHD+rvf/+7nnjiiTItsqwFBwcrJCTE\n32VUSFWqVPF3CRUGvfIdvfIdvfIdvfKdzV6VKmgEBwfrww8/1LJly7RkyRIdOnRI1apV04033qgb\nb7yxrGsscwUFBSooKPB3GRXSsWPH/F1ChUGvfEevfEevfEevfHcuvTrXP9RLFTS6du2qdu3aqW3b\ntho9erScTmdpdgMAAC5ypXqPRlhYmCZMmKDrr79eVatW1U033aTnn39eX331lfLy8sq6RgAAUEGV\nKmgsWLBAu3fv1pYtWzRx4kTVrl1bs2fPVqdOnVS1alW1bdu2rOsEAAAVUKmmTk664oordMUVV6h9\n+/b66quvNHfuXH311Vf65ptvyqo+AABQgZUqaGzatEnLly/3/nfgwAE1btxY7dq1U0pKitq1a1fW\ndQIAgAqoVEEjISFBoaGhuvfee/Xaa68pKSlJkZGRZV0bAACo4EoVNDp37qxvvvlGM2fO1M8//6xv\nv/1W7du3V5s2bVS5cuWyrhEAAFRQpXoz6Mcff6xDhw5pzZo1uuuuu7R161bde++9qlatmq699lo9\n9thjZV0nAACogEr9ZtCAgAA1bdpUTZs2VY8ePbR8+XJNnz5dy5cvV1paml566aWyrBMAAFRApQoa\nO3bs0PLly7VixQqtWLFC27dvV1BQkJo1a6bhw4erffv2ZV0nAACogEoVNOrWratKlSqpZcuW6t27\n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\nqXPnzlqxYoX27NmjZs2aKTU1VTNmzNB3332nmJgYPfbYY4qLi/vTMe7fv19TpkxRenq6JOnqq69W\nSkqKKleurHHjxungwYMaM2aMHA6HunTporvvvltdu3ZVSkqKPvroI7lcLnXs2FF9+/bVxIkTtXHj\nRsXFxWnEiBHer5P+s+Nz69atmjFjhve4vv766zVo0CAFBQVZ7+H777+vf//738rJyVFERITuvvtu\ntW3bVosXL9Znn32m3NxcJSQk6MEHH1T16tX1/vvv6+eff9Yzzzzj3ceiRYv0yy+/aNSoUZKk48eP\n67nnntMvv/yi2rVrKzU1VXFxcZL+/Fj7s+fh5PN92223acWKFaecSy5Ub3bv3u19zUlSQUGBevTo\noRkzZqhGjRqaMGGCQkJClJWVpZ9++kkxMTF69NFHVbduXb3yyiv6+uuvFRAQoE8++URDhw495THP\ndE50uVxKSUnRvHnzFBQUpHfeeUeLFy/WvHnzFBoaqnfffVd79+7VI488osLCQs2fP18rVqyQ2+1W\ns2bN9OCDD6py5cre88Qjjzyi+fPnKyQkRFOnTrXSv9MysKaoqMgMHTrUTJs2zeTk5JiCggKzfv16\nY4wx//3vf723vfHGG+ahhx7y3u+ee+4xS5cuNcYYk5ubazZt2mSMMebQoUOmT58+5ttvvzVFRUVm\n06ZNpnfv3mbnzp3GGGPGjx9vZs2aZYwx5ueffzbdunUzb775pikoKDCbN282t99+u9mzZ88FGfvA\ngQNNamqqyczMNLm5uWb48OFmzpw5Zs+ePSY5OdmsWbPGFBUVmS+//NL06tXLHDlyxDuGO++80/z0\n00+muLjY5OXlmccee8wsXLjQeDwek5+fbzZu3GiMMSYvL8/cd9995pNPPjGFhYVm165dZsCAASYt\nLc0YY8zcuXNNt27dzNKlS01RUZH54osvTK9evcyxY8eMMca8+OKLZvz48SYnJ8ccO3bMPP300+bt\nt982xhhz7Ngxs3LlSpOXl2dyc3PN2LFjzXPPPecd38iRI819991nduzYYQoKCsyYMWPMK6+8Yr2n\na9euNXPnzjVjx441xhizf/9+06VLF/PKK68Yt9tt9u3bZ3r16mXWrVtnjDFm7NixZurUqaawsNAU\nFhZ6jz+Px2P+53/+x7z99tsmPz/fuFwuk5qaaj777DNjjDGrV682AwcONNu3bzdFRUXm008/NYMG\nDTIFBQWmsLDQDBw40CxcuNAUFhaatLQ0k5ycbMaPH291/L/vw9ChQ43L5TJHjhwxDzzwgHnwwQfN\n2rVrTVFRkZk+fboZNWrUWce4b98+k5aWZgoKCsyRI0fMyJEjzauvvnpKv3+vS5cu5plnnjHHjh0z\nBw4cML179zaPPPKI2bJliylRob9hAAAQSklEQVQsLDSjR482kydPNsac/fjctm2b+eWXX0xRUZE5\ncOCAGTJkiFm8eHGJx9q1a1eZ92/Xrl0mOTnZu+9Dhw6ZjIwM88UXX5iBAweaXbt2mby8PDN16lQz\nYsQIY4wxhw8fNsnJyebw4cPe/Tz00ENm5cqVxpgTr9vk5GTz448/msLCQrNgwQJz//33m6KiojJ5\nHk53LrHhTL35/WvOGGPy8/NNly5dzP79+73j79Wrl9m4caMpKioyr7/+unn88ce92//+3GyMKbG/\ns50T77//fu85b/jw4eb+++/3HpdPP/20+eKLL4wxxrzxxhvm6aefNllZWSYvL8+MHz/evPTSS8aY\n/ztPjB071uTk5Ji8vDwr/TsTpk4s2rp1qw4cOKBBgwYpLCxMQUFB3r+mb7zxRu9tvXr10s6dO3X0\n6FFJUmBgoPbt26ejR48qNDRUDRs2lHTiL8ymTZvquuuuk9PpVMOGDXXddddp1apVp318h8Ohfv36\nKSgoSA0aNNBll13m/avhQujatauio6MVGhqq1q1b67ffftPXX3+t5s2b69prr5XT6dQNN9ygyy67\nTN999533ftdee62uuuoqBQQEKCQkRIGBgcrMzNThw4cVHByshIQESdL333+vyMhIde7cWYGBgapd\nu7ZuvvlmrVixwruvOnXqqGPHjnI6nerUqZNiYmL0/fffKzs7W2vWrNHgwYMVFhamypUrq2fPnt77\nVq5cWW3atFFISIhCQ0PVo0cPbdy4scT4OnXqpLi4OAUFBaldu3b67bffLkBXT69Pnz6qVKmSatas\nqcaNG2v79u2SThxLhw8fVmZmpgIDA73H37Zt2+RyudSvXz8FBwerevXq6t69u3f8n376qe644w7V\nqVNHTqdTt9xyiwICArR582Zt2rRJ+fn56tGjhwIDA9WsWTM1b978go7373//u6pXr66IiAg1b95c\nMTExatGihZxOp9q2bavffvvtrGOsWbOmmjVrpqCgIEVERKhr166nPMenk5ycrMqVKysmJkYJCQlq\n0KCB6tevr8DAQCUlJXl7f7bjs169erryyivldDoVExOjv/3tb9qwYYO9pv1/TqdT0okrjvn5+apW\nrZpiY2P11VdfqWvXrqpdu7ZCQkLUv39/bdmyRfv27VNkZKSuvvpqLV++XNKJ4+fw4cNq2bKld78t\nWrTQ1VdfrcDAQPXo0UO5ubnavHlzmTwPpzuXXMje+KJVq1ZKSEjwntdOHgdnc7ZzYpMmTbR+/Xrl\n5+dr3759uu2227RhwwYVFRXp119/VWJioowx+vzzzzVo0CBVrVpVISEh6tu3r1atWlVimqR3794K\nCwtTSEjIOXbm/DB1YpHL5VJ0dPQpl0I9Ho/mzJmjVatW6ciRI95L1UePHlVERISefPJJLVy4UA88\n8IBq1aql3r1769prr1VmZqZWr16t3r17l9hXhw4dTvv4lStXLvHYISEhysvLK/uBnkHVqlVPeexD\nhw6dMr1Qo0YNHT582Lt8cnripNTUVM2bN0+PPvqoIiIi1L17d9100006cOCAtm/fXqIfxcXF3iBy\nun3FxMR4/+EtLi7WwIEDveuMMSouLpYk5efn64033lBaWpqOHz8uSXK73SosLPT2NDIy8pTx+csf\na3G73ZKkAQMGaN68eXrqqafkdDr1t7/9TT169FBmZqaOHDmiPn36eO9XXFzsveSfmZmpWbNm6Z13\n3vGuLyws1KFDhxQQEKBq1ap5j1vpRJ9zcnJsD9Prj8fW6Z6Ls40xOztbM2bM0MaNG+V2u2WMUWho\n6Fkf+4+P9cdaTvb+bMfnnj17NHPmTG3btk35+fnyeDyqU6fOubbinNWqVUtDhw7Vv//9b02cOFGN\nGzfWfffdd8prMywsTFWqVNGhQ4dUq1Yt3XjjjZo/f766d++uZcuWqW3btiXOL79/rTmdTlWvXt17\nvJzv83C6c4kNZ+qNL0p7PjjbOTExMVFffvmlGjRooIYNG6pp06aaMmWKtm7dqoiICMXExCg7O1t5\neXkaMWJEif0EBAQoOzvbu/zH8+GFQtCwKCoqSgcPHlRRUZECA/+v1StWrNC3336r559/XjVq1FBu\nbm6Jk1G9evX05JNPyuPxaOXKlfrf//1fzZ07V9HR0Wrbtu1p5/gqiurVq5/y18iBAwfUtGlT7/If\n3zBVq1YtDRs2TMYYbdiwQc8884waN26s6OhoNWrUSC+++OIZH+/gwYOnLLdu3VrR0dFyOp16++23\nTzsn/v7772vXrl0aN26cqlWrpvT0dD3yyCMyFeyLdKtWrer9NNL27ds1atQo1a9fX1FRUYqKitIb\nb7xx2vtFRUXpjjvuUKdOnU5Zt2HDBh0+fFjFxcXesHHw4MFy9xXKZxvj22+/reLiYk2aNEkRERH6\n7rvvNG3atDJ7/LMdn6+++qr3vT1hYWH66KOPSlyNsykpKUlJSUnKz8/X7NmzNWXKFFWvXl2ZmZne\nbdxut44dO+Z9/80111yjqVOnatu2bVqxYoWeeuqpEvv8/WvN4/Ho0KFDql69uhwOh1+fh3N1ut60\natVK+fn53m2ysrLK7PHOdk5MTEzU1KlT9eOPPyoxMVFxcXE6ePCg1qxZo8TERElSRESEgoODNWHC\nBNWoUeOUxzhw4ICkU8+tFwpTJxbVr19f0dHRmjlzpnJzc1VUVKQNGzbI7XYrKChIVapUUUFBgebM\nmeO9T2FhoZYtW6bjx4/L6XQqPDxcAQEBcjgc6tChg3744QetWbNGHo9HhYWF2rx5s3bt2uXHUZ6b\npKQkpaWl6YcffpDH49FXX32lPXv2qFWrVme8z9KlS5Wdna2AgACFh4dLOjEtdPIqz5IlS1RYWCiP\nx6MdO3Zo69at3vump6dr+fLl8ng8WrZsmfbv369rrrlGkZGRuuaaazRjxgwdP35cxhgdPHjQ+90f\nbrdbwcHBCg8P1/Hjx7Vw4UK7jbFk5cqV3n8AwsPD5XA45HA4VL9+fUVERGjBggXKy8tTcXGx9u7d\n6710f+utt+q9995Tenq6jDFyu91as2aNcnNz1ahRI4WEhGjx4sUqKirSunXrlJaW5s9hntbZxuh2\nu1WpUiWFh4fr0KFD+uCDD0rcv2rVqtq/f3+pH/9sx6fb7VZYWJhCQ0O1Z88effbZZ6Uf7DnYvXu3\n1q1bp4KCAgUGBqpSpUpyOBxq3769PvroI+3Zs0cFBQWaPXu26tevr1q1akk6MQ3XoUMHTZo0SVWq\nVPFO6Z6Ulpamn376SUVFRVq0aJFCQ0O900rn8zxcSGfqTd26dbVx40bt379feXl5WrBgQZk95tnO\niVFRUapWrZqWLFmixMREBQQEqFGjRvr000+9U6EOh0O33HKLZs6c6b0Skp2dXWJK2p+4omGR0+nU\nqFGj9MYbb2jw4MEqLi5WYmKihg4dqrS0NA0YMEBVqlRR3759S9xv+fLlmjFjhjwej2JiYjRixAgF\nBwcrKipKzzzzjGbNmqWJEydKkuLj40tc/i/vLrvsMj3++OOaNWuWDh48qEsvvVSjRo3SJZdccsb7\nrFu3Tm+99Zby8/MVGRmpBx98UDVr1pQkPf/883rzzTf1zjvvqKioSLVr11a/fv28923ZsqXWrl2r\nadOmKSoqSiNHjlSVKlUkSUOHDtWcOXP0yCOP6Pjx44qKitItt9yiFi1aqGvXrnr55Zd19913q1q1\naurevbu++eYbu82xYNu2bZo5c6ZycnJUuXJldenSxftX0KhRozRr1iw9+OCDysvLU40aNZScnCxJ\nuu6665Sfn68JEybowIEDCgkJUUJCgpo0aaLAwEA9+eSTmjJliv71r3+pSZMm6tixowoLC/051FOc\nfP2daYy9e/fW+PHj1bt3b9WqVUsdOnTQ+++/773/yU8VzJkzR7fddluJ48oXoaGhf3p8DhgwQFOn\nTtWHH36ounXrqk2bNvrxxx/LrgFnUFhYqDlz5mjXrl3ef0SHDBmiSy+9VFlZWXrmmWe8nzr546X4\nTp066cMPP9Q999xzyn47dOigDz74QC+88IJq166tJ5980nsl93yehwvpTL2pXbu2brjhBj366KMK\nDw9Xv3799OWXX5bJY/pyTkxMTNS3337r/WTiyeWTr2VJuvfee/Xuu+/qiSee0JEjR3TJJZeobdu2\nuu6668qkzvPBj6oBAHxy7Ngx3XvvvXr99de977EAzoapEwDAWRlj9NFHH6l58+aEDJwTpk4AAH+q\nsLBQffv2VWRkpPcLugBfMXUCAACsYeoEAABYQ9AAAADWEDQAAIA1BA0AAGANQQMAAFhD0ABQauPH\nj1dsbKycTqe6d+9u/fG6d+9+xh8RBFA+8T0aAEpl69atGjZsmB5//HF16dKFL3ECcFoEDQClsnnz\nZhljdP/996tu3br+LgdAOcXUCYBz1r9/f3Xp0kWSVK9ePQUEBGjWrFnKzs7WkCFDVKtWLYWEhKhF\nixZasmTJKff/5JNP1KpVK4WGhio6OlopKSnKyckpsc2vv/6q9u3bq1KlSqpXr55mz559QcYGoGxx\nRQPAORs1apQSEhL0+OOPa/HixapVq5bq1Kmjm266SQcOHNALL7ygyy67zPvLp2lpad5fmnzvvfd0\n1113acCAAXruuee0b98+PfHEE8rKyvL+/HZeXp5uvvlmhYeH65133vE+5rFjx1S/fn2/jRtAKRgA\nKIX333/fSDLp6enGGGPefPNNExgYaDZu3Fhiu1atWpk777zTGGNMcXGxiYuLM7179y6xzaeffmoC\nAgLMhg0bjDHGvPrqq8bhcJgtW7Z4t9m6datxOBymffv29gYFoMwxdQKgTCxZskSJiYlq0KCBioqK\nvP/ddNNN+v777yVJW7ZsUUZGhnr27Flim/bt28vhcGjt2rWSpNWrV6tJkyYlrl5cccUVatq0qV/G\nBqD0mDoBUCZcLpd+/PFHBQUFnbLO6XR6t5Gk22+//bT72LVrlyRp3759iomJOWV9jRo15Ha7y6pk\nABcAQQNAmahWrZquuuoqzZw580+3kaQpU6aoVatWp6y/9NJLJUm1atVSWlraKesPHDigiIiIMqoY\nwIVA0ABQJm688Ub95z//0aWXXuoNDH/UqFEj1a5dW9u3b9dDDz10xn21bNlSb7/9trZu3eqdPtm2\nbZt++ukntW3b1kr9AOwIMMYYfxcBoOL54IMPdPvttys9PV3x8fHKz89XmzZtdPToUT322GNq0KCB\nsrOz9eOPP6qgoEBjxoyRJL377rvq06ePBg4cqNtuu03h4eHKyMjQJ598ohdffFENGjSQ2+3WFVdc\noSpVqmj06NEyxujpp5/W0aNHVb9+fX311Vf+HTwAn3FFA0CZCAkJ0dKlS/Xss8/qhRde0L59+xQV\nFaVmzZppyJAh3u3uvPNOVa1aVS+88ILmzJkjSYqPj9ctt9yiGjVqSJJCQ0O1ZMkSpaSkqG/fvrrs\nsss0atQoffjhh8rOzvbL+ACUDlc0AACANXy8FQAAWEPQAAAA1hA0AACANQQNAABgDUEDAABYQ9AA\nAADWEDQAAIA1BA0AAGANQQMAAFhD0AAAANYQNAAAgDX/D9RuXQcH7udpAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "#Generate plot that shows the weights of chicks vs. feed type(scatter)\n", + "plot1= ggplot(chicken,aes(x=\"feed\",y=\"weight\"))+geom_dotplot(binaxis=\"y\",stackdir=\"center\", stackratio=0.5, dotsize=0.2)+theme_classic()\n", + "\n", + "print plot1\n", + "\n", + "#Generate plot that shows average weight vs. feed type (bar)\n", + "plot2= ggplot(chicken, aes(y=\"weight\",x=\"feed\"))+geom_bar(stat=\"summary\",fun_y=numpy.mean)\n", + "print plot2" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "### Part 2: Null Hypotheses for Difference in Chick Weight (Soybean vs. Sunflower)\n", + "\n", + "#### Hypotheses\n", + "\n", + "* Null Hypothesis: There is no difference in chick weight when fed soybean or sunflower seed.\n", + "* Alternative Hypothesis: There is a significant difference in chick weight between those fed soybean feed and those fed sunflower seed." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#Subset the Data to Only Have the Types of Feed we are Interested in\n", + "chicksub=chicken.loc[chicken.feed.isin(['soybean', 'sunflower']),:]\n", + "\n", + "#Make Dataframe for Modeling\n", + "chickFrame= pandas.DataFrame({'y':chicksub.weight,'x':0})\n", + "chickFrame.loc[chicksub.feed=='sunflower','x']=1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Part 3: Test Null Hypothesis Using Likelihood Ratio Test\n", + "\n", + "* Step 1: Define Null Model\n", + "* Step 2: Define Alternative Model\n", + "* Step 3: Run/Generate Likelihood Ratio Tests" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#Define Null\n", + "def nllikeNull(pNull,obsNull):\n", + " B0Null=pNull[0]\n", + " sigmaNull=pNull[1]\n", + " expectedNull=B0Null\n", + " nllNull=-1*norm(expectedNull,sigmaNull).logpdf(obsNull.y).sum()\n", + " return nllNull\n", + "\n", + "#Define Alternative\n", + "def nlllikeAlt(pAlt,obsAlt):\n", + " B0Alt=pAlt[0]\n", + " B1Alt=pAlt[1]\n", + " sigmaAlt=pAlt[2]\n", + " expectedAlt=B0Alt+B1Alt*obsAlt.x\n", + " nllAlt=-1*norm(expectedAlt,sigmaAlt).logpdf(obsAlt.y).sum()\n", + " return nllAlt" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimization terminated successfully.\n", + " Current function value: 145.240592\n", + " Iterations: 85\n", + " Function evaluations: 162\n", + "Estimated Parameters: Null Model\n", + "[ 284.49999051 64.53691755]\n", + "NLL: Null Model\n", + "145.240592097\n" + ] + } + ], + "source": [ + "#Null Model\n", + "initialGuessNull=numpy.array([1,1])\n", + "fitNullChickFrame=minimize(nllikeNull,initialGuessNull, method=\"Nelder-Mead\",options={'disp':True},args=chickFrame)\n", + "print(\"Estimated Parameters: Null Model\")\n", + "print(fitNullChickFrame.x)\n", + "print(\"NLL: Null Model\")\n", + "nllNullChickFrame=fitNullChickFrame.fun\n", + "#Print NLL value for Null Model\n", + "print(nllNullChickFrame)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimization terminated successfully.\n", + " Current function value: 138.469162\n", + " Iterations: 200\n", + " Function evaluations: 363\n", + "Estimated Parameters: Alternative Model\n", + "[ 246.42855057 82.48813575 49.73948886]\n", + "NLL: Alternative Model\n", + "138.469161825\n" + ] + } + ], + "source": [ + "#Alternative Model\n", + "initialGuessAlt=numpy.array([1,1,1])\n", + "fitAltChickFrame=minimize(nlllikeAlt,initialGuessAlt,method=\"Nelder-Mead\",options={'disp':True},args=chickFrame)\n", + "print(\"Estimated Parameters: Alternative Model\")\n", + "print(fitAltChickFrame.x)\n", + "print(\"NLL: Alternative Model\")\n", + "nllAltChickFrame=fitAltChickFrame.fun\n", + "#Print NLL value for Alternative Model\n", + "print(nllAltChickFrame)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Part 4: Interpret Results of Likelihood Ratio Test\n", + "\n", + "* Step 1: Calculate D value\n", + "* Step 2: Calculate p value\n", + "\n", + "##### Conclusions:\n", + "As our p-value was less than 0.05, we can report that our alternative hypothesis was correct. This means that there is a significant difference between the chicks who were fed soybean feed vs. those who were fed sunflower feed." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "D Value\n", + "13.5428605444\n", + "p-value\n", + "0.000233176728695\n" + ] + } + ], + "source": [ + "#Calculate D value\n", + "DchickFrame=2*(nllNullChickFrame-nllAltChickFrame)\n", + "print(\"D Value\")\n", + "print(DchickFrame)\n", + "\n", + "#Calculate p value\n", + "pChickFrame=1-scipy.stats.chi2.cdf(x=DchickFrame,df=1)\n", + "print(\"p-value\")\n", + "print(pChickFrame)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 371f6ca1eb4fce7a9ccc4b6232b68c0ebba91a91 Mon Sep 17 00:00:00 2001 From: kkilgoreND <31992787+kkilgoreND@users.noreply.github.com> Date: Tue, 21 Nov 2017 12:03:32 -0500 Subject: [PATCH 08/10] Delete Exercise12-Q1.html --- Exercise12-Q1.html | 12715 ------------------------------------------- 1 file changed, 12715 deletions(-) delete mode 100644 Exercise12-Q1.html diff --git a/Exercise12-Q1.html b/Exercise12-Q1.html deleted file mode 100644 index 096d4e7..0000000 --- a/Exercise12-Q1.html +++ /dev/null @@ -1,12715 +0,0 @@ - - - -Exercise12-Q1 - - - - - - - - - - - - - - - - - - - -
-
- -
-
-
-
-

Exercise 12: Question 1

Dataset- chichwts.txt

This dataset describes the attributes of chicks. The first column contains the weights of the chicks in a numeric value and the second column contains a character string which describes the type of feed they received.

-

Import Necessary Packages and Data

-
-
-
-
-
-
In [4]:
-
-
-
#Import packages
-import numpy
-import pandas
-import scipy
-import scipy.integrate as spint
-from scipy.stats import norm
-from scipy.optimize import minimize
-from scipy.stats import chi2
-import plotnine
-from plotnine import *
-
-#Load Data
-chicken=pandas.read_csv("chickwts.txt", sep=",")
-
- -
-
-
- -
-
-
-
-
-

Part 1: Generate a Plot to Summarize Data

-
-
-
-
-
-
In [5]:
-
-
-
#Generate plot that shows the weights of chicks vs. feed type(scatter)
-plot1= ggplot(chicken,aes(x="feed",y="weight"))+geom_dotplot(binaxis="y",stackdir="center", stackratio=0.5, dotsize=0.2)+theme_classic()
-
-print plot1
-
-#Generate plot that shows average weight vs. feed type (bar)
-plot2= ggplot(chicken, aes(y="weight",x="feed"))+geom_bar(stat="summary",fun_y=numpy.mean)
-print plot2
-
- -
-
-
- -
-
- - -
- -
- - - - -
- -
- -
- -
- -
- - -
-
<ggplot: (7535692365)>
-
-
-
- -
- -
- - - - -
- -
- -
- -
- -
- - -
-
<ggplot: (7535781365)>
-
-
-
- -
-
- -
-
-
-
-
-

Part 2: Null Hypotheses for Difference in Chick Weight (Soybean vs. Sunflower)

Hypotheses

    -
  • Null Hypothesis: There is no difference in chick weight when fed soybean or sunflower seed.
  • -
  • Alternative Hypothesis: There is a significant difference in chick weight between those fed soybean feed and those fed sunflower seed.
  • -
- -
-
-
-
-
-
In [6]:
-
-
-
#Subset the Data to Only Have the Types of Feed we are Interested in
-chicksub=chicken.loc[chicken.feed.isin(['soybean', 'sunflower']),:]
-
-#Make Dataframe for Modeling
-chickFrame= pandas.DataFrame({'y':chicksub.weight,'x':0})
-chickFrame.loc[chicksub.feed=='sunflower','x']=1
-
- -
-
-
- -
-
-
-
-
-

Part 3: Test Null Hypothesis Using Likelihood Ratio Test

    -
  • Step 1: Define Null Model
  • -
  • Step 2: Define Alternative Model
  • -
  • Step 3: Run/Generate Likelihood Ratio Tests
  • -
- -
-
-
-
-
-
In [12]:
-
-
-
#Define Null
-def nllikeNull(pNull,obsNull):
-    B0Null=pNull[0]
-    sigmaNull=pNull[1]
-    expectedNull=B0Null
-    nllNull=-1*norm(expectedNull,sigmaNull).logpdf(obsNull.y).sum()
-    return nllNull
-
-#Define Alternative
-def nlllikeAlt(pAlt,obsAlt):
-    B0Alt=pAlt[0]
-    B1Alt=pAlt[1]
-    sigmaAlt=pAlt[2]
-    expectedAlt=B0Alt+B1Alt*obsAlt.x
-    nllAlt=-1*norm(expectedAlt,sigmaAlt).logpdf(obsAlt.y).sum()
-    return nllAlt
-
- -
-
-
- -
-
-
-
In [8]:
-
-
-
#Null Model
-initialGuessNull=numpy.array([1,1])
-fitNullChickFrame=minimize(nllikeNull,initialGuessNull, method="Nelder-Mead",options={'disp':True},args=chickFrame)
-print("Estimated Parameters: Null Model")
-print(fitNullChickFrame.x)
-print("NLL: Null Model")
-nllNullChickFrame=fitNullChickFrame.fun
-#Print NLL value for Null Model
-print(nllNullChickFrame)
-
- -
-
-
- -
-
- - -
- -
- - -
-
Optimization terminated successfully.
-         Current function value: 145.240592
-         Iterations: 85
-         Function evaluations: 162
-Estimated Parameters: Null Model
-[ 284.49999051   64.53691755]
-NLL: Null Model
-145.240592097
-
-
-
- -
-
- -
-
-
-
In [13]:
-
-
-
#Alternative Model
-initialGuessAlt=numpy.array([1,1,1])
-fitAltChickFrame=minimize(nlllikeAlt,initialGuessAlt,method="Nelder-Mead",options={'disp':True},args=chickFrame)
-print("Estimated Parameters: Alternative Model")
-print(fitAltChickFrame.x)
-print("NLL: Alternative Model")
-nllAltChickFrame=fitAltChickFrame.fun
-#Print NLL value for Alternative Model
-print(nllAltChickFrame)
-
- -
-
-
- -
-
- - -
- -
- - -
-
Optimization terminated successfully.
-         Current function value: 138.469162
-         Iterations: 200
-         Function evaluations: 363
-Estimated Parameters: Alternative Model
-[ 246.42855057   82.48813575   49.73948886]
-NLL: Alternative Model
-138.469161825
-
-
-
- -
-
- -
-
-
-
-
-

Part 4: Interpret Results of Likelihood Ratio Test

    -
  • Step 1: Calculate D value
  • -
  • Step 2: Calculate p value
  • -
-
Conclusions:

As our p-value was less than 0.05, we can report that our alternative hypothesis was correct. This means that there is a significant difference between the chicks who were fed soybean feed vs. those who were fed sunflower feed.

- -
-
-
-
-
-
In [14]:
-
-
-
#Calculate D value
-DchickFrame=2*(nllNullChickFrame-nllAltChickFrame)
-print("D Value")
-print(DchickFrame)
-
-#Calculate p value
-pChickFrame=1-scipy.stats.chi2.cdf(x=DchickFrame,df=1)
-print("p-value")
-print(pChickFrame)
-
- -
-
-
- -
-
- - -
- -
- - -
-
D Value
-13.5428605444
-p-value
-0.000233176728695
-
-
-
- -
-
- -
-
-
- - - - - - From b20e44438db3aefc2df01e52b8cccffa23e0bd01 Mon Sep 17 00:00:00 2001 From: kkilgoreND <31992787+kkilgoreND@users.noreply.github.com> Date: Tue, 21 Nov 2017 12:03:51 -0500 Subject: [PATCH 09/10] Delete Exercise12-Q1.ipynb --- Exercise12-Q1.ipynb | 288 -------------------------------------------- 1 file changed, 288 deletions(-) delete mode 100644 Exercise12-Q1.ipynb diff --git a/Exercise12-Q1.ipynb b/Exercise12-Q1.ipynb deleted file mode 100644 index d4468b6..0000000 --- a/Exercise12-Q1.ipynb +++ /dev/null @@ -1,288 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Exercise 12: Question 1\n", - "\n", - "### Dataset- chichwts.txt\n", - "This dataset describes the attributes of chicks. The first column contains the weights of the chicks in a numeric value and the second column contains a character string which describes the type of feed they received.\n", - "\n", - "#### Import Necessary Packages and Data" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "#Import packages\n", - "import numpy\n", - "import pandas\n", - "import scipy\n", - "import scipy.integrate as spint\n", - "from scipy.stats import norm\n", - "from scipy.optimize import minimize\n", - "from scipy.stats import chi2\n", - "import plotnine\n", - "from plotnine import *\n", - "\n", - "#Load Data\n", - "chicken=pandas.read_csv(\"chickwts.txt\", sep=\",\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Part 1: Generate a Plot to Summarize Data" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhoAAAFzCAYAAAB4qqApAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3XlcVPX+P/DXmYVhE2URxAVwX8uA\nXMK91NJcct9QUxHFTPOWfStvN73Xe+223DLNNDClEDRNLbPcEkUpl8A9xI3FBUURQWYGmOX8/vDH\nPEC0EObMmcHX8/Hw8YBzZubzPscBXnOW90cQRVEEERERkQQUchdAREREtReDBhEREUmGQYOIiIgk\nw6BBREREkmHQICIiIskwaBAREZFkGDSIiIhIMgwaREREJBkGDSIiIpIMgwYRERFJ5rELGjqdDqmp\nqdDpdHKXQkREVOs9dkHj7NmzCA0NxdmzZ+UuhYiIqNZ77IIGERER2Q6DBhEREUmGQYOIiIgkw6BB\nREREkmHQICIiIskwaBAREZFkGDSIiIhIMgwaREREJBkGDSIiIpIMgwYRERFJhkGDiIiIJMOgQURE\nRJJh0CAiIiLJMGgQERGRZBg0iIiISDIMGkRERCQZBg0iIiKSDIMGERERSYZBg4iIiCTDoEFERESS\nYdAgIiIiyTBoEBERkWQYNIiIiEgyDBpEREQkGQYNIiIikgyDBhEREUmGQYOIiIgkw6BBREREkmHQ\nICIiIskwaBAREZFkGDSIiIhIMgwaREREJBkGDSIiIpIMgwYRERFJhkGDiIiIJMOgQURERJJh0CAi\nIpKBwWCAVquFKIpylyIpBg0iIiIbKSwsxIoVK9CuXTs4OTnB3d0dbm5umDZtGlJSUuQuTxIMGkRE\nRDZw+PBhNG3aFLNnz8bZs2cty/V6Pb7++ms8/fTTmDVrFoxGo4xVWp9K7gKIiIhqu5MnT+LZZ59F\nSUnJA0+VlIWLlStXwmg0YtWqVRAEwdZlSoJHNIiIiCQ2Y8YMlJSUwGQy/enjRFFEdHQ0kpOTbVSZ\n9Bg0iIiIJHTixAkcOnToL0NGGZVKheXLl0tcle0waBAREUkoPj4eKlXVr1QwGo347rvvUFxcLGFV\ntsOgQUREJKGcnJxHvoXVaDTi9u3bElVkWwwaREREEtJoNNW6sFOj0UhQje0xaBAREUnoqaeeqvL1\nGWX8/f3h6ekpUUW2xaBBREQkofDw8Ec6OqFQKDB79mwoFLXjT3Tt2AoiIiI7VbduXcyaNatKwUGh\nUMDV1RURERE2qMw2GDSIiIgktmTJEjz33HN/eq2GUqmEk5MTtm3bBl9fXxtWJy0GDSIiIok5OTnh\nxx9/xBtvvAFXV1cIggC1Wg2VSmW59TU0NBQHDhxA79695S3WygSxtk8bd5/U1FSEhoYiJSUFISEh\ncpdDRESPmaKiIsTHx+PYsWMoKSmBn58fxo4di44dO8pdmiQ414md0+v1uHTpkuXN2KhRI7lLIiKi\nGnB3d0dkZKTcZdgMT53YqXPnzmHu3Lnw9fVFhw4dEBoaisaNGyMsLAzx8fG1bnY/IiKqnRg07NCm\nTZvQoUMHrFixAkVFRRXWHTlyBBMmTMDAgQMrrSMiIrI3DBp2Zs+ePRgzZgyMRuMDj1qUNX3Zu3cv\nRo4cCbPZbOsSiYiIqoxBw46IoojZs2dDFMW/7ItvMpmwc+dO/PTTTzaqjoiI6NExaNiRpKQkpKen\nV3nyHaVSiWXLlklcFRERUfXZ1V0nhYWFiIqKgr+/Pz766CMAQFZWFpYtW4bMzEz4+fkhMjKywi1A\nycnJiI2NRX5+Plq3bo05c+Y4bKOTLVu2QKVSVflCT5PJhF27dkGr1cLNzU3i6oiIiB6dXR3RWLNm\nDZo0aWL53mg0YvHixejcuTMSEhIwduxYLFmyBHfu3AEAXLlyBUuXLkVUVBTi4uIQFBSEDz74QK7y\naywvL++RpxIGYNkfRERE9sZugsbp06dx9epV9O3b17Ls1KlTKC4uxogRI6BWq9GjRw8EBAQgOTkZ\nAJCYmIiQkBAEBwdDo9Fg/PjxyMjIQHZ2tlybUSNubm7VmkrY1dVVgmqIiIhqzi6ChsFgwKpVqxAV\nFVXhD212djaCgoKgVCoty5o1a4asrCwA906rNG3a1LLO1dUVDRo0sKx3NN27d3+k/hiCIKB169ao\nV6+ehFURERFVn10Eje+++w4dO3asEBqAe10x77/2wM3NDXq9HgBQXFz8p+vL5OTkIDU1FampqUhL\nS5NgC6xj5MiRjxwa5syZU62jIERERLYge9C4du0afvnlF4wfP77SOhcXF2i12grLtFotXFxcAADO\nzs7Q6XQV1ut0Osv6MqtWrUJoaChCQ0MRHh5u5S2wHmdnZyxYsKBKj1UqlWjYsCEmTpwocVVERETV\nJ/tdJ2lpacjPz8fMmTMBAKWlpSgtLcWkSZMwa9YsZGZmwmw2Q6G4l4kyMjLQs2dPAEBgYCAuXbpk\neS29Xo/r168jMDCwwhgzZszAkCFDLOPZc9h4/fXXcenSJXzxxRcQBOGBF4eqVCp4enpi9+7dqFOn\njgxVEhERVY3sQaN79+4VZlE9cOAAEhMT8Y9//AN16tSBRqPB5s2bMXToUBw+fBhZWVno1q0bAKB3\n7954/fXXcfz4cbRr1w7x8fEICgpCQEBAhTH8/f3h7+9v0+2qLkEQ8PnnnyMkJAT//e9/ceHCBSgU\nCigUCphMJqjVaowfPx7//Oc/K9yhQ0REZI9kDxoajQYajcbyvZubG5RKJTw9PQEAf//737F8+XKs\nX78evr6+ePvtty3XMTRp0gRz5szB559/bumj8eabb8qyHdYkCAIiIiIwbdo0JCUl4dixYyguLoaf\nnx+GDh0KLy8vuUskIiKqEkGsTuMGB5aamorQ0FCkpKRUOJJCRERE1if7xaBERERUezFoEBERkWQY\nNIiIiEgyDBpEREQkGQYNIiIikgyDBhEREUmGQYOIiIgkw6BBREREkmHQICIiIskwaBAREZFkGDSI\niIhIMgwaREREJBkGDSIiIpIMgwYRERFJhkGDiIiIJMOgQURERJJh0CAiIiLJMGgQERGRZBg0iIiI\nSDIMGkRERCQZBg0iIiKSDIMGERERSYZBg4iIiCSjkruA2uru3bvIz8+Hi4sLfHx8IAgCAECv1yMv\nLw8qlQo+Pj5Qqe79FxgMBty6dQtmsxk+Pj7QaDQAALPZjFu3bqGkpAReXl5wc3MDAIiiiNu3b0Or\n1aJu3bqoW7euZezCwkLcuXMHrq6u8Pb2toyt0+mQl5cHJycn+Pj4QKlU2nKXEBE5lAsXLmDlypXY\nunUr7ty5A3d3dzz//PMYM2YMjh49iri4OFy/fh0ajQadOnXCtGnTcP36dcTExCAjIwMKhQKtW7fG\n9OnTodFosHr1apw4cQJGoxGNGzfGlClT0Lp1a8TGxuLAgQPQ6XTw8fHB2LFj8eyzz2Lz5s3Ytm0b\nCgoKUKdOHQwcOBCjRo3CwYMHkZCQgNzcXDg7OyMsLAwvv/wysrKysHr1amRnZ0OhUKB9+/aIiorC\nkCFDoFarZduPgiiKomyjyyA1NRWhoaFISUlBSEiIVV/bZDJh27ZtWL58OX755RfL8qCgIAwaNAg5\nOTn4/vvvYTQaAQCenp4YNWoUSktLsWnTJhQVFQEAnJ2dMWLECHh4eGDLli24fv06AEChUOCFF15A\nixYtsHv3bqSlpVnG6Nq1K7p06YLU1FQcOHDAsrxFixYYMGAAsrOz8eOPP8JkMgEA6tevj5kzZyIy\nMhKNGze26n4gInJkBoMBs2fPxpdffgmlUmn5vQnc+z1sNpsrPaf88vJfC4KAsj+zVXlueeWfW9Xn\nl39OWe0NGzbEDz/8gNDQ0CrvA2ti0LCSwsJCDB8+HL/88kulN6a9UiqVUKvV2LhxIwYNGiR3OUSy\n0Gq1iI+Px8qVK3HhwgWYzWYEBQVh6tSpqF+/PtauXYvU1FSUlpbCx8cHEydOxFNPPYVNmzZh9+7d\n0Ov1qFOnDoYNG4ZZs2bhiSeekHuTqAbMZjPGjh2LTZs2obb8eVQqlXByckJycjKCg4NtPj6DhhUY\nDAb07dsXycnJDhEwyhMEAUqlErt27UKfPn3kLofIpvbs2YORI0eisLAQgiA80qfN+5erVCoYjUaE\nh4cjJibGcvqTHMvXX3+NyZMny12G1SmVSjRr1gzp6emW0+m2wotBrSA+Ph5JSUkOFzKAe9d6mM1m\nREZG1pr0TlQViYmJGDBgAO7evWv5OXiQqi4vOyUaHx+PUaNGOeTvAwI+/fRTKBS170+jyWTC+fPn\nkZiYaPOxa9/elMFnn33m0G9Ms9mMCxcuYN++fXKXQmQTBoMBY8eOhdlsfmiQqC6z2Yxt27YhNjbW\nqq9L0jt9+jSOHTtm9feEvVCpVPjqq69sPq7j/nW0E5mZmUhNTXX4N6ZKpcKGDRvkLoPIJrZu3Yrc\n3FzJfm4VCgWWLl3Ko4QOJjMzU+4SJGU0GnHhwgWbj8ugUUM3b96UuwSrMJlMyM3NlbsMIptYs2aN\npLd3m81mnDx5EqdPn5ZsDLI+Rz4yXVVytDWo/XtVYs7OznKXYBWCIMDFxUXuMohsIiMjwybXUFy+\nfFnyMch6WrduLXcJklKpVGjXrp3Nx2XQqKEWLVrAw8ND7jJqTBRFdO7cWe4yiGyirFFebRmHrKN5\n8+bo1atXrW1maDQaERkZafNxGTRqyMXFBREREQ7/xtRoNLXyli6iB3nyySclDwGCINT6T8i10d/+\n9rdaeceQUqlEp06d0KlTJ5uPzaBhBbNnz4aTk5PDnt8TBAGzZs1CvXr15C6FyCZmzpxpuR1VCkql\nEs8//zwCAwMlG4OkMWTIELz++utyl2FVKpUK3t7e2LhxoyzjO+ZfRjvTtGlTbNmyBSqVyuGObAiC\ngBdffBHvv/++3KUQ2Uz37t3RsWNHyY5qmEwmzJs3T5LXJul9+OGHeP/99+Hs7AxBECo0uCr/dfnf\n9+U/aJZ/X5V/zMMeX/7r+5tpPWzshz2//BhldYSGhuLIkSOyBV92BrWiI0eO4I033sCBAwegVCqh\nUCggiiKMRiNcXFxQXFxs6cQJ3LuX38nJCWazGSaTqcIEa0qlEiqVCiUlJZbJcMoe5+rqCp1OB5VK\nZelmaDKZ4ObmBq1WW+WxPT09MXfuXCxYsIDnkumxk5GRgS5duiA/P9/qRzcWLlyI9957z6qvSbZX\nWFiIuLg4bNu2DXl5efDw8EDfvn0RHh6OX3/9FQkJCcjJyYGLiwuefvppTJ8+HVeuXMGaNWtw6dIl\nKBQKtGnTBhEREXB2dkZ0dDROnjyJ0tJSBAUFYeLEiWjfvj1Wr16N5ORkaLVa+Pr6YuTIkejfvz82\nbtyIn376Cbdv34anpyf69euH8ePHY9++fdiwYQOuX78ONzc3dOnSBREREbh48SJiY2ORkZEBpVKJ\n9u3bY/r06bLNcVKGQUMCaWlp2LJlC/Ly8uDq6opnnnkGzz//PHJzc7F+/XpcvXoVarUa7du3x4gR\nI2A0GrFhw4YK8yyMHTsWderUwffff49jx46hpKQEfn5+GDVqFAIDA7Fv3z4kJiaiqKgInp6eGDRo\nEIKDg3Hq1Cl8//33uH37Ntzc3NCzZ08899xzuHr1Kr799lvk5OTAyckJTz75JIYNG8Y2yfRYy87O\nRnh4OA4cOGBpIQ6gwnxF5VuNl19e9ulSFEXLY+rWrYslS5YgKipKhq0hsk8MGkT02Dt16hRWr16N\n8+fPw2w2o2nTppgyZQr8/f0RExODY8eOobi4GA0aNMDYsWPRtWtXxMXFITExEYWFhfD29sagQYMw\natSoWnPLO5G1MGgQERGRZHgxKBEREUmGQYOIiIgkw6BBREREkmHQICIiIsmweQIREVXL0aNHsWrV\nKpw8eRIGgwGBgYGYNGkS2rdvj6+++goHDhyAVquFn58fRo4cifHjx8Pd3V3ussnGeNcJERE9ksuX\nL2PkyJE4cuRIhf4j5XuOlP+6rOeIq6srPvzwQ/YZeczwiAYREVXZ5cuX0blzZ9y6dQsAKnRVLQsW\n939d9nlWq9Vi1qxZKCgowFtvvWWjikluvEaDiIiqLDw8HLdu3apR2/a3334bhw4dsmJVZM8YNIiI\nqEpOnTqFpKSkGs8No1Kp8Nlnn1mpKrJ3DBpERFQlMTExVpmA0Wg0YuPGjcjPz7dCVWTvGDSIiKhK\n0tPTrTbTrdFoRHZ2tlVei+wbgwYREVVJ+Qs8reExu+nxscWgQUREVdK8eXOrnDoB7t3+2rhxY6u8\nFtk3Bg0iIqqSadOmWeXUiUqlwtChQ+Hj42OFqsjeMWgQEVGVPP300wgNDYVSqazR6xiNRrz66qtW\nqorsHYMGERFVWXx8PDw8PGoUNt5880306dPHilWRPWPQICKiKmvVqhV+/fVXNG3aFAAqBI6yVuPA\nvWswylMoFFCpVPjnP/+J999/3zbFkl1gC3IiInokbdq0QXp6Onbv3o0vvvgCJ06cgNFoRJMmTTBl\nyhS0adMGa9aswYEDB6DX6+Hj44MxY8Zg6tSp8PPzk7t8sjFOqkZERESS4akToseI0WjE5s2b0bdv\nX3h6esLNzQ1BQUF49913cfnyZbnLI6JaiEGD6DGRnp6OVq1aYcSIEdi3bx/u3LkDnU6HrKwsLFmy\nBEFBQVi8eDGbKBGRVVUraCQlJaGoqOiB64qKipCUlFSjoojIujIyMhAWFmZp+WwymSqsN5lMMJvN\nePfdd/Hee+/JUSIR1VLVChp9+vTBH3/88cB16enpvG2JyM5ERkaioKCgUsB4kH/96184duyYDaoi\nosdBtYLGnx1a1Wq1cHFxqXZBRGRd586dw549e6oUMoB7XRuXL18ucVVE9Lio8u2thw4dwq+//mr5\nPj4+HgcPHqzwmOLiYnz//fdo27at9Sokohr55ptvoFQqqxw0jEYj1q1bhy+++AJOTk4SV0dEtV2V\ng8bOnTuxaNEiAPeasnz22WeVHqNWq9G2bVusWLHCehUSUY1UZyrukpIS5OXlwd/fX4KKiOhxUuVT\nJ++99x7MZjPMZjNEUcShQ4cs35f9KykpwfHjxxEWFiZlzUT0CFQqVYWOjY/yPCKimqrWbxKz2Wzt\nOohIIu3atXvkn1kvLy94eXlJVBERPU6q/ZHFZDLh8OHDuHLlCoqLiyutnzRpUpVfa/ny5fj999+h\n1+tRp04d9O/fH6NHjwYAZGVlYdmyZcjMzISfnx8iIyPRsWNHy3OTk5MRGxuL/Px8tG7dGnPmzIGv\nr291N4uo1pk8eTLefvvtKocNpVKJqKioGs/QSUQEABCrISUlRQwMDBQVCoUoCEKlfwqF4pFeLysr\nSywuLhZFURRzc3PFWbNmiQcOHBANBoMYEREhbtiwQSwtLRWTkpLEMWPGiPn5+aIoiuLly5fFUaNG\niampqWJxcbEYHR0tvv76639ZOwAxJSWlOptO5JCmTZsmKpVKEcCf/hMEQXRychKzs7PlLpmIaolq\n3d4aFRWFunXrYu/evbhx4wby8/Mr/Lt9+/YjvV5AQAA0Go3le0EQcO3aNZw6dQrFxcUYMWIE1Go1\nevTogYCAACQnJwMAEhMTERISguDgYGg0GowfPx4ZGRnVuviNqDb79NNP0bFjxz89SiEIAgRBQEJC\nApo0aWLD6oioNqvWqZMzZ85g48aN6NWrl9UKiY2NxY8//oiSkhL4+vqiT58++PXXXxEUFFThl2Oz\nZs2QlZUF4N5plZYtW1rWubq6okGDBsjKykJAQIDVaiNydO7u7ti/fz9mzJiB9evXQxAEy+2uKpUK\nRqMRjRs3RnR0NJ5//nmZqyWi2qRaQaNVq1YoLCy0aiGTJ0/GpEmTcOHCBRw6dAhubm7Q6/Vwc3Or\n8Dg3Nzfk5uYCuNe340Hr9Xp9hWU5OTnIyckBAKSlpVm1biJH4e7ujnXr1uGDDz5ATEwMjh07Br1e\njwYNGmDcuHHo378/FApOf0RE1lWtoPHJJ59g7ty56NixI9q0aWO1YgRBQMuWLZGSkoKEhAT4+PhA\nq9VWeEz5zqPOzs7Q6XQV1ut0ukqdSVetWmXpAUL0uGvUqBHnMyEim6ly0HjiiScq3Iufk5ODDh06\noGHDhqhXr16FxwqCgBMnTlS7KLPZjJycHISEhGDTpk0wm82WT1oZGRno2bMnACAwMBCXLl2yPE+v\n1+P69esIDAys8HozZszAkCFDANw7ohEeHl7t2oiIiKjqqhw0QkNDq9X0568UFRXh6NGj6NKlC5yd\nnXH27Fn8/PPPGDNmDJ544gloNBps3rwZQ4cOxeHDh5GVlYVu3boBAHr37o3XX38dx48fR7t27RAf\nH4+goKBK12f4+/uzwyEREZEMBFH8kxnSbKCoqAhLlizBpUuXYDab4eXlhb59+2L48OEQBAGZmZlY\nvnw5MjMz4evrixkzZlToo3Hw4MEKfTTmzp37p300UlNTERoaipSUFISEhNhiE4mIiB5bsgcNW2PQ\nICIisp1qXQw6derUh65TKBSoW7cugoODMXz4cLi6ula7OCIiInJs1Qoax44dw7Vr13Dz5k14eXnB\n19cXubm5uH37NurXrw83NzcsXboUCxYswN69e9G8eXNr101EREQOoFo3zX/44Yfw8PDAgQMHcOvW\nLfzxxx+4desW9u/fDw8PD3z++edIS0uDRqPBm2++ae2aiYiIyEFUK2i88cYbWLhwoeXujzI9evTA\nP/7xD8yfPx8tW7bE22+/jcTERKsUSkRERI6nWqdO0tPTK/XOKOPp6YmLFy8CAJo3b16pSycRka3p\n9Xrcvn0bGo0GXl5elr48paWlyMvLg0KhgLe3N1Sqe78STSYT8vLyYDQa4e3tbZmLSRRF5OfnQ6fT\nwdPTs0Jn4sLCQhQWFqJOnTqoW7euZblOp0N+fj6cnZ3h5eUlSZuA6rp27Rqio6OxYcMG5OXlwcXF\nBb169cKkSZOQlpaG2NhYXLlyBSqVCh07dsS0adNQXFyMmJgYnD17FqIoonnz5pg6dSr8/PywZs0a\nHD58GKWlpWjQoAHCw8PRqVMnrF+/Hrt27UJRURHq1auHYcOGYfDgwdixYwc2bdqE27dvw9XVFc8+\n+ywmTpyIEydO4Ouvv8a1a9egVqsREhKCqKgo9OvXj91rHVC17joJDg5GvXr1sH379goXe2q1Wgwc\nOBBFRUVISUnB+vXr8dZbbyEzM9OaNdcI7zohejyIooi9e/di+fLl+OGHH2A2mwHc64w6bNgwFBQU\nYNOmTZYPQx4eHhg1ahScnJzw7bffIi8vDwCgVqsxbNgw+Pv7Y9u2bZYmgYIgoG/fvujQoQOSk5Nx\n5MgRy9hPPfUU+vTpg7Nnz2Lnzp2WsQMCAjB79mxMnToV3t7ettwdFYiiiH/84x/4z3/+AwCW+oB7\nF/SXfS8IAsr+RJRf/rDHKJVKyxw65ZV/fPnnlH/ugx5Xpmw+ntatW+PHH39EixYtarT9ZFvVChoH\nDx7EgAEDoFar0adPH9SvXx83b97E3r17YTQasWPHDnTr1g3vvPMOSktL8dFHH0lRe7UwaBDVfiUl\nJXj55Zexfv16yx8pe6FQKODh4YHt27cjLCzM5uOLooh58+Zh6dKlNh+7plQqFerWrYujR4+iadOm\ncpdDVVTtPhrXr1/H//73P/z+++/IycmBv78/OnXqhHnz5qFBgwbWrtNqGDSIajdRFDFu3Dhs3Ljx\ngZ+O7YFCoYCzszN+/fXXCg0IbWH37t3o37+/Tce0JqVSie7du2Pfvn1yl0JVxIZdRFSrOMofUqVS\niW7dumH//v02Hbfs2gh7OspTHWfOnEG7du3kLoOqgFfVEFGtsmzZMstFnfbMZDIhKSkJaWlpNhsz\nNzcX27dvd/iQoVKpsGbNGrnLoCqq8k/jk08+ifj4eHTo0KHSTK73q+nsrURE1aHVarF9+3a7PWVy\nP6VSiQ0bNmDhwoU2Ge/y5cuoDQexTSaTXd1kQH/ukWZvLbuVS6qZXImIauL27dsOEzKAe9dq3Lx5\n06bj1QaCINSabXkcVDlolD9MtXbtWilqISKqEWdnZ7lLeGS2rDkoKMju7sKpDkEQ0LJlS7nLoCqq\ncSQURRHXrl1z+DcuETk+b29vNGnSRO4yqsxgMKBTp042G8/T0xMjR450iGtY/ozZbMa0adPkLoOq\nqNpBY+fOnejatSucnZ3RpEkTnDx5EgAQGRmJdevWWa1AIqKqUigUmD17tsMcVvf29sbw4cNtOubc\nuXMd+oOhUqnE4MGD2UfDgVTrpzEhIQEDBw5E06ZNsWLFigoXFzVv3pxXAxORbKZNm4a6detCqVTK\nXcpfevPNN+Hk5GTTMbt27Yr//ve/Nh3TWlQqFQICAhATEyN3KfQIqhU0/vWvf+G1115DQkICXn75\n5Qrr2rdvj9OnT1ujNiKiR+bt7Y2ff/4ZLi4udh02Jk+ejDfeeEOWsd98802sXLkS7u7uAFDh4v7y\nR4PK779H/br8a/7VXYoP+rr8a5Wd6unVqxcOHTqE+vXrP/T1yP5U60TdpUuXMHDgwAeuc3NzQ0FB\nQY2KIiKqiS5duuDw4cOYN28edu/eDYVCYfkDajAY4OTkZDl9UPYHzWAwQKlUQqFQwGAwQK1WA4Dl\ncRqNBsXFxVCpVBAEAWazGSaTCa6urtDpdJbloijCaDTCxcUFer3e8pplY/j6+uL//u//MG/ePFnv\n3psxYwYmTpyI9evX47vvvsONGzfg7u6O7t27Y+rUqTh9+jS+/vprZGdnw8nJCU8++SQiIyOh0+kQ\nHR2N9PR0mM1my6RqjRo1wpdffonff/8dxcXFaNiwIcaNG4dnnnkG33zzDX755RcUFhbC29sbQ4YM\nwUsvvYQff/wRW7Zswa1bt+Du7o4+ffpg8uTJSE1NRVxcHK5cuQKNRoPg4GDMmDED7du3l21/UfVV\nqzNoUFAQ5s+fj1deeQUmkwlqtRq///47QkJCsHTpUnzxxRc4e/asFPXWGDuDEj1eLl26hG+//Ra5\nubnQaDQICQnB0KFDUVhYiISEBGRlZUGhUKBly5YYM2YMVCoVNm3ahDNnzsBgMKBx48YYO3Ys/Pz8\n8NNPP+G3336DXq+3XF/Rtm1ZDLXoAAAgAElEQVRbHDp0CDt27EBBQQE8PDzQt29f9OjRA+fPn8em\nTZtw8+ZNuLi4oFOnThg8eLDDX4xJf81sNmPPnj2IiYlBWloazGYzWrRogalTp8Lf3x8xMTE4cuQI\nSkpK4O/vjwkTJiAsLAzffPMNdu/ejbt378LLywtDhw7F1KlTHfooTrWCxjvvvIPo6GisX78evXv3\nhlqtRkpKCtRqNZ5//nlERUXh73//uxT11hiDBhERSenUqVMYPnw4Lly4UOF24vKz05af6fZhs+SW\nfa9QKPDWW29h0aJFDnOhc3nVitULFy7EmTNn0K9fP8tUxwMGDMDNmzcxaNAgvPXWW1YtkoiIyBGc\nOnUKYWFh0Ov1AFDhDp/yAaIsZACocEPF/Q3nzGYzzGYzFi9ejFu3bmHFihUO1zCzWkHDyckJ33//\nPRITE7Fr1y7k5eXBy8sLffv2Rd++fa1dIxERkd0zm80YNmwY9Hp9hSBhLStXrkS/fv1sfkt0TVUr\naAwZMgQ9e/ZEjx49sHjxYru+spuIiMgWdu3ahYsXL0r2+kqlEp988onDBY1qnexxdXXFp59+imee\neQb16tVDv3798M9//hP79u1DcXGxtWskIiKye19++aWkH7xNJhMOHjyI8+fPSzaGFKoVNNavX48r\nV67g3LlzWLp0KRo3bozY2Fg899xzqFevHnr06GHtOomIiOxaenq6JKdM7iflURMp1OgeqxYtWqBF\nixbo1asX9u3bh3Xr1mHfvn349ddfrVUfERERObBqBY2zZ89i//79ln83btxA+/bt0bNnT0RFRaFn\nz57WrpOIiMiutWzZ0iZHNRxtnpdqBY127drBxcUFkydPxsqVK9G9e3d4enpau7ZarbS0FD///DMy\nMzMtzYL69esHQRCwf/9+nDlzBkajEY0aNcKLL74IV1dXnDhxAr/99ht0Oh18fHwwcOBA+Pj4ICsr\nC3v27EFBQQHq1KmD5557Ds2aNZN7E8kGiouLsXHjRsTGxuLy5ctQqVR46qmnMH36dOh0OsTExODs\n2bNVahbUtWtXrFu3Drt27bI0C3rppZcsHRw3b96MvLw8uLm54dlnn8XMmTPRqlUruXcBkd2YPn06\nvv/+e8leX6FQoEuXLmjdurVkY0hCrIYXX3xR9PT0FJ2cnMRu3bqJb7/9trhjxw7x7t271Xk5m0pJ\nSREBiCkpKbKMr9VqxQULFoheXl4iAFGhUIgKhUIEINatW9eyXBAEy3IXFxfRz8/PslypVIoARKVS\nKTZs2FAUBMHyfdlj+vfvLyYnJ8uyjWQbW7duFT09PS3vIwAV3gf3f/2wx5T/V/4xZe+lBz2u7Pkj\nR44Ui4qK5N4VRHbBaDSKQUFBD/35ssa/DRs2yL2Zj6xanUH/f0DByZMnkZSUhKSkJBw4cAC3b99G\nx44d0atXL3z00UfVeVnJydkZtKCgAM899xyOHTtWqSmLtSmVSgiCgHXr1mH06NGSjkW2t3HjRowZ\nMwZAxWY/tqZUKtG5c2fs3bsXzs7OstVBZC+OHTuGbt26obS01KqnUARBwJQpUxATE+NwDbuqdUTj\nfteuXRMTEhLE3r17Wz6J2yu5jmiYzWaxb9++kibdB/1TqVTioUOHbLqtJK0bN26ITk5ODz3aYOt/\nCoVCfOedd+TeLUR2IzU1VQwMDLTKUUWFQiEqlUrxzTffFE0mk9ybVi3VukYjMzMT+/fvtxzNuHTp\nEtRqNYKDgzF//nz06tWrOi9bqx0+fBh79uyRZex///vf+OGHH2QZm6wvJiYGRqNR1iMZ5ZnNZqxY\nsQLvvvsuj2oQAQgODsbFixexY8cOrFq1qsJMt9OmTUPDhg0t10np9Xo0bNjQcp1UXFxchUnVXnrp\nJURERMDf31/uzaq2ap06USgUcHZ2RufOndGzZ0/06tULYWFhcHFxkaJGq5Lr1EnZdMzl+97biiAI\nyMzMREBAgM3HJusLCAjA5cuX5S6jkg0bNvA0HRFVUq0jGklJSejcuTOcnJysXU+ttWfPHllCBnDv\nHP7Bgwcxfvx4WcYn6zGZTHYZMlQqlcM1ESIi26hW0Ojevbu166j1dDqdrONrtVpZxycioseT401s\n76Dk7jMi9/hkHUqlEk2aNJG7jEqMRiOaN28udxlEZIcYNGxk1KhRss1y6+zsjH79+skyNlnfzJkz\noVDY149uvXr1MGTIELnLICI7ZF+/rWqxmTNnSt4740FUKhUmTZqEunXr2nxskkZERARUKpXd3Euv\nUCgwa9Ys3nFCRA/EoGEjzZs3x5w5c2z6x0GpVMLDwwPvvPOOzcYk6fn6+iIuLg4AZA8bSqUSXbp0\nwbvvvitrHURkvxg0bOjjjz/G1KlTAUDy0yhKpRJeXl7Yu3cvAgMDJR2LbG/UqFHYsmUL6tWrBwAV\nTqWUf2+V//phjynv/lMyZUHm/kBT9vxhw4Zh9+7dPJpBRA9V7RbkjkrOFuTAvVtNf/rpJyxbtgy7\ndu2yNF1SKBTo1asXVCoVEhMTK9wK+/TTT8PPzw9JSUm4e/euZXmLFi3Qrl07HD16FDk5OZblvr6+\neOWVVzBz5kz4+vrabuPI5oqLi7Fp0ybExsYiOzsbarUaHTt2RGRkJHQ6Hb788ssKzYLKGv9ER0fj\n6NGjKC4uhr+/P8LDw9G1a1d88803lZoFvfTSS9i+fTs2bdqEvLw8uLu7c1I1IqoyBg0ZXbt2DZcv\nX4ZSqURgYCDq168PAMjPz8elS5dgMBjQsGFDS6MtvV6P9PR06PV6eHl5oVWrVhAEASaTCWlpaSgs\nLESdOnXQtm1bqFTVunOZiIjIqhg0iIiISDK8RoOIiIgkw6BBREREkmHQICIiIskwaBAREZFkGDSI\niIhIMgwaREREJBkGDXJIxcXFiIuLQ1hYGOrWrQt3d3e0bNkS//73v7F+/XoMHjwYXl5ecHV1RaNG\njfC3v/0N586dk7tsIqLHDvtokMM5evQoBg0ahNzcXCgUigdOVnf/cqVSCZPJhDlz5uB///ufbDPp\nEhE9btg+khzK8ePH0atXL5SWlgLAQ2fEvX+5yWQCACxbtgxarRbR0dGyT0hGRPQ44KkTchiiKGLC\nhAkoLS21BIfqvMbq1avx888/W7k6IiJ6EAYNchgHDx7EH3/8Ue2QUUapVGLZsmVWqoqIiP4MgwY5\njNjYWKtMFmcymbBz507cuHHDClUREdGfYdAgh5GZmQmj0WiV1xJFEVevXrXKaxER0cMxaJDDUKvV\ndv16RERUGYMGOYwOHTpY5dQJAGg0GgQGBlrltYiI6OEYNMhhTJ8+3SqnTlQqFSZMmAAPDw8rVEVE\nRH+GQYMcRqtWrfDCCy/UuNmWyWTCq6++aqWqiIjozzBokEP5+uuvERQUVKOwsXLlSjz11FNWrIqI\niB6GQYMcSv369XHo0CEMGDAAACoEjvJfC4Jg6fxZttzX1xcbNmxAZGSkDSsmInq8sQU5ORwfHx9s\n27YNFy9eRExMDM6cOYPS0lI0adIEEydORJs2bbB27Vr89ttv0Ol08PHxwYgRIzB48GDeaUJEZGOc\nVI2IiIgkw1MnREREJBkGDSIiIpIMgwYRERFJhkGDiIiIJCP7XScGgwErV67EiRMncPfuXfj4+GD0\n6NHo1asXACArKwvLli1DZmYm/Pz8EBkZiY4dO1qen5ycjNjYWOTn56N169aYM2cOfH195docIiIi\nKkf2IxomkwleXl5YvHgxEhIS8Morr+CLL77A2bNnYTQasXjxYnTu3BkJCQkYO3YslixZgjt37gAA\nrly5gqVLlyIqKgpxcXEICgrCBx98IPMWERERURnZg4azszMmTJiABg0aQKFQoF27dmjbti3S0tJw\n6tQpFBcXY8SIEVCr1ejRowcCAgKQnJwMAEhMTERISAiCg4Oh0Wgwfvx4ZGRkIDs7W+atIiJyfGaz\nGQUFBdBqtSjfCUEURRQVFaGwsBD3d0jQ6/W4c+cOzGZzheWlpaXIz8+vNF+R0WhEfn4+SkpKpNsQ\nkpXsp07uV1xcjAsXLmDw4MHIzs6u1G66WbNmyMrKAnDvtErLli0t61xdXdGgQQNkZWUhICDA5rUT\nEdUGJ06cwBdffIGvv/4aer0eANC4cWOMHz8epaWliIuLw61btwAAdevWxYQJE+Dp6YkNGzbgwoUL\nAAAnJyeMHDkSrVq1wo4dO3Do0CEAgEKhQL9+/RAWFoajR4/ip59+soSSkJAQvPrqqxgzZgxcXFxk\n2HKSgl0FDbPZjE8//RQtW7ZEcHAwzp07Bzc3twqPcXNzQ25uLoB7oeRB68t+MMrk5OQgJycHAJCW\nlibhFhAROS6z2YwFCxbg/fffh0qlqnD04cqVKw88NV1QUIAVK1ZUWl5aWor4+HgAsEwHUDbGzp07\nsXPnzkrPOX78OKZMmYKFCxdi9+7dFT5IkuOym6AhiiJWrFiB27dvY9GiRRAEAS4uLtBqtRUep9Vq\nLUnX2dkZOp2uwnqdTlcpCa9atQqLFi2SdgOIiBxcWcgAUOkUR01UtQF12ZGNq1evokePHvj999/R\nuHFjq9VB8pD9Gg3g3ptw5cqVyMjIwMKFCy1BISAgAJmZmRXO9WVkZCAwMBAAEBgYiEuXLlnW6fV6\nXL9+3bK+zIwZM5CSkoKUlBTExcXZYIuIiBxLWlqaJWTIzWg0Ii8vD3//+9/lLoWswC6CxqpVq5Ce\nno5FixbB1dXVsvyJJ56ARqPB5s2bYTAYcPDgQWRlZaFbt24AgN69eyM1NRXHjx+3HKYLCgqqdH2G\nv78/QkJCEBISgrZt29p024iIHMGKFSugUtnNQW4YjUbEx8dbrgUhxyX7pGq5ubmIiIiAWq2ucNHn\nyJEjMXr0aGRmZmL58uXIzMyEr68vZsyYUaGPxsGDByv00Zg7d+6f9tHgpGpERJXVq1cPBQUFcpdR\ngSAIWLVqFaZPny53KVQDssdXX19f/PDDDw9dHxQUhI8++uih67t3747u3btLURoR0WPBaDTaXcgA\nAKVSiRs3bshdBtWQXZw6ISIi+SiVSigU9vfnQBRFaDQaucugGrK/dxYREdmUIAh48skn7S5smEwm\nBAcHy10G1ZB9vauIiEgWr776aqVunnISBAHNmjXDs88+K3cpVEMMGkREhHHjxqFBgwYVLsqXkyiK\nePvtt+3uKAs9OtkvBiUisifnzp1DdHQ0Tp8+DYPBgCZNmmDixIlo164d1qxZg99++w1FRUXw9fXF\n8OHD8dJLL8HJyUnusmvMxcUFO3fuRK9evXD37l2YTCZZ65k9ezamTZsmaw1kHbLf3mprvL2ViB7k\n5s2bmDRpEnbs2AGlUmn5Q1v+a0EQLF0uy5Z7e3tj2bJlGDdunGy1W9P58+cxa9Ys7NmzB0qlEoIg\nQBAEGAyGCkcXyo58mEwmmM1mS8tytVpt2Udl3xsMhkrLnZycUFpaaundUTaGr68vFixYgFdffbVC\n63JyXDyiQeRgSkpKsHnzZqxfvx7Xrl2Ds7MzOnXqhOnTp+PKlStYu3YtLly4AIVCgTZt2mD69Olw\ndnZGdHQ0Tp48CYPBgICAAEyaNAkdOnTA6tWrcfDgQWi1Wvj5+WHEiBHo378/vv32W/z888/Iz89H\n3bp18fzzz2P8+PFITEzEt99+i+vXr8PFxQXPPPMMIiMj0bx5c7l3TbXl5uaia9euuHz5MgBU+DRf\n/uvyn8vKlufl5WH8+PG4c+cOoqKibFSxdFq2bIndu3fj4sWLWLduHa5evQq1Wo327dtjwoQJKCkp\nQVxcHC5cuACz2YygoCCEh4dbJlU7duwYSkpK4OfnhzFjxqBNmzbYvn07EhMTUVRUBE9PTwwaNAjd\nu3fH4cOHsXXrVty+fRtubm7o2bMnBg8eDLVaLfduICviEQ0iB7Jp0ybMmDEDt2/fhkKhsFy8V/7r\nh30aL//1w55b/hN7+a/v//5B440YMQJr1qxBnTp1JN0HUnj++eexd+/eGs3vIQgCUlJSeJcE0X14\nlQ2Rg4iNjcWoUaNw+/ZtAKhwh0D5rx/2abz81w97bvlgcf9nkPLfP2i8rVu3onfv3igqKnqErZJf\neno6du3aVeNJxJRKJT777DMrVUVUezBoEDmAixcv2v2FcSaTCSdOnMD8+fPlLuWRREdHW2WOj7K5\nOQoLC61QFVHtwaBB5AC++OILuUuoEpPJhLVr1+LOnTtyl1JlZ86csdqU6KWlpcjMzLTKaxHVFgwa\nRHbOYDAgOjpa9tsNq6qkpATx8fFyl1FlBoPBqq/nKP9PRLbCoEFk527duuVQh+NVKhXOnTsndxlV\n1rRpU6tNjy4IAho1amSV1yKqLRg0iOycPbWFripH+lT/8ssvW+XUiUqlwoABA+Dr62uFqohqDwYN\nIjtXv359uLi4yF1GlZlMJgQFBcldRpWFhYWhffv2NW69bTQaMXv2bCtVRVR7MGgQ2TknJydMmjTJ\naof3paZQKBAeHi53GVUmCALWrVsHjUZT7bAhCAIiIyPxwgsvWLk6IsfHoEHkAGbNmmW1OyOkpFQq\nMWrUKPj5+cldyiPp2LEjkpKSUL9+fQB46ERe9y8va9E9b948rFixgi2ziR6AQYPIATz55JN4//33\n5S7jT6lUKjRp0gRLly6Vu5RqCQ0NRVZWFhISEtCtWzd4enqiTp06aN26Nd5//31s2rQJQ4YMgY+P\nD9zd3dGkSRP87W9/w/nz5/Hxxx/bzaynRPaGLciJHMjSpUsxf/58y0RWZR7WUvxhrcnLK/+Y8u5v\nQf6wx5VNptWpUyd8//338Pf3r9lGElGt4hgnfYkIADB37lxMmDABa9euxTfffIMbN25Ao9Ggc+fO\nmDZtGnJychATE4OMjAwoFAq0bt0akZGR0Gg0FSZVa9KkCaZMmYLWrVsjNjYWSUlJ0Ov18PHxwZgx\nY/Dss89iy5Yt+OGHH1BQUAAPDw8MGDAAo0aNQnJyMuLj45GbmwtnZ2eEhYXhlVdeQbdu3XjqgIgq\n4RENIiIikgyv0SAiIiLJMGgQERGRZBg0iIiISDIMGkRERCQZBg0iIiKSDIMGERERSYZBg4iIiCTD\noEFERESSYdAgIiIiyTBoEBERkWQYNIiIiEgynFSNbEoURRw4cADbt2/HnTt34O7ujj59+mDAgAFI\nT0/Hhg0bLBOFhYSEYPTo0cjPz0dcXBwyMzOhUCjQsmVLhIeHQ61WIz4+HmfOnIHRaESjRo0wYcIE\nNGrUCFu3bsVvv/0GnU4HHx8fDB8+HCEhIdi7dy927tyJgoIC1KlTB/369UO/fv1w6tQpbNq0CTdv\n3oSzszM6d+6MESNG4MaNG1i3bh0uX74MhUKBtm3bYvz48fD09JR7VxIROQROqkY2s23bNsyfPx/p\n6elQqVSWmT4NBgOcnJxQWlpaablKpYLJZIIgCFAqlQAAo9EIQRAgCALMZjNUqnt5uWzqdLVaDYPB\nALVaDeBeuDEajZXGeNjy8mMbjUYolUooFArL2E5OTpg8eTI+/vhjuLu723QfEhE5Gh7RIJtYvXo1\npk+fbvneaDRWWF9aWvrA5WXfi6IIs9lsWV4+HxsMhgrPKfv+/uUPG+OvxjaZTDCZTJblJSUlWL16\nNQ4fPoykpCR4eHhU3mAiIgLAazTIBg4dOoTp06dDFEXUlgNoJpMJp0+fxuTJk+UuhYjIrjFokOQ+\n/vhjy2mP2sRkMmHr1q24cOGC3KUQEdktBg2S1PXr17Fly5ZKpyVqC6VSiZUrV8pdBhGR3WLQIEmd\nOHGiwvUNtY3JZMKRI0fkLoOIyG4xaJCkSkpK5C5BcsXFxXKXQERktxg0SFINGjSQuwRJKRQKNGzY\nUO4yiIjsFoMGSerpp59GYGCg3GVIxmw2Y8KECXKXQURktxg0SFIKhQKvvvqqpRFWbSIIAurXr4+X\nXnpJ7lKIiOwWgwZJLioqCqGhobXqFtey4LR69WpLB1IiIqqMQYMk5+rqip07d6JLly4A4PCBQ6FQ\nQK1WY8OGDRg8eLDc5RAR2TW2ICeb8PLyQlJSErZv347ly5djz549li6hnTp1wgsvvIDz58/ju+++\ns7QOb9asGcaMGYP8/HysW7cOd+/eBQB4e3tXmFTt2rVrAAAXFxeMGzcODRs2xJYtW3DmzBkA94LB\noEGDEBwcjP3792Pfvn2Wup555hn0798fZ86cwdatWy39Plq1aoVRo0bh5s2bWLduHbRaLQDA19cX\nUVFRmD59Oho1amSTfUdE5Mg4qRrJorS0FHfv3oWbmxucnZ0ty41GIwoLC+Hs7AwXFxfLKQqz2YzC\nwkIolUq4u7tblouiCK1WC4PBAA8PjwpHS/R6PfR6PTw8PCwTrwH3brktKiqCu7s7NBpNtccmIqK/\nxiMaJAsnJyd4e3tXWq5SqeDl5VVpuUKhQL169SotFwThoTOouri4wMXFpdJyjUZTIWBUd2wiIvpr\nvEaDiIiIJMOgQURERJJh0CAiIiLJMGgQERGRZBg0iIiISDIMGkRERCQZBg0iIiKSDIMGERERSYZB\ng4iIiCTDoEFERESSYdAgIiIiyTBoEBERkWQYNIiIiEgyDBpEREQkGQYNIiIikgyDBhEREUmGQYOI\niIgkw6BBREREkmHQICIiIskwaBAREZFkVHIX8OOPP2Lv3r3IzMzEM888g/nz51vWZWVlYdmyZcjM\nzISfnx8iIyPRsWNHy/rk5GTExsYiPz8frVu3xpw5c+Dr6yvHZhAREdEDyH5Ew8vLC6NHj0b//v0r\nLDcajVi8eDE6d+6MhIQEjB07FkuWLMGdO3cAAFeuXMHSpUsRFRWFuLg4BAUF4YMPPpBjE4iIiOgh\nZA8aYWFh6Nq1Kzw8PCosP3XqFIqLizFixAio1Wr06NEDAQEBSE5OBgAkJiYiJCQEwcHB0Gg0GD9+\nPDIyMpCdnS3HZhAREdEDyB40HiY7OxtBQUFQKpWWZc2aNUNWVhaAe6dVmjZtalnn6uqKBg0aWNYT\nERGR/GS/RuNh9Ho93NzcKixzc3NDbm4uAKC4uPiB6/V6faXXysnJQU5ODgAgLS1NooqJiIjofnYb\nNFxcXKDVaiss02q1cHFxAQA4OztDp9NVWK/T6Szry1u1ahUWLVokXbFERET0QHZ76iQgIACZmZkw\nm82WZRkZGQgMDAQABAYG4tKlS5Z1er0e169ft6wvb8aMGUhJSUFKSgri4uKkL56IiIgA2EHQMJlM\nKC0thdlshtlsRmlpKYxGI5544gloNBps3rwZBoMBBw8eRFZWFrp16wYA6N27N1JTU3H8+HGUlpYi\nPj4eQUFBCAgIqDSGv78/QkJCEBISgrZt29p6E4mIiB5bgiiKopwFxMfHY/369RWWPfvss3jttdeQ\nmZmJ5cuXIzMzE76+vpgxY0aFPhoHDx6s0Edj7ty5f9lHIzU1FaGhoUhJSUFISIgk20RERET3yB40\nbI1Bg4iIyHZkP3VCREREtReDBhEREUmGQYOIiIgkw6BBREREkmHQICIiIsnYbWdQqZS1KGcrciIi\noupp06YNXF1dq/TYxy5oZGZmAgDCw8PlLYSIiMhBPUqLiMeuj8atW7ewc+dOBAUFPXBeFHuUlpaG\n8PBwxMXFsbPpX+C+qjruq6rjvqo67quqc+R9xSMaf8LHxwcTJkyQu4xqadu2LZuMVRH3VdVxX1Ud\n91XVcV9VXW3fV7wYlIiIiCSjXLhw4UK5i6C/5u7ujt69e6NOnTpyl2L3uK+qjvuq6rivqo77quoe\nh3312F2jQURERLbDUydEREQkGQYNIiIikgyDRi2yYsUKxMfHy10GACAiIgIpKSmy1hAfH48PP/xQ\n1hqsqWyffvvtt/j000/lLqeC2NhYu6vJ0Q0ZMgRXrlyRu4wq+fTTTxEbGyt3GXaroKAACxYswJgx\nY7Bs2bJa97vprzx2t7fWZrNmzZK7BLKB0aNHy13CYyEiIgJRUVEIDQ2VuxRycDt37oSzszPWr18P\nQRDs5gOhrfCIBtk1k8kkdwlERDVy48YNBAQEQBAEuUsBYPvfqzyiIbG8vDx89dVXOHXqFIxGI9q3\nb48FCxbgww8/xOnTp1FSUoKgoCDMnDkTQUFBAO61dl27di1yc3Oh0WjQp08fTJkyBQBw/vx5rF69\nGllZWfD09ER4eDjCwsIA3Dt86enpicmTJ+PUqVP48MMPMXr0aGzcuBFmsxnDhg3D8OHDbbbt2dnZ\niIuLw7Vr19CuXTu8/vrrcHd3R0pKCmJjY5Gbm4vGjRsjIiICbdq0sWyDk5MT7ty5g+PHj+OVV15B\nw4YNsWrVKly+fBlqtRrBwcF4/fXXAQDXrl3Dl19+ifPnz8PNzQ0vvfQSBg4caKnBYDDg448/xpEj\nR+Dj44OoqCh06NABAKDT6bB27VocPXoUJpMJYWFhmDp1KpycnKDT6fDxxx/j3LlzMBqNaNOmDWbN\nmoX69esDAN555x20a9cOaWlpuHDhAgIDA/HGG2/A19dX8v0aHx+Pq1evYv78+bhx4wamT5+OefPm\nYd26ddBqtXjuuecQEREBALh+/TqWLVuGixcvQqlUIiAgAEuWLAEA5OfnIzo6GqdOnYJarUbfvn0x\nduxYKBT3Pn8kJibiu+++Q15eHgIDAzFr1iwEBAQAADIyMrBs2TJcvXoV7du3h7e3t+TbXSYiIgID\nBw5EUlISrl69iuDgYMyZMwfR0dE4dOgQfH198cYbbyAwMPBPt/H69etYvnw5MjIyAABPPfUUoqKi\n4O7ujg8//BA3b97EkiVLoFAoMHjwYEycOBFDhgxBVFQUfvjhB9y6dQt9+vTBhAkTsHTpUpw5cwaB\ngYF488034ePjA+DP35/nz59HdHS05X39zDPPICIiAmq1WvJ9uGXLFmzbtg1arRYeHh6YOHEievTo\ngc2bN2PHjh3Q6XRo164dZs6cCW9vb2zZsgUnT57Ee++9Z3mN7777Dn/88QfeffddAEBRUREWLVqE\nP/74A40bN8acOXMQGFlNYLIAABMKSURBVBgI4M/fa3/2/1D2//3iiy8iKSmp0u8SW+2bK1euWH7m\nAKC0tBQjR45EdHQ0/Pz88Omnn0Kj0SA/Px8nTpyAr68v5s2bh2bNmuF///sfDhw4AEEQsH37drz2\n2muVxnzY78Rbt24hKioK8fHxUKvV+Oabb7B582bEx8fDxcUFGzduxLVr1zB37lwYDAYkJCQgKSkJ\ner0ewcHBmDlzJtzd3S2/J+bOnYuEhARoNBp8/vnnkuy/BxJJMkajUXzttdfEFStWiFqtViwtLRVP\nnToliqIo7t6927IsJiZGfOWVVyzPmzRpkrh3715RFEVRp9OJZ8+eFUVRFPPy8sTx48eLv/32m2g0\nGsWzZ8+K48aNE7Ozs0VRFMVPPvlEXLt2rSiKonjy5Elx6NCh4ldffSWWlpaK6enp4rBhw8SrV6/a\nZNunTZsmzpkzR8zNzRV1Op04f/58MS4uTrx69ao4YsQI8ciRI6LRaBR/+eUXcezYsWJBQYFlG0aN\nGiWeOHFCNJvNYnFxsfjGG2+IGzZsEE0mk1hSUiKeOXNGFEVRLC4uFqdOnSpu375dNBgM4uXLl8Up\nU6aIqampoiiK4rp168ShQ4eKe/fuFY1Go7hnzx5x7Nix4t27d0VRFMX//Oc/4ieffCJqtVrx7t27\n4j/+8f/au/Ogpq63D+DfLBDWyBLACOMOWiTijqNScLe1MChqRW0VcXfGpbZuI1odlw5tRa3oVMUi\notVq3TpWy7hXqyIGnUKtgqClFsIaFklCluf9w9f7E4Gilmg783xm/CPee8+5z3PPPZyck+SupOTk\nZCIiqqqqosuXL5Ner6eamhqKi4uj1atXC/EtW7aMpk6dSg8ePKDa2lrasGEDbdy40eo5TU9Pp337\n9lFcXBwRERUWFlJYWBht3LiRdDodFRQU0Pjx4+nWrVtERBQXF0cJCQlkNBrJaDQK7c9sNtNHH31E\nycnJZDAYqKSkhObNm0enT58mIqLr169TTEwM5ebmkslkolOnTtG0adOotraWjEYjxcTE0MGDB8lo\nNJJarabIyEiKj4+3avzP5mHBggVUUlJCFRUVNHPmTJo1axalp6eTyWSir7/+mmJjY5uMsaCggNRq\nNdXW1lJFRQUtW7aMtm/fXi/fzwoLC6NVq1ZRVVUVaTQaioqKovnz59O9e/fIaDTS2rVr6auvviKi\npttnTk4O/fbbb2QymUij0dCcOXPoyJEjderKz89v9vzl5+dTZGSkUHZpaSk9fPiQzpw5QzExMZSf\nn096vZ4SEhJo8eLFRERUVlZGkZGRVFZWJpQzd+5cunz5MhE9uW8jIyMpIyODjEYjHThwgKZPn04m\nk6lZrkNDfYk1NJabZ+85IiKDwUBhYWFUWFgoxD9+/HjKysoik8lEO3bsoCVLlgj7P9s3E1Gd8prq\nE6dPny70eZ988glNnz5daJcrV66kM2fOEBHRrl27aOXKlVReXk56vZ7i4+Ppiy++IKL/9RNxcXH0\n+PFj0uv1VslfY3jpxIqys7Oh0Wgwbdo0ODg4wMbGRng3PWTIEOH/xo8fjz/++AOVlZUAAKlUioKC\nAlRWVsLe3h6dOnUC8OQdZmBgIPr27QuJRIJOnTqhb9++uHLlSoP1i8ViTJo0CTY2NvDz84O3t7fw\nruF1CA8Ph4eHB+zt7dGvXz/cv38fP//8M3r06IHevXtDIpFg0KBB8Pb2xrVr14Tjevfuja5du0Ik\nEkEmk0EqlaKoqAhlZWWwtbWFv78/AODGjRtwdXXFu+++C6lUCh8fHwwbNgyXLl0SymrXrh0GDhwI\niUSCwYMHw9PTEzdu3IBWq0VaWhpmzJgBBwcHODk5Ydy4ccKxTk5O6N+/P2QyGezt7TFmzBhkZWXV\niW/w4MFo06YNbGxs8Pbbb+P+/fuvIasNmzBhAuzs7NCyZUt06dIFubm5AJ60pbKyMhQVFUEqlQrt\nLycnByUlJZg0aRJsbW3h7u6OiIgIIf5Tp05h9OjRaNeuHSQSCUaMGAGRSIS7d+/i999/h8FgwJgx\nYyCVStG9e/fX/vPJ7733Htzd3SGXy9GjRw94enqiZ8+ekEgkCA4Oxv3795uMsWXLlujevTtsbGwg\nl8sRHh5e7xo3JDIyEk5OTvD09IS/vz/8/Pzg6+sLqVSKAQMGCLlvqn126NABb731FiQSCTw9PTF8\n+HBkZmZaL2n/TyKRAHgy42gwGODm5obWrVvjwoULCA8Ph4+PD2QyGaZMmYJ79+6hoKAArq6u6Nat\nGy5evAjgSfspKytDnz59hHJ79uyJbt26QSqVYsyYMaipqcHdu3eb5To01Je8zty8iKCgIPj7+wv9\n2tN20JSm+sSAgAD8+uuvMBgMKCgowMiRI5GZmQmTyYQ7d+5ApVKBiPDTTz9h2rRpcHFxgUwmw8SJ\nE3HlypU6yyRRUVFwcHCATCZ7ycz8M7x0YkUlJSXw8PCoNxVqNpuRkpKCK1euoKKiQpiqrqyshFwu\nx/Lly3Hw4EHMnDkTSqUSUVFR6N27N4qKinD9+nVERUXVKSs0NLTB+p2cnOrULZPJoNfrmz/QRri4\nuNSru7S0tN7ygpeXF8rKyoTXT5cnnpo3bx7279+PhQsXQi6XIyIiAkOHDoVGo0Fubm6dfFgsFmEg\n0lBZnp6ewh9ei8WCmJgYYRsRwWKxAAAMBgN27doFtVqN6upqAIBOp4PRaBRy6urqWi++N+X5c9Hp\ndACA6Oho7N+/HytWrIBEIsHw4cMxZswYFBUVoaKiAhMmTBCOs1gswpR/UVERkpKSsHfvXmG70WhE\naWkpRCIR3NzchHYLPMnz48ePrR2m4Pm21dC1aCpGrVaLnTt3IisrCzqdDkT0Qg9afL6u58/lae6b\nap+PHj1CYmIicnJyYDAYYDab0a5du5dNxUtTKpVYsGABfvjhB2zevBldunTB1KlT692bDg4OcHZ2\nRmlpKZRKJYYMGYJvv/0WEREROH/+PIKDg+v0L8/eaxKJBO7u7kJ7+afXoaG+xBoay82LeNX+oKk+\nUaVS4ezZs/Dz80OnTp0QGBiIrVu3Ijs7G3K5HJ6entBqtdDr9Vi8eHGdckQiEbRarfD6+f7wdeGB\nhhUpFAoUFxfDZDJBKv1fqi9duoSrV69izZo18PLyQk1NTZ3OqEOHDli+fDnMZjMuX76Mzz77DPv2\n7YOHhweCg4MbXOP7r3B3d6/3bkSj0SAwMFB4/fwHppRKJRYtWgQiQmZmJlatWoUuXbrAw8MDnTt3\nxvr16xutr7i4uN7rfv36wcPDAxKJBMnJyQ2uiR89ehT5+fn4/PPP4ebmhry8PMyfPx/0H/shXRcX\nF+HbSLm5uYiNjYWvry8UCgUUCgV27drV4HEKhQKjR4/G4MGD623LzMxEWVkZLBaLMNgoLi5+4Sc5\nvi5NxZicnAyLxYItW7ZALpfj2rVr2LZtW7PV31T73L59u/DZHgcHB5w4caLObJw1DRgwAAMGDIDB\nYMCePXuwdetWuLu7o6ioSNhHp9OhqqpK+PxNr169kJCQgJycHFy6dAkrVqyoU+az95rZbEZpaSnc\n3d0hFovf6HV4WQ3lJigoCAaDQdinvLy82eprqk9UqVRISEhARkYGVCoV2rRpg+LiYqSlpUGlUgEA\n5HI5bG1tsWnTJnh5edWrQ6PRAKjft74uvHRiRb6+vvDw8EBiYiJqampgMpmQmZkJnU4HGxsbODs7\no7a2FikpKcIxRqMR58+fR3V1NSQSCRwdHSESiSAWixEaGoqbN28iLS0NZrMZRqMRd+/eRX5+/huM\n8uUMGDAAarUaN2/ehNlsxoULF/Do0SMEBQU1esy5c+eg1WohEong6OgI4Mmy0NNZntTUVBiNRpjN\nZjx48ADZ2dnCsXl5ebh48SLMZjPOnz+PwsJC9OrVC66urujVqxd27tyJ6upqEBGKi4uF3/7Q6XSw\ntbWFo6MjqqurcfDgQesmxkouX74s/AFwdHSEWCyGWCyGr68v5HI5Dhw4AL1eD4vFgr/++kuYun/n\nnXdw+PBh5OXlgYig0+mQlpaGmpoadO7cGTKZDEeOHIHJZMKtW7egVqvfZJgNaipGnU4HOzs7ODo6\norS0FMeOHatzvIuLCwoLC1+5/qbap06ng4ODA+zt7fHo0SOcPn361YN9CX/++Sdu3bqF2tpaSKVS\n2NnZQSwWIyQkBCdOnMCjR49QW1uLPXv2wNfXF0qlEsCTZbjQ0FBs2bIFzs7OwpLuU2q1Grdv34bJ\nZML3338Pe3t7YVnpn1yH16mx3LRv3x5ZWVkoLCyEXq/HgQMHmq3OpvpEhUIBNzc3pKamQqVSQSQS\noXPnzjh16pSwFCoWizFixAgkJiYKMyFarbbOkvSbxDMaViSRSBAbG4tdu3ZhxowZsFgsUKlUWLBg\nAdRqNaKjo+Hs7FzvsfUXL17Ezp07YTab4enpicWLF8PW1hYKhQKrVq1CUlISNm/eDABo27Ztnen/\nfztvb28sWbIESUlJKC4uRqtWrRAbG4sWLVo0esytW7fwzTffwGAwwNXVFbNmzULLli0BAGvWrMHu\n3buxd+9emEwm+Pj4YNKkScKxffr0QXp6OrZt2waFQoFly5YJDy9asGABUlJSMH/+fFRXV0OhUGDE\niBHo2bMnwsPD8eWXX+KDDz6Am5sbIiIi8Msvv1g3OVaQk5ODxMREPH78GE5OTggLCxPeBcXGxiIp\nKQmzZs2CXq+Hl5cXIiMjAQB9+/aFwWDApk2boNFoIJPJ4O/vj4CAAEilUixfvhxbt27Fd999h4CA\nAAwcOBBGo/FNhlrP0/uvsRijoqIQHx+PqKgoKJVKhIaG4ujRo8LxT79VkJKSgpEjR9ZpVy/C3t7+\nb9tndHQ0EhIScPz4cbRv3x79+/dHRkZG8yWgEUajESkpKcjPzxf+iM6ZMwetWrVCeXk5Vq1aJXzr\n5Pmp+MGDB+P48eP48MMP65UbGhqKY8eOYd26dfDx8cHy5cuFmdx/ch1ep8Zy4+Pjg0GDBmHhwoVw\ndHTEpEmTcPbs2Wap80X6RJVKhatXrwrfTHz6+um9DACTJ0/GoUOHsHTpUlRUVKBFixYIDg5G3759\nm+U8/wl+qBpjjLEXUlVVhcmTJ2PHjh3CZywYawovnTDGGGsSEeHEiRPo0aMHDzLYS+GlE8YYY3/L\naDRi4sSJcHV1FX6gi7EXxUsnjDHGGLMaXjphjDHGmNXwQIMxxhhjVsMDDcYYY4xZDQ80GGOMMWY1\nPNBgjDHGmNXwQIMx9sri4+PRunVrSCQSREREWL2+iIiIRh8iyBj7d+Lf0WCMvZLs7GwsWrQIS5Ys\nQVhYGP+IE2OsQTzQYIy9krt374KIMH36dLRv3/5Nnw5j7F+Kl04YYy9typQpCAsLAwB06NABIpEI\nSUlJ0Gq1mDNnDpRKJWQyGXr27InU1NR6x588eRJBQUGwt7eHh4cHZs+ejcePH9fZ586dOwgJCYGd\nnR06dOiAPXv2vJbYGGPNi2c0GGMvLTY2Fv7+/liyZAmOHDkCpVKJdu3aYejQodBoNFi3bh28vb2F\nJ5+q1WrhSZOHDx/G+++/j+joaKxevRoFBQVYunQpysvLhcdv6/V6DBs2DI6Ojti7d69QZ1VVFXx9\nfd9Y3IyxV0CMMfYKjh49SgAoLy+PiIh2795NUqmUsrKy6uwXFBREY8eOJSIii8VCbdq0oaioqDr7\nnDp1ikQiEWVmZhIR0fbt20ksFtO9e/eEfbKzs0ksFlNISIj1gmKMNTteOmGMNYvU1FSoVCr4+fnB\nZDIJ/4YOHYobN24AAO7du4eHDx9i3LhxdfYJCQmBWCxGeno6AOD69esICAioM3vRsWNHBAYGvpHY\nGGOvjpdOGGPNoqSkBBkZGbCxsam3TSKRCPsAwKhRoxosIz8/HwBQUFAAT0/Petu9vLyg0+ma65QZ\nY68BDzQYY83Czc0NXbt2RWJi4t/uAwBbt25FUFBQve2tWrUCACiVSqjV6nrbNRoN5HJ5M50xY+x1\n4IEGY6xZDBkyBD/++CNatWolDBie17lzZ/j4+CA3Nxdz585ttKw+ffogOTkZ2dnZwvJJTk4Obt++\njeDgYKucP2PMOkRERG/6JBhj/z3Hjh3DqFGjkJeXh7Zt28JgMKB///6orKzExx9/DD8/P2i1WmRk\nZKC2thYbNmwAABw6dAgTJkxATEwMRo4cCUdHRzx8+BAnT57E+vXr4efnB51Oh44dO8LZ2Rlr164F\nEWHlypWorKyEr68vLly48GaDZ4y9MJ7RYIw1C5lMhnPnzuHTTz/FunXrUFBQAIVCge7du2POnDnC\nfmPHjoWLiwvWrVuHlJQUAEDbtm0xYsQIeHl5AQDs7e2RmpqK2bNnY+LEifD29kZsbCyOHz8OrVb7\nRuJjjL0antFgjDHGmNXw11sZY4wxZjU80GCMMcaY1fBAgzHGGGNWwwMNxhhjjFkNDzQYY4wxZjU8\n0GCMMcaY1fBAgzHGGGNWwwMNxhhjjFkNDzQYY4wxZjU80GCMMcaY1fBAgzHGGGNW83/Q3M0zEFzu\nkwAAAABJRU5ErkJggg==\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - }, - { - "data": { - "image/png": "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\n7Vr98ssvqlWrlgYPHqxHH31UNWvWlCS9+OKLZVosAACoWEoVNCSpZs2aGjt2bFnWAgAALjJ8MygA\nALDG5ysaV111lebNm6cmTZqc8kuuf8SvtwIAAOkcf701PDzc+//8kisAADgbn4PGW2+95f1/fskV\np5OamurvEsqVSZMm+bsEAPC7836PhjFGe/fuVVFRUVnUAwAALiKlDhqff/65rrvuOlWqVEmXX365\nfv75Z0nS4MGDNXfu3DIrEAAAVFylChrz589X586dVadOHU2bNk3GGO+6evXqlZhmAQAAf12lChr/\n/Oc/NXToUM2fP1/9+/cvsa5x48basGFDWdQGAAAquFIFje3bt6tz586nXRceHq4jR46cV1EAAODi\nUKqgUbNmTW3atOm0637++WfFxcWdV1EAAODiUKqg0adPHz377LP68ssvvbcFBARow4YNGjt2rPr1\n61dmBQIAgIqrVL918uyzz2rjxo266aabVL16dUnSrbfeqoMHD+rvf/+7nnjiiTItsqwFBwcrJCTE\n32VUSFWqVPF3CRUGvfIdvfIdvfIdvfKdzV6VKmgEBwfrww8/1LJly7RkyRIdOnRI1apV04033qgb\nb7yxrGsscwUFBSooKPB3GRXSsWPH/F1ChUGvfEevfEevfEevfHcuvTrXP9RLFTS6du2qdu3aqW3b\ntho9erScTmdpdgMAAC5ypXqPRlhYmCZMmKDrr79eVatW1U033aTnn39eX331lfLy8sq6RgAAUEGV\nKmgsWLBAu3fv1pYtWzRx4kTVrl1bs2fPVqdOnVS1alW1bdu2rOsEAAAVUKmmTk664oordMUVV6h9\n+/b66quvNHfuXH311Vf65ptvyqo+AABQgZUqaGzatEnLly/3/nfgwAE1btxY7dq1U0pKitq1a1fW\ndQIAgAqoVEEjISFBoaGhuvfee/Xaa68pKSlJkZGRZV0bAACo4EoVNDp37qxvvvlGM2fO1M8//6xv\nv/1W7du3V5s2bVS5cuWyrhEAAFRQpXoz6Mcff6xDhw5pzZo1uuuuu7R161bde++9qlatmq699lo9\n9thjZV0nAACogEr9ZtCAgAA1bdpUTZs2VY8ePbR8+XJNnz5dy5cvV1paml566aWyrBMAAFRApQoa\nO3bs0PLly7VixQqtWLFC27dvV1BQkJo1a6bhw4erffv2ZV0nAACogEoVNOrWratKlSqpZcuW6t27\n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\nqXPnzlqxYoX27NmjZs2aKTU1VTNmzNB3332nmJgYPfbYY4qLi/vTMe7fv19TpkxRenq6JOnqq69W\nSkqKKleurHHjxungwYMaM2aMHA6HunTporvvvltdu3ZVSkqKPvroI7lcLnXs2FF9+/bVxIkTtXHj\nRsXFxWnEiBHer5P+s+Nz69atmjFjhve4vv766zVo0CAFBQVZ7+H777+vf//738rJyVFERITuvvtu\ntW3bVosXL9Znn32m3NxcJSQk6MEHH1T16tX1/vvv6+eff9Yzzzzj3ceiRYv0yy+/aNSoUZKk48eP\n67nnntMvv/yi2rVrKzU1VXFxcZL+/Fj7s+fh5PN92223acWKFaecSy5Ub3bv3u19zUlSQUGBevTo\noRkzZqhGjRqaMGGCQkJClJWVpZ9++kkxMTF69NFHVbduXb3yyiv6+uuvFRAQoE8++URDhw495THP\ndE50uVxKSUnRvHnzFBQUpHfeeUeLFy/WvHnzFBoaqnfffVd79+7VI488osLCQs2fP18rVqyQ2+1W\ns2bN9OCDD6py5cre88Qjjzyi+fPnKyQkRFOnTrXSv9MysKaoqMgMHTrUTJs2zeTk5JiCggKzfv16\nY4wx//3vf723vfHGG+ahhx7y3u+ee+4xS5cuNcYYk5ubazZt2mSMMebQoUOmT58+5ttvvzVFRUVm\n06ZNpnfv3mbnzp3GGGPGjx9vZs2aZYwx5ueffzbdunUzb775pikoKDCbN282t99+u9mzZ88FGfvA\ngQNNamqqyczMNLm5uWb48OFmzpw5Zs+ePSY5OdmsWbPGFBUVmS+//NL06tXLHDlyxDuGO++80/z0\n00+muLjY5OXlmccee8wsXLjQeDwek5+fbzZu3GiMMSYvL8/cd9995pNPPjGFhYVm165dZsCAASYt\nLc0YY8zcuXNNt27dzNKlS01RUZH54osvTK9evcyxY8eMMca8+OKLZvz48SYnJ8ccO3bMPP300+bt\nt982xhhz7Ngxs3LlSpOXl2dyc3PN2LFjzXPPPecd38iRI819991nduzYYQoKCsyYMWPMK6+8Yr2n\na9euNXPnzjVjx441xhizf/9+06VLF/PKK68Yt9tt9u3bZ3r16mXWrVtnjDFm7NixZurUqaawsNAU\nFhZ6jz+Px2P+53/+x7z99tsmPz/fuFwuk5qaaj777DNjjDGrV682AwcONNu3bzdFRUXm008/NYMG\nDTIFBQWmsLDQDBw40CxcuNAUFhaatLQ0k5ycbMaPH291/L/vw9ChQ43L5TJHjhwxDzzwgHnwwQfN\n2rVrTVFRkZk+fboZNWrUWce4b98+k5aWZgoKCsyRI0fMyJEjzauvvnpKv3+vS5cu5plnnjHHjh0z\nBw4cML179zaPPPKI2bJliylRob9hAAAQSklEQVQsLDSjR482kydPNsac/fjctm2b+eWXX0xRUZE5\ncOCAGTJkiFm8eHGJx9q1a1eZ92/Xrl0mOTnZu+9Dhw6ZjIwM88UXX5iBAweaXbt2mby8PDN16lQz\nYsQIY4wxhw8fNsnJyebw4cPe/Tz00ENm5cqVxpgTr9vk5GTz448/msLCQrNgwQJz//33m6KiojJ5\nHk53LrHhTL35/WvOGGPy8/NNly5dzP79+73j79Wrl9m4caMpKioyr7/+unn88ce92//+3GyMKbG/\ns50T77//fu85b/jw4eb+++/3HpdPP/20+eKLL4wxxrzxxhvm6aefNllZWSYvL8+MHz/evPTSS8aY\n/ztPjB071uTk5Ji8vDwr/TsTpk4s2rp1qw4cOKBBgwYpLCxMQUFB3r+mb7zxRu9tvXr10s6dO3X0\n6FFJUmBgoPbt26ejR48qNDRUDRs2lHTiL8ymTZvquuuuk9PpVMOGDXXddddp1apVp318h8Ohfv36\nKSgoSA0aNNBll13m/avhQujatauio6MVGhqq1q1b67ffftPXX3+t5s2b69prr5XT6dQNN9ygyy67\nTN999533ftdee62uuuoqBQQEKCQkRIGBgcrMzNThw4cVHByshIQESdL333+vyMhIde7cWYGBgapd\nu7ZuvvlmrVixwruvOnXqqGPHjnI6nerUqZNiYmL0/fffKzs7W2vWrNHgwYMVFhamypUrq2fPnt77\nVq5cWW3atFFISIhCQ0PVo0cPbdy4scT4OnXqpLi4OAUFBaldu3b67bffLkBXT69Pnz6qVKmSatas\nqcaNG2v79u2SThxLhw8fVmZmpgIDA73H37Zt2+RyudSvXz8FBwerevXq6t69u3f8n376qe644w7V\nqVNHTqdTt9xyiwICArR582Zt2rRJ+fn56tGjhwIDA9WsWTM1b978go7373//u6pXr66IiAg1b95c\nMTExatGihZxOp9q2bavffvvtrGOsWbOmmjVrpqCgIEVERKhr166nPMenk5ycrMqVKysmJkYJCQlq\n0KCB6tevr8DAQCUlJXl7f7bjs169erryyivldDoVExOjv/3tb9qwYYO9pv1/TqdT0okrjvn5+apW\nrZpiY2P11VdfqWvXrqpdu7ZCQkLUv39/bdmyRfv27VNkZKSuvvpqLV++XNKJ4+fw4cNq2bKld78t\nWrTQ1VdfrcDAQPXo0UO5ubnavHlzmTwPpzuXXMje+KJVq1ZKSEjwntdOHgdnc7ZzYpMmTbR+/Xrl\n5+dr3759uu2227RhwwYVFRXp119/VWJioowx+vzzzzVo0CBVrVpVISEh6tu3r1atWlVimqR3794K\nCwtTSEjIOXbm/DB1YpHL5VJ0dPQpl0I9Ho/mzJmjVatW6ciRI95L1UePHlVERISefPJJLVy4UA88\n8IBq1aql3r1769prr1VmZqZWr16t3r17l9hXhw4dTvv4lStXLvHYISEhysvLK/uBnkHVqlVPeexD\nhw6dMr1Qo0YNHT582Lt8cnripNTUVM2bN0+PPvqoIiIi1L17d9100006cOCAtm/fXqIfxcXF3iBy\nun3FxMR4/+EtLi7WwIEDveuMMSouLpYk5efn64033lBaWpqOHz8uSXK73SosLPT2NDIy8pTx+csf\na3G73ZKkAQMGaN68eXrqqafkdDr1t7/9TT169FBmZqaOHDmiPn36eO9XXFzsveSfmZmpWbNm6Z13\n3vGuLyws1KFDhxQQEKBq1ap5j1vpRJ9zcnJsD9Prj8fW6Z6Ls40xOztbM2bM0MaNG+V2u2WMUWho\n6Fkf+4+P9cdaTvb+bMfnnj17NHPmTG3btk35+fnyeDyqU6fOubbinNWqVUtDhw7Vv//9b02cOFGN\nGzfWfffdd8prMywsTFWqVNGhQ4dUq1Yt3XjjjZo/f766d++uZcuWqW3btiXOL79/rTmdTlWvXt17\nvJzv83C6c4kNZ+qNL0p7PjjbOTExMVFffvmlGjRooIYNG6pp06aaMmWKtm7dqoiICMXExCg7O1t5\neXkaMWJEif0EBAQoOzvbu/zH8+GFQtCwKCoqSgcPHlRRUZECA/+v1StWrNC3336r559/XjVq1FBu\nbm6Jk1G9evX05JNPyuPxaOXKlfrf//1fzZ07V9HR0Wrbtu1p5/gqiurVq5/y18iBAwfUtGlT7/If\n3zBVq1YtDRs2TMYYbdiwQc8884waN26s6OhoNWrUSC+++OIZH+/gwYOnLLdu3VrR0dFyOp16++23\nTzsn/v7772vXrl0aN26cqlWrpvT0dD3yyCMyFeyLdKtWrer9NNL27ds1atQo1a9fX1FRUYqKitIb\nb7xx2vtFRUXpjjvuUKdOnU5Zt2HDBh0+fFjFxcXesHHw4MFy9xXKZxvj22+/reLiYk2aNEkRERH6\n7rvvNG3atDJ7/LMdn6+++qr3vT1hYWH66KOPSlyNsykpKUlJSUnKz8/X7NmzNWXKFFWvXl2ZmZne\nbdxut44dO+Z9/80111yjqVOnatu2bVqxYoWeeuqpEvv8/WvN4/Ho0KFDql69uhwOh1+fh3N1ut60\natVK+fn53m2ysrLK7PHOdk5MTEzU1KlT9eOPPyoxMVFxcXE6ePCg1qxZo8TERElSRESEgoODNWHC\nBNWoUeOUxzhw4ICkU8+tFwpTJxbVr19f0dHRmjlzpnJzc1VUVKQNGzbI7XYrKChIVapUUUFBgebM\nmeO9T2FhoZYtW6bjx4/L6XQqPDxcAQEBcjgc6tChg3744QetWbNGHo9HhYWF2rx5s3bt2uXHUZ6b\npKQkpaWl6YcffpDH49FXX32lPXv2qFWrVme8z9KlS5Wdna2AgACFh4dLOjEtdPIqz5IlS1RYWCiP\nx6MdO3Zo69at3vump6dr+fLl8ng8WrZsmfbv369rrrlGkZGRuuaaazRjxgwdP35cxhgdPHjQ+90f\nbrdbwcHBCg8P1/Hjx7Vw4UK7jbFk5cqV3n8AwsPD5XA45HA4VL9+fUVERGjBggXKy8tTcXGx9u7d\n6710f+utt+q9995Tenq6jDFyu91as2aNcnNz1ahRI4WEhGjx4sUqKirSunXrlJaW5s9hntbZxuh2\nu1WpUiWFh4fr0KFD+uCDD0rcv2rVqtq/f3+pH/9sx6fb7VZYWJhCQ0O1Z88effbZZ6Uf7DnYvXu3\n1q1bp4KCAgUGBqpSpUpyOBxq3769PvroI+3Zs0cFBQWaPXu26tevr1q1akk6MQ3XoUMHTZo0SVWq\nVPFO6Z6Ulpamn376SUVFRVq0aJFCQ0O900rn8zxcSGfqTd26dbVx40bt379feXl5WrBgQZk95tnO\niVFRUapWrZqWLFmixMREBQQEqFGjRvr000+9U6EOh0O33HKLZs6c6b0Skp2dXWJK2p+4omGR0+nU\nqFGj9MYbb2jw4MEqLi5WYmKihg4dqrS0NA0YMEBVqlRR3759S9xv+fLlmjFjhjwej2JiYjRixAgF\nBwcrKipKzzzzjGbNmqWJEydKkuLj40tc/i/vLrvsMj3++OOaNWuWDh48qEsvvVSjRo3SJZdccsb7\nrFu3Tm+99Zby8/MVGRmpBx98UDVr1pQkPf/883rzzTf1zjvvqKioSLVr11a/fv28923ZsqXWrl2r\nadOmKSoqSiNHjlSVKlUkSUOHDtWcOXP0yCOP6Pjx44qKitItt9yiFi1aqGvXrnr55Zd19913q1q1\naurevbu++eYbu82xYNu2bZo5c6ZycnJUuXJldenSxftX0KhRozRr1iw9+OCDysvLU40aNZScnCxJ\nuu6665Sfn68JEybowIEDCgkJUUJCgpo0aaLAwEA9+eSTmjJliv71r3+pSZMm6tixowoLC/051FOc\nfP2daYy9e/fW+PHj1bt3b9WqVUsdOnTQ+++/773/yU8VzJkzR7fddluJ48oXoaGhf3p8DhgwQFOn\nTtWHH36ounXrqk2bNvrxxx/LrgFnUFhYqDlz5mjXrl3ef0SHDBmiSy+9VFlZWXrmmWe8nzr546X4\nTp066cMPP9Q999xzyn47dOigDz74QC+88IJq166tJ5980nsl93yehwvpTL2pXbu2brjhBj366KMK\nDw9Xv3799OWXX5bJY/pyTkxMTNS3337r/WTiyeWTr2VJuvfee/Xuu+/qiSee0JEjR3TJJZeobdu2\nuu6668qkzvPBj6oBAHxy7Ngx3XvvvXr99de977EAzoapEwDAWRlj9NFHH6l58+aEDJwTpk4AAH+q\nsLBQffv2VWRkpPcLugBfMXUCAACsYeoEAABYQ9AAAADWEDQAAIA1BA0AAGANQQMAAFhD0ABQauPH\nj1dsbKycTqe6d+9u/fG6d+9+xh8RBFA+8T0aAEpl69atGjZsmB5//HF16dKFL3ECcFoEDQClsnnz\nZhljdP/996tu3br+LgdAOcXUCYBz1r9/f3Xp0kWSVK9ePQUEBGjWrFnKzs7WkCFDVKtWLYWEhKhF\nixZasmTJKff/5JNP1KpVK4WGhio6OlopKSnKyckpsc2vv/6q9u3bq1KlSqpXr55mz559QcYGoGxx\nRQPAORs1apQSEhL0+OOPa/HixapVq5bq1Kmjm266SQcOHNALL7ygyy67zPvLp2lpad5fmnzvvfd0\n1113acCAAXruuee0b98+PfHEE8rKyvL+/HZeXp5uvvlmhYeH65133vE+5rFjx1S/fn2/jRtAKRgA\nKIX333/fSDLp6enGGGPefPNNExgYaDZu3Fhiu1atWpk777zTGGNMcXGxiYuLM7179y6xzaeffmoC\nAgLMhg0bjDHGvPrqq8bhcJgtW7Z4t9m6datxOBymffv29gYFoMwxdQKgTCxZskSJiYlq0KCBioqK\nvP/ddNNN+v777yVJW7ZsUUZGhnr27Flim/bt28vhcGjt2rWSpNWrV6tJkyYlrl5cccUVatq0qV/G\nBqD0mDoBUCZcLpd+/PFHBQUFnbLO6XR6t5Gk22+//bT72LVrlyRp3759iomJOWV9jRo15Ha7y6pk\nABcAQQNAmahWrZquuuoqzZw580+3kaQpU6aoVatWp6y/9NJLJUm1atVSWlraKesPHDigiIiIMqoY\nwIVA0ABQJm688Ub95z//0aWXXuoNDH/UqFEj1a5dW9u3b9dDDz10xn21bNlSb7/9trZu3eqdPtm2\nbZt++ukntW3b1kr9AOwIMMYYfxcBoOL54IMPdPvttys9PV3x8fHKz89XmzZtdPToUT322GNq0KCB\nsrOz9eOPP6qgoEBjxoyRJL377rvq06ePBg4cqNtuu03h4eHKyMjQJ598ohdffFENGjSQ2+3WFVdc\noSpVqmj06NEyxujpp5/W0aNHVb9+fX311Vf+HTwAn3FFA0CZCAkJ0dKlS/Xss8/qhRde0L59+xQV\nFaVmzZppyJAh3u3uvPNOVa1aVS+88ILmzJkjSYqPj9ctt9yiGjVqSJJCQ0O1ZMkSpaSkqG/fvrrs\nsss0atQoffjhh8rOzvbL+ACUDlc0AACANXy8FQAAWEPQAAAA1hA0AACANQQNAABgDUEDAABYQ9AA\nAADWEDQAAIA1BA0AAGANQQMAAFhD0AAAANYQNAAAgDX/D9RuXQcH7udpAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "#Generate plot that shows the weights of chicks vs. feed type(scatter)\n", - "plot1= ggplot(chicken,aes(x=\"feed\",y=\"weight\"))+geom_dotplot(binaxis=\"y\",stackdir=\"center\", stackratio=0.5, dotsize=0.2)+theme_classic()\n", - "\n", - "print plot1\n", - "\n", - "#Generate plot that shows average weight vs. feed type (bar)\n", - "plot2= ggplot(chicken, aes(y=\"weight\",x=\"feed\"))+geom_bar(stat=\"summary\",fun_y=numpy.mean)\n", - "print plot2" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "collapsed": true - }, - "source": [ - "### Part 2: Null Hypotheses for Difference in Chick Weight (Soybean vs. Sunflower)\n", - "\n", - "#### Hypotheses\n", - "\n", - "* Null Hypothesis: There is no difference in chick weight when fed soybean or sunflower seed.\n", - "* Alternative Hypothesis: There is a significant difference in chick weight between those fed soybean feed and those fed sunflower seed." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#Subset the Data to Only Have the Types of Feed we are Interested in\n", - "chicksub=chicken.loc[chicken.feed.isin(['soybean', 'sunflower']),:]\n", - "\n", - "#Make Dataframe for Modeling\n", - "chickFrame= pandas.DataFrame({'y':chicksub.weight,'x':0})\n", - "chickFrame.loc[chicksub.feed=='sunflower','x']=1" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Part 3: Test Null Hypothesis Using Likelihood Ratio Test\n", - "\n", - "* Step 1: Define Null Model\n", - "* Step 2: Define Alternative Model\n", - "* Step 3: Run/Generate Likelihood Ratio Tests" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "#Define Null\n", - "def nllikeNull(pNull,obsNull):\n", - " B0Null=pNull[0]\n", - " sigmaNull=pNull[1]\n", - " expectedNull=B0Null\n", - " nllNull=-1*norm(expectedNull,sigmaNull).logpdf(obsNull.y).sum()\n", - " return nllNull\n", - "\n", - "#Define Alternative\n", - "def nlllikeAlt(pAlt,obsAlt):\n", - " B0Alt=pAlt[0]\n", - " B1Alt=pAlt[1]\n", - " sigmaAlt=pAlt[2]\n", - " expectedAlt=B0Alt+B1Alt*obsAlt.x\n", - " nllAlt=-1*norm(expectedAlt,sigmaAlt).logpdf(obsAlt.y).sum()\n", - " return nllAlt" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Optimization terminated successfully.\n", - " Current function value: 145.240592\n", - " Iterations: 85\n", - " Function evaluations: 162\n", - "Estimated Parameters: Null Model\n", - "[ 284.49999051 64.53691755]\n", - "NLL: Null Model\n", - "145.240592097\n" - ] - } - ], - "source": [ - "#Null Model\n", - "initialGuessNull=numpy.array([1,1])\n", - "fitNullChickFrame=minimize(nllikeNull,initialGuessNull, method=\"Nelder-Mead\",options={'disp':True},args=chickFrame)\n", - "print(\"Estimated Parameters: Null Model\")\n", - "print(fitNullChickFrame.x)\n", - "print(\"NLL: Null Model\")\n", - "nllNullChickFrame=fitNullChickFrame.fun\n", - "#Print NLL value for Null Model\n", - "print(nllNullChickFrame)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Optimization terminated successfully.\n", - " Current function value: 138.469162\n", - " Iterations: 200\n", - " Function evaluations: 363\n", - "Estimated Parameters: Alternative Model\n", - "[ 246.42855057 82.48813575 49.73948886]\n", - "NLL: Alternative Model\n", - "138.469161825\n" - ] - } - ], - "source": [ - "#Alternative Model\n", - "initialGuessAlt=numpy.array([1,1,1])\n", - "fitAltChickFrame=minimize(nlllikeAlt,initialGuessAlt,method=\"Nelder-Mead\",options={'disp':True},args=chickFrame)\n", - "print(\"Estimated Parameters: Alternative Model\")\n", - "print(fitAltChickFrame.x)\n", - "print(\"NLL: Alternative Model\")\n", - "nllAltChickFrame=fitAltChickFrame.fun\n", - "#Print NLL value for Alternative Model\n", - "print(nllAltChickFrame)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Part 4: Interpret Results of Likelihood Ratio Test\n", - "\n", - "* Step 1: Calculate D value\n", - "* Step 2: Calculate p value\n", - "\n", - "##### Conclusions:\n", - "As our p-value was less than 0.05, we can report that our alternative hypothesis was correct. This means that there is a significant difference between the chicks who were fed soybean feed vs. those who were fed sunflower feed." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "D Value\n", - "13.5428605444\n", - "p-value\n", - "0.000233176728695\n" - ] - } - ], - "source": [ - "#Calculate D value\n", - "DchickFrame=2*(nllNullChickFrame-nllAltChickFrame)\n", - "print(\"D Value\")\n", - "print(DchickFrame)\n", - "\n", - "#Calculate p value\n", - "pChickFrame=1-scipy.stats.chi2.cdf(x=DchickFrame,df=1)\n", - "print(\"p-value\")\n", - "print(pChickFrame)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 2", - "language": "python", - "name": "python2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.13" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} From 3dd9f28d112d9da32b636d724e96eaa696d7da9a Mon Sep 17 00:00:00 2001 From: kkilgoreND <31992787+kkilgoreND@users.noreply.github.com> Date: Tue, 21 Nov 2017 12:04:41 -0500 Subject: [PATCH 10/10] Q1 ipynb and html with italicized hypotheses --- Exercise12-Q1.html | 12715 ++++++++++++++++++++++++++++++++++++++++++ Exercise12-Q1.ipynb | 288 + 2 files changed, 13003 insertions(+) create mode 100644 Exercise12-Q1.html create mode 100644 Exercise12-Q1.ipynb diff --git a/Exercise12-Q1.html b/Exercise12-Q1.html new file mode 100644 index 0000000..ed21850 --- /dev/null +++ b/Exercise12-Q1.html @@ -0,0 +1,12715 @@ + + + +Exercise12-Q1 + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+

Exercise 12: Question 1

Dataset- chichwts.txt

This dataset describes the attributes of chicks. The first column contains the weights of the chicks in a numeric value and the second column contains a character string which describes the type of feed they received.

+

Import Necessary Packages and Data

+
+
+
+
+
+
In [4]:
+
+
+
#Import packages
+import numpy
+import pandas
+import scipy
+import scipy.integrate as spint
+from scipy.stats import norm
+from scipy.optimize import minimize
+from scipy.stats import chi2
+import plotnine
+from plotnine import *
+
+#Load Data
+chicken=pandas.read_csv("chickwts.txt", sep=",")
+
+ +
+
+
+ +
+
+
+
+
+

Part 1: Generate a Plot to Summarize Data

+
+
+
+
+
+
In [5]:
+
+
+
#Generate plot that shows the weights of chicks vs. feed type(scatter)
+plot1= ggplot(chicken,aes(x="feed",y="weight"))+geom_dotplot(binaxis="y",stackdir="center", stackratio=0.5, dotsize=0.2)+theme_classic()
+
+print plot1
+
+#Generate plot that shows average weight vs. feed type (bar)
+plot2= ggplot(chicken, aes(y="weight",x="feed"))+geom_bar(stat="summary",fun_y=numpy.mean)
+print plot2
+
+ +
+
+
+ +
+
+ + +
+ +
+ + + + +
+ +
+ +
+ +
+ +
+ + +
+
<ggplot: (7535692365)>
+
+
+
+ +
+ +
+ + + + +
+ +
+ +
+ +
+ +
+ + +
+
<ggplot: (7535781365)>
+
+
+
+ +
+
+ +
+
+
+
+
+

Part 2: Null Hypotheses for Difference in Chick Weight (Soybean vs. Sunflower)

Hypotheses

    +
  • Null Hypothesis: There is no difference in chick weight when fed soybean or sunflower seed.
  • +
  • Alternative Hypothesis: There is a significant difference in chick weight between those fed soybean feed and those fed sunflower seed.
  • +
+ +
+
+
+
+
+
In [6]:
+
+
+
#Subset the Data to Only Have the Types of Feed we are Interested in
+chicksub=chicken.loc[chicken.feed.isin(['soybean', 'sunflower']),:]
+
+#Make Dataframe for Modeling
+chickFrame= pandas.DataFrame({'y':chicksub.weight,'x':0})
+chickFrame.loc[chicksub.feed=='sunflower','x']=1
+
+ +
+
+
+ +
+
+
+
+
+

Part 3: Test Null Hypothesis Using Likelihood Ratio Test

    +
  • Step 1: Define Null Model
  • +
  • Step 2: Define Alternative Model
  • +
  • Step 3: Run/Generate Likelihood Ratio Tests
  • +
+ +
+
+
+
+
+
In [12]:
+
+
+
#Define Null
+def nllikeNull(pNull,obsNull):
+    B0Null=pNull[0]
+    sigmaNull=pNull[1]
+    expectedNull=B0Null
+    nllNull=-1*norm(expectedNull,sigmaNull).logpdf(obsNull.y).sum()
+    return nllNull
+
+#Define Alternative
+def nlllikeAlt(pAlt,obsAlt):
+    B0Alt=pAlt[0]
+    B1Alt=pAlt[1]
+    sigmaAlt=pAlt[2]
+    expectedAlt=B0Alt+B1Alt*obsAlt.x
+    nllAlt=-1*norm(expectedAlt,sigmaAlt).logpdf(obsAlt.y).sum()
+    return nllAlt
+
+ +
+
+
+ +
+
+
+
In [8]:
+
+
+
#Null Model
+initialGuessNull=numpy.array([1,1])
+fitNullChickFrame=minimize(nllikeNull,initialGuessNull, method="Nelder-Mead",options={'disp':True},args=chickFrame)
+print("Estimated Parameters: Null Model")
+print(fitNullChickFrame.x)
+print("NLL: Null Model")
+nllNullChickFrame=fitNullChickFrame.fun
+#Print NLL value for Null Model
+print(nllNullChickFrame)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
Optimization terminated successfully.
+         Current function value: 145.240592
+         Iterations: 85
+         Function evaluations: 162
+Estimated Parameters: Null Model
+[ 284.49999051   64.53691755]
+NLL: Null Model
+145.240592097
+
+
+
+ +
+
+ +
+
+
+
In [13]:
+
+
+
#Alternative Model
+initialGuessAlt=numpy.array([1,1,1])
+fitAltChickFrame=minimize(nlllikeAlt,initialGuessAlt,method="Nelder-Mead",options={'disp':True},args=chickFrame)
+print("Estimated Parameters: Alternative Model")
+print(fitAltChickFrame.x)
+print("NLL: Alternative Model")
+nllAltChickFrame=fitAltChickFrame.fun
+#Print NLL value for Alternative Model
+print(nllAltChickFrame)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
Optimization terminated successfully.
+         Current function value: 138.469162
+         Iterations: 200
+         Function evaluations: 363
+Estimated Parameters: Alternative Model
+[ 246.42855057   82.48813575   49.73948886]
+NLL: Alternative Model
+138.469161825
+
+
+
+ +
+
+ +
+
+
+
+
+

Part 4: Interpret Results of Likelihood Ratio Test

    +
  • Step 1: Calculate D value
  • +
  • Step 2: Calculate p value
  • +
+
Conclusions:

As our p-value was less than 0.05, we can report that our alternative hypothesis was correct. This means that there is a significant difference between the chicks who were fed soybean feed vs. those who were fed sunflower feed.

+ +
+
+
+
+
+
In [14]:
+
+
+
#Calculate D value
+DchickFrame=2*(nllNullChickFrame-nllAltChickFrame)
+print("D Value")
+print(DchickFrame)
+
+#Calculate p value
+pChickFrame=1-scipy.stats.chi2.cdf(x=DchickFrame,df=1)
+print("p-value")
+print(pChickFrame)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
D Value
+13.5428605444
+p-value
+0.000233176728695
+
+
+
+ +
+
+ +
+
+
+ + + + + + diff --git a/Exercise12-Q1.ipynb b/Exercise12-Q1.ipynb new file mode 100644 index 0000000..029a08c --- /dev/null +++ b/Exercise12-Q1.ipynb @@ -0,0 +1,288 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise 12: Question 1\n", + "\n", + "### Dataset- chichwts.txt\n", + "This dataset describes the attributes of chicks. The first column contains the weights of the chicks in a numeric value and the second column contains a character string which describes the type of feed they received.\n", + "\n", + "#### Import Necessary Packages and Data" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "#Import packages\n", + "import numpy\n", + "import pandas\n", + "import scipy\n", + "import scipy.integrate as spint\n", + "from scipy.stats import norm\n", + "from scipy.optimize import minimize\n", + "from scipy.stats import chi2\n", + "import plotnine\n", + "from plotnine import *\n", + "\n", + "#Load Data\n", + "chicken=pandas.read_csv(\"chickwts.txt\", sep=\",\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Part 1: Generate a Plot to Summarize Data" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nkwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "image/png": "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\n7Vr98ssvqlWrlgYPHqxHH31UNWvWlCS9+OKLZVosAACoWEoVNCSpZs2aGjt2bFnWAgAALjJ8MygA\nALDG5ysaV111lebNm6cmTZqc8kuuf8SvtwIAAOkcf701PDzc+//8kisAADgbn4PGW2+95f1/fskV\np5OamurvEsqVSZMm+bsEAPC7836PhjFGe/fuVVFRUVnUAwAALiKlDhqff/65rrvuOlWqVEmXX365\nfv75Z0nS4MGDNXfu3DIrEAAAVFylChrz589X586dVadOHU2bNk3GGO+6evXqlZhmAQAAf12lChr/\n/Oc/NXToUM2fP1/9+/cvsa5x48basGFDWdQGAAAquFIFje3bt6tz586nXRceHq4jR46cV1EAAODi\nUKqgUbNmTW3atOm0637++WfFxcWdV1EAAODiUKqg0adPHz377LP68ssvvbcFBARow4YNGjt2rPr1\n61dmBQIAgIqrVL918uyzz2rjxo266aabVL16dUnSrbfeqoMHD+rvf/+7nnjiiTItsqwFBwcrJCTE\n32VUSFWqVPF3CRUGvfIdvfIdvfIdvfKdzV6VKmgEBwfrww8/1LJly7RkyRIdOnRI1apV04033qgb\nb7yxrGsscwUFBSooKPB3GRXSsWPH/F1ChUGvfEevfEevfEevfHcuvTrXP9RLFTS6du2qdu3aqW3b\ntho9erScTmdpdgMAAC5ypXqPRlhYmCZMmKDrr79eVatW1U033aTnn39eX331lfLy8sq6RgAAUEGV\nKmgsWLBAu3fv1pYtWzRx4kTVrl1bs2fPVqdOnVS1alW1bdu2rOsEAAAVUKmmTk664oordMUVV6h9\n+/b66quvNHfuXH311Vf65ptvyqo+AABQgZUqaGzatEnLly/3/nfgwAE1btxY7dq1U0pKitq1a1fW\ndQIAgAqoVEEjISFBoaGhuvfee/Xaa68pKSlJkZGRZV0bAACo4EoVNDp37qxvvvlGM2fO1M8//6xv\nv/1W7du3V5s2bVS5cuWyrhEAAFRQpXoz6Mcff6xDhw5pzZo1uuuuu7R161bde++9qlatmq699lo9\n9thjZV0nAACogEr9ZtCAgAA1bdpUTZs2VY8ePbR8+XJNnz5dy5cvV1paml566aWyrBMAAFRApQoa\nO3bs0PLly7VixQqtWLFC27dvV1BQkJo1a6bhw4erffv2ZV0nAACogEoVNOrWratKlSqpZcuW6t27\n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\nqXPnzlqxYoX27NmjZs2aKTU1VTNmzNB3332nmJgYPfbYY4qLi/vTMe7fv19TpkxRenq6JOnqq69W\nSkqKKleurHHjxungwYMaM2aMHA6HunTporvvvltdu3ZVSkqKPvroI7lcLnXs2FF9+/bVxIkTtXHj\nRsXFxWnEiBHer5P+s+Nz69atmjFjhve4vv766zVo0CAFBQVZ7+H777+vf//738rJyVFERITuvvtu\ntW3bVosXL9Znn32m3NxcJSQk6MEHH1T16tX1/vvv6+eff9Yzzzzj3ceiRYv0yy+/aNSoUZKk48eP\n67nnntMvv/yi2rVrKzU1VXFxcZL+/Fj7s+fh5PN92223acWKFaecSy5Ub3bv3u19zUlSQUGBevTo\noRkzZqhGjRqaMGGCQkJClJWVpZ9++kkxMTF69NFHVbduXb3yyiv6+uuvFRAQoE8++URDhw495THP\ndE50uVxKSUnRvHnzFBQUpHfeeUeLFy/WvHnzFBoaqnfffVd79+7VI488osLCQs2fP18rVqyQ2+1W\ns2bN9OCDD6py5cre88Qjjzyi+fPnKyQkRFOnTrXSv9MysKaoqMgMHTrUTJs2zeTk5JiCggKzfv16\nY4wx//3vf723vfHGG+ahhx7y3u+ee+4xS5cuNcYYk5ubazZt2mSMMebQoUOmT58+5ttvvzVFRUVm\n06ZNpnfv3mbnzp3GGGPGjx9vZs2aZYwx5ueffzbdunUzb775pikoKDCbN282t99+u9mzZ88FGfvA\ngQNNamqqyczMNLm5uWb48OFmzpw5Zs+ePSY5OdmsWbPGFBUVmS+//NL06tXLHDlyxDuGO++80/z0\n00+muLjY5OXlmccee8wsXLjQeDwek5+fbzZu3GiMMSYvL8/cd9995pNPPjGFhYVm165dZsCAASYt\nLc0YY8zcuXNNt27dzNKlS01RUZH54osvTK9evcyxY8eMMca8+OKLZvz48SYnJ8ccO3bMPP300+bt\nt982xhhz7Ngxs3LlSpOXl2dyc3PN2LFjzXPPPecd38iRI819991nduzYYQoKCsyYMWPMK6+8Yr2n\na9euNXPnzjVjx441xhizf/9+06VLF/PKK68Yt9tt9u3bZ3r16mXWrVtnjDFm7NixZurUqaawsNAU\nFhZ6jz+Px2P+53/+x7z99tsmPz/fuFwuk5qaaj777DNjjDGrV682AwcONNu3bzdFRUXm008/NYMG\nDTIFBQWmsLDQDBw40CxcuNAUFhaatLQ0k5ycbMaPH291/L/vw9ChQ43L5TJHjhwxDzzwgHnwwQfN\n2rVrTVFRkZk+fboZNWrUWce4b98+k5aWZgoKCsyRI0fMyJEjzauvvnpKv3+vS5cu5plnnjHHjh0z\nBw4cML179zaPPPKI2bJliylRob9hAAAQSklEQVQsLDSjR482kydPNsac/fjctm2b+eWXX0xRUZE5\ncOCAGTJkiFm8eHGJx9q1a1eZ92/Xrl0mOTnZu+9Dhw6ZjIwM88UXX5iBAweaXbt2mby8PDN16lQz\nYsQIY4wxhw8fNsnJyebw4cPe/Tz00ENm5cqVxpgTr9vk5GTz448/msLCQrNgwQJz//33m6KiojJ5\nHk53LrHhTL35/WvOGGPy8/NNly5dzP79+73j79Wrl9m4caMpKioyr7/+unn88ce92//+3GyMKbG/\ns50T77//fu85b/jw4eb+++/3HpdPP/20+eKLL4wxxrzxxhvm6aefNllZWSYvL8+MHz/evPTSS8aY\n/ztPjB071uTk5Ji8vDwr/TsTpk4s2rp1qw4cOKBBgwYpLCxMQUFB3r+mb7zxRu9tvXr10s6dO3X0\n6FFJUmBgoPbt26ejR48qNDRUDRs2lHTiL8ymTZvquuuuk9PpVMOGDXXddddp1apVp318h8Ohfv36\nKSgoSA0aNNBll13m/avhQujatauio6MVGhqq1q1b67ffftPXX3+t5s2b69prr5XT6dQNN9ygyy67\nTN999533ftdee62uuuoqBQQEKCQkRIGBgcrMzNThw4cVHByshIQESdL333+vyMhIde7cWYGBgapd\nu7ZuvvlmrVixwruvOnXqqGPHjnI6nerUqZNiYmL0/fffKzs7W2vWrNHgwYMVFhamypUrq2fPnt77\nVq5cWW3atFFISIhCQ0PVo0cPbdy4scT4OnXqpLi4OAUFBaldu3b67bffLkBXT69Pnz6qVKmSatas\nqcaNG2v79u2SThxLhw8fVmZmpgIDA73H37Zt2+RyudSvXz8FBwerevXq6t69u3f8n376qe644w7V\nqVNHTqdTt9xyiwICArR582Zt2rRJ+fn56tGjhwIDA9WsWTM1b978go7373//u6pXr66IiAg1b95c\nMTExatGihZxOp9q2bavffvvtrGOsWbOmmjVrpqCgIEVERKhr166nPMenk5ycrMqVKysmJkYJCQlq\n0KCB6tevr8DAQCUlJXl7f7bjs169erryyivldDoVExOjv/3tb9qwYYO9pv1/TqdT0okrjvn5+apW\nrZpiY2P11VdfqWvXrqpdu7ZCQkLUv39/bdmyRfv27VNkZKSuvvpqLV++XNKJ4+fw4cNq2bKld78t\nWrTQ1VdfrcDAQPXo0UO5ubnavHlzmTwPpzuXXMje+KJVq1ZKSEjwntdOHgdnc7ZzYpMmTbR+/Xrl\n5+dr3759uu2227RhwwYVFRXp119/VWJioowx+vzzzzVo0CBVrVpVISEh6tu3r1atWlVimqR3794K\nCwtTSEjIOXbm/DB1YpHL5VJ0dPQpl0I9Ho/mzJmjVatW6ciRI95L1UePHlVERISefPJJLVy4UA88\n8IBq1aql3r1769prr1VmZqZWr16t3r17l9hXhw4dTvv4lStXLvHYISEhysvLK/uBnkHVqlVPeexD\nhw6dMr1Qo0YNHT582Lt8cnripNTUVM2bN0+PPvqoIiIi1L17d9100006cOCAtm/fXqIfxcXF3iBy\nun3FxMR4/+EtLi7WwIEDveuMMSouLpYk5efn64033lBaWpqOHz8uSXK73SosLPT2NDIy8pTx+csf\na3G73ZKkAQMGaN68eXrqqafkdDr1t7/9TT169FBmZqaOHDmiPn36eO9XXFzsveSfmZmpWbNm6Z13\n3vGuLyws1KFDhxQQEKBq1ap5j1vpRJ9zcnJsD9Prj8fW6Z6Ls40xOztbM2bM0MaNG+V2u2WMUWho\n6Fkf+4+P9cdaTvb+bMfnnj17NHPmTG3btk35+fnyeDyqU6fOubbinNWqVUtDhw7Vv//9b02cOFGN\nGzfWfffdd8prMywsTFWqVNGhQ4dUq1Yt3XjjjZo/f766d++uZcuWqW3btiXOL79/rTmdTlWvXt17\nvJzv83C6c4kNZ+qNL0p7PjjbOTExMVFffvmlGjRooIYNG6pp06aaMmWKtm7dqoiICMXExCg7O1t5\neXkaMWJEif0EBAQoOzvbu/zH8+GFQtCwKCoqSgcPHlRRUZECA/+v1StWrNC3336r559/XjVq1FBu\nbm6Jk1G9evX05JNPyuPxaOXKlfrf//1fzZ07V9HR0Wrbtu1p5/gqiurVq5/y18iBAwfUtGlT7/If\n3zBVq1YtDRs2TMYYbdiwQc8884waN26s6OhoNWrUSC+++OIZH+/gwYOnLLdu3VrR0dFyOp16++23\nTzsn/v7772vXrl0aN26cqlWrpvT0dD3yyCMyFeyLdKtWrer9NNL27ds1atQo1a9fX1FRUYqKitIb\nb7xx2vtFRUXpjjvuUKdOnU5Zt2HDBh0+fFjFxcXesHHw4MFy9xXKZxvj22+/reLiYk2aNEkRERH6\n7rvvNG3atDJ7/LMdn6+++qr3vT1hYWH66KOPSlyNsykpKUlJSUnKz8/X7NmzNWXKFFWvXl2ZmZne\nbdxut44dO+Z9/80111yjqVOnatu2bVqxYoWeeuqpEvv8/WvN4/Ho0KFDql69uhwOh1+fh3N1ut60\natVK+fn53m2ysrLK7PHOdk5MTEzU1KlT9eOPPyoxMVFxcXE6ePCg1qxZo8TERElSRESEgoODNWHC\nBNWoUeOUxzhw4ICkU8+tFwpTJxbVr19f0dHRmjlzpnJzc1VUVKQNGzbI7XYrKChIVapUUUFBgebM\nmeO9T2FhoZYtW6bjx4/L6XQqPDxcAQEBcjgc6tChg3744QetWbNGHo9HhYWF2rx5s3bt2uXHUZ6b\npKQkpaWl6YcffpDH49FXX32lPXv2qFWrVme8z9KlS5Wdna2AgACFh4dLOjEtdPIqz5IlS1RYWCiP\nx6MdO3Zo69at3vump6dr+fLl8ng8WrZsmfbv369rrrlGkZGRuuaaazRjxgwdP35cxhgdPHjQ+90f\nbrdbwcHBCg8P1/Hjx7Vw4UK7jbFk5cqV3n8AwsPD5XA45HA4VL9+fUVERGjBggXKy8tTcXGx9u7d\n6710f+utt+q9995Tenq6jDFyu91as2aNcnNz1ahRI4WEhGjx4sUqKirSunXrlJaW5s9hntbZxuh2\nu1WpUiWFh4fr0KFD+uCDD0rcv2rVqtq/f3+pH/9sx6fb7VZYWJhCQ0O1Z88effbZZ6Uf7DnYvXu3\n1q1bp4KCAgUGBqpSpUpyOBxq3769PvroI+3Zs0cFBQWaPXu26tevr1q1akk6MQ3XoUMHTZo0SVWq\nVPFO6Z6Ulpamn376SUVFRVq0aJFCQ0O900rn8zxcSGfqTd26dbVx40bt379feXl5WrBgQZk95tnO\niVFRUapWrZqWLFmixMREBQQEqFGjRvr000+9U6EOh0O33HKLZs6c6b0Skp2dXWJK2p+4omGR0+nU\nqFGj9MYbb2jw4MEqLi5WYmKihg4dqrS0NA0YMEBVqlRR3759S9xv+fLlmjFjhjwej2JiYjRixAgF\nBwcrKipKzzzzjGbNmqWJEydKkuLj40tc/i/vLrvsMj3++OOaNWuWDh48qEsvvVSjRo3SJZdccsb7\nrFu3Tm+99Zby8/MVGRmpBx98UDVr1pQkPf/883rzzTf1zjvvqKioSLVr11a/fv28923ZsqXWrl2r\nadOmKSoqSiNHjlSVKlUkSUOHDtWcOXP0yCOP6Pjx44qKitItt9yiFi1aqGvXrnr55Zd19913q1q1\naurevbu++eYbu82xYNu2bZo5c6ZycnJUuXJldenSxftX0KhRozRr1iw9+OCDysvLU40aNZScnCxJ\nuu6665Sfn68JEybowIEDCgkJUUJCgpo0aaLAwEA9+eSTmjJliv71r3+pSZMm6tixowoLC/051FOc\nfP2daYy9e/fW+PHj1bt3b9WqVUsdOnTQ+++/773/yU8VzJkzR7fddluJ48oXoaGhf3p8DhgwQFOn\nTtWHH36ounXrqk2bNvrxxx/LrgFnUFhYqDlz5mjXrl3ef0SHDBmiSy+9VFlZWXrmmWe8nzr546X4\nTp066cMPP9Q999xzyn47dOigDz74QC+88IJq166tJ5980nsl93yehwvpTL2pXbu2brjhBj366KMK\nDw9Xv3799OWXX5bJY/pyTkxMTNS3337r/WTiyeWTr2VJuvfee/Xuu+/qiSee0JEjR3TJJZeobdu2\nuu6668qkzvPBj6oBAHxy7Ngx3XvvvXr99de977EAzoapEwDAWRlj9NFHH6l58+aEDJwTpk4AAH+q\nsLBQffv2VWRkpPcLugBfMXUCAACsYeoEAABYQ9AAAADWEDQAAIA1BA0AAGANQQMAAFhD0ABQauPH\nj1dsbKycTqe6d+9u/fG6d+9+xh8RBFA+8T0aAEpl69atGjZsmB5//HF16dKFL3ECcFoEDQClsnnz\nZhljdP/996tu3br+LgdAOcXUCYBz1r9/f3Xp0kWSVK9ePQUEBGjWrFnKzs7WkCFDVKtWLYWEhKhF\nixZasmTJKff/5JNP1KpVK4WGhio6OlopKSnKyckpsc2vv/6q9u3bq1KlSqpXr55mz559QcYGoGxx\nRQPAORs1apQSEhL0+OOPa/HixapVq5bq1Kmjm266SQcOHNALL7ygyy67zPvLp2lpad5fmnzvvfd0\n1113acCAAXruuee0b98+PfHEE8rKyvL+/HZeXp5uvvlmhYeH65133vE+5rFjx1S/fn2/jRtAKRgA\nKIX333/fSDLp6enGGGPefPNNExgYaDZu3Fhiu1atWpk777zTGGNMcXGxiYuLM7179y6xzaeffmoC\nAgLMhg0bjDHGvPrqq8bhcJgtW7Z4t9m6datxOBymffv29gYFoMwxdQKgTCxZskSJiYlq0KCBioqK\nvP/ddNNN+v777yVJW7ZsUUZGhnr27Flim/bt28vhcGjt2rWSpNWrV6tJkyYlrl5cccUVatq0qV/G\nBqD0mDoBUCZcLpd+/PFHBQUFnbLO6XR6t5Gk22+//bT72LVrlyRp3759iomJOWV9jRo15Ha7y6pk\nABcAQQNAmahWrZquuuoqzZw580+3kaQpU6aoVatWp6y/9NJLJUm1atVSWlraKesPHDigiIiIMqoY\nwIVA0ABQJm688Ub95z//0aWXXuoNDH/UqFEj1a5dW9u3b9dDDz10xn21bNlSb7/9trZu3eqdPtm2\nbZt++ukntW3b1kr9AOwIMMYYfxcBoOL54IMPdPvttys9PV3x8fHKz89XmzZtdPToUT322GNq0KCB\nsrOz9eOPP6qgoEBjxoyRJL377rvq06ePBg4cqNtuu03h4eHKyMjQJ598ohdffFENGjSQ2+3WFVdc\noSpVqmj06NEyxujpp5/W0aNHVb9+fX311Vf+HTwAn3FFA0CZCAkJ0dKlS/Xss8/qhRde0L59+xQV\nFaVmzZppyJAh3u3uvPNOVa1aVS+88ILmzJkjSYqPj9ctt9yiGjVqSJJCQ0O1ZMkSpaSkqG/fvrrs\nsss0atQoffjhh8rOzvbL+ACUDlc0AACANXy8FQAAWEPQAAAA1hA0AACANQQNAABgDUEDAABYQ9AA\nAADWEDQAAIA1BA0AAGANQQMAAFhD0AAAANYQNAAAgDX/D9RuXQcH7udpAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "#Generate plot that shows the weights of chicks vs. feed type(scatter)\n", + "plot1= ggplot(chicken,aes(x=\"feed\",y=\"weight\"))+geom_dotplot(binaxis=\"y\",stackdir=\"center\", stackratio=0.5, dotsize=0.2)+theme_classic()\n", + "\n", + "print plot1\n", + "\n", + "#Generate plot that shows average weight vs. feed type (bar)\n", + "plot2= ggplot(chicken, aes(y=\"weight\",x=\"feed\"))+geom_bar(stat=\"summary\",fun_y=numpy.mean)\n", + "print plot2" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "### Part 2: Null Hypotheses for Difference in Chick Weight (Soybean vs. Sunflower)\n", + "\n", + "#### Hypotheses\n", + "\n", + "* *Null Hypothesis*: There is no difference in chick weight when fed soybean or sunflower seed.\n", + "* *Alternative Hypothesis*: There is a significant difference in chick weight between those fed soybean feed and those fed sunflower seed." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#Subset the Data to Only Have the Types of Feed we are Interested in\n", + "chicksub=chicken.loc[chicken.feed.isin(['soybean', 'sunflower']),:]\n", + "\n", + "#Make Dataframe for Modeling\n", + "chickFrame= pandas.DataFrame({'y':chicksub.weight,'x':0})\n", + "chickFrame.loc[chicksub.feed=='sunflower','x']=1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Part 3: Test Null Hypothesis Using Likelihood Ratio Test\n", + "\n", + "* Step 1: Define Null Model\n", + "* Step 2: Define Alternative Model\n", + "* Step 3: Run/Generate Likelihood Ratio Tests" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#Define Null\n", + "def nllikeNull(pNull,obsNull):\n", + " B0Null=pNull[0]\n", + " sigmaNull=pNull[1]\n", + " expectedNull=B0Null\n", + " nllNull=-1*norm(expectedNull,sigmaNull).logpdf(obsNull.y).sum()\n", + " return nllNull\n", + "\n", + "#Define Alternative\n", + "def nlllikeAlt(pAlt,obsAlt):\n", + " B0Alt=pAlt[0]\n", + " B1Alt=pAlt[1]\n", + " sigmaAlt=pAlt[2]\n", + " expectedAlt=B0Alt+B1Alt*obsAlt.x\n", + " nllAlt=-1*norm(expectedAlt,sigmaAlt).logpdf(obsAlt.y).sum()\n", + " return nllAlt" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimization terminated successfully.\n", + " Current function value: 145.240592\n", + " Iterations: 85\n", + " Function evaluations: 162\n", + "Estimated Parameters: Null Model\n", + "[ 284.49999051 64.53691755]\n", + "NLL: Null Model\n", + "145.240592097\n" + ] + } + ], + "source": [ + "#Null Model\n", + "initialGuessNull=numpy.array([1,1])\n", + "fitNullChickFrame=minimize(nllikeNull,initialGuessNull, method=\"Nelder-Mead\",options={'disp':True},args=chickFrame)\n", + "print(\"Estimated Parameters: Null Model\")\n", + "print(fitNullChickFrame.x)\n", + "print(\"NLL: Null Model\")\n", + "nllNullChickFrame=fitNullChickFrame.fun\n", + "#Print NLL value for Null Model\n", + "print(nllNullChickFrame)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimization terminated successfully.\n", + " Current function value: 138.469162\n", + " Iterations: 200\n", + " Function evaluations: 363\n", + "Estimated Parameters: Alternative Model\n", + "[ 246.42855057 82.48813575 49.73948886]\n", + "NLL: Alternative Model\n", + "138.469161825\n" + ] + } + ], + "source": [ + "#Alternative Model\n", + "initialGuessAlt=numpy.array([1,1,1])\n", + "fitAltChickFrame=minimize(nlllikeAlt,initialGuessAlt,method=\"Nelder-Mead\",options={'disp':True},args=chickFrame)\n", + "print(\"Estimated Parameters: Alternative Model\")\n", + "print(fitAltChickFrame.x)\n", + "print(\"NLL: Alternative Model\")\n", + "nllAltChickFrame=fitAltChickFrame.fun\n", + "#Print NLL value for Alternative Model\n", + "print(nllAltChickFrame)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Part 4: Interpret Results of Likelihood Ratio Test\n", + "\n", + "* Step 1: Calculate D value\n", + "* Step 2: Calculate p value\n", + "\n", + "##### Conclusions:\n", + "As our p-value was less than 0.05, we can report that our alternative hypothesis was correct. This means that there is a significant difference between the chicks who were fed soybean feed vs. those who were fed sunflower feed." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "D Value\n", + "13.5428605444\n", + "p-value\n", + "0.000233176728695\n" + ] + } + ], + "source": [ + "#Calculate D value\n", + "DchickFrame=2*(nllNullChickFrame-nllAltChickFrame)\n", + "print(\"D Value\")\n", + "print(DchickFrame)\n", + "\n", + "#Calculate p value\n", + "pChickFrame=1-scipy.stats.chi2.cdf(x=DchickFrame,df=1)\n", + "print(\"p-value\")\n", + "print(pChickFrame)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}