{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-12-23T00:50:45.831444Z",
     "start_time": "2020-12-23T00:50:43.030179Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# https://ichi.pro/es/anova-explicado-con-un-ejemplo-81967682531701\n",
    "# https://towardsdatascience.com/anova-explained-with-an-example-4a8c9699b175\n",
    "\n",
    "# Imports\n",
    "import pandas as pd\n",
    "import statsmodels.api as sm\n",
    "from statsmodels.formula.api import ols\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "from scipy.stats import f, norm\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-12-23T00:50:46.798682Z",
     "start_time": "2020-12-23T00:50:45.912815Z"
    },
    "collapsed": true
   },
   "outputs": [
    {
     "ename": "ParserError",
     "evalue": "Error tokenizing data. C error: Expected 1 fields in line 129, saw 2\n",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mParserError\u001b[0m                               Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-2-581499649a90>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mlarger_df\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'winemag-data_first150k.csv'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36mread_csv\u001b[0;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, dialect, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision)\u001b[0m\n\u001b[1;32m    684\u001b[0m     )\n\u001b[1;32m    685\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 686\u001b[0;31m     \u001b[0;32mreturn\u001b[0m \u001b[0m_read\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    687\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    688\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36m_read\u001b[0;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[1;32m    456\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    457\u001b[0m     \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 458\u001b[0;31m         \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mparser\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnrows\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    459\u001b[0m     \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    460\u001b[0m         \u001b[0mparser\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36mread\u001b[0;34m(self, nrows)\u001b[0m\n\u001b[1;32m   1194\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnrows\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1195\u001b[0m         \u001b[0mnrows\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_validate_integer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"nrows\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnrows\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1196\u001b[0;31m         \u001b[0mret\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnrows\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1197\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1198\u001b[0m         \u001b[0;31m# May alter columns / col_dict\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/io/parsers.py\u001b[0m in \u001b[0;36mread\u001b[0;34m(self, nrows)\u001b[0m\n\u001b[1;32m   2153\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnrows\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2154\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2155\u001b[0;31m             \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_reader\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnrows\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   2156\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2157\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_first_chunk\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader.read\u001b[0;34m()\u001b[0m\n",
      "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader._read_low_memory\u001b[0;34m()\u001b[0m\n",
      "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader._read_rows\u001b[0;34m()\u001b[0m\n",
      "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader._tokenize_rows\u001b[0;34m()\u001b[0m\n",
      "\u001b[0;32mpandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.raise_parser_error\u001b[0;34m()\u001b[0m\n",
      "\u001b[0;31mParserError\u001b[0m: Error tokenizing data. C error: Expected 1 fields in line 129, saw 2\n"
     ]
    }
   ],
   "source": [
    "larger_df = pd.read_csv('winemag-data_first150k.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-12-23T00:50:47.019807Z",
     "start_time": "2020-12-23T00:50:46.946326Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Unnamed: 0</th>\n",
       "      <th>country</th>\n",
       "      <th>description</th>\n",
       "      <th>designation</th>\n",
       "      <th>points</th>\n",
       "      <th>price</th>\n",
       "      <th>province</th>\n",
       "      <th>region_1</th>\n",
       "      <th>region_2</th>\n",
       "      <th>variety</th>\n",
       "      <th>winery</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>US</td>\n",
       "      <td>This tremendous 100% varietal wine hails from ...</td>\n",
       "      <td>Martha's Vineyard</td>\n",
       "      <td>96</td>\n",
       "      <td>235.0</td>\n",
       "      <td>California</td>\n",
       "      <td>Napa Valley</td>\n",
       "      <td>Napa</td>\n",
       "      <td>Cabernet Sauvignon</td>\n",
       "      <td>Heitz</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>Spain</td>\n",
       "      <td>Ripe aromas of fig, blackberry and cassis are ...</td>\n",
       "      <td>Carodorum Selección Especial Reserva</td>\n",
       "      <td>96</td>\n",
       "      <td>110.0</td>\n",
       "      <td>Northern Spain</td>\n",
       "      <td>Toro</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Tinta de Toro</td>\n",
       "      <td>Bodega Carmen Rodríguez</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>US</td>\n",
       "      <td>Mac Watson honors the memory of a wine once ma...</td>\n",
       "      <td>Special Selected Late Harvest</td>\n",
       "      <td>96</td>\n",
       "      <td>90.0</td>\n",
       "      <td>California</td>\n",
       "      <td>Knights Valley</td>\n",
       "      <td>Sonoma</td>\n",
       "      <td>Sauvignon Blanc</td>\n",
       "      <td>Macauley</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>US</td>\n",
       "      <td>This spent 20 months in 30% new French oak, an...</td>\n",
       "      <td>Reserve</td>\n",
       "      <td>96</td>\n",
       "      <td>65.0</td>\n",
       "      <td>Oregon</td>\n",
       "      <td>Willamette Valley</td>\n",
       "      <td>Willamette Valley</td>\n",
       "      <td>Pinot Noir</td>\n",
       "      <td>Ponzi</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>France</td>\n",
       "      <td>This is the top wine from La Bégude, named aft...</td>\n",
       "      <td>La Brûlade</td>\n",
       "      <td>95</td>\n",
       "      <td>66.0</td>\n",
       "      <td>Provence</td>\n",
       "      <td>Bandol</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Provence red blend</td>\n",
       "      <td>Domaine de la Bégude</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Unnamed: 0 country                                        description  \\\n",
       "0           0      US  This tremendous 100% varietal wine hails from ...   \n",
       "1           1   Spain  Ripe aromas of fig, blackberry and cassis are ...   \n",
       "2           2      US  Mac Watson honors the memory of a wine once ma...   \n",
       "3           3      US  This spent 20 months in 30% new French oak, an...   \n",
       "4           4  France  This is the top wine from La Bégude, named aft...   \n",
       "\n",
       "                            designation  points  price        province  \\\n",
       "0                     Martha's Vineyard      96  235.0      California   \n",
       "1  Carodorum Selección Especial Reserva      96  110.0  Northern Spain   \n",
       "2         Special Selected Late Harvest      96   90.0      California   \n",
       "3                               Reserve      96   65.0          Oregon   \n",
       "4                            La Brûlade      95   66.0        Provence   \n",
       "\n",
       "            region_1           region_2             variety  \\\n",
       "0        Napa Valley               Napa  Cabernet Sauvignon   \n",
       "1               Toro                NaN       Tinta de Toro   \n",
       "2     Knights Valley             Sonoma     Sauvignon Blanc   \n",
       "3  Willamette Valley  Willamette Valley          Pinot Noir   \n",
       "4             Bandol                NaN  Provence red blend   \n",
       "\n",
       "                    winery  \n",
       "0                    Heitz  \n",
       "1  Bodega Carmen Rodríguez  \n",
       "2                 Macauley  \n",
       "3                    Ponzi  \n",
       "4     Domaine de la Bégude  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "larger_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-12-23T00:50:47.338245Z",
     "start_time": "2020-12-23T00:50:47.242455Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "~~~~~~~~~~~Row before dropping NAs: 150930~~~~~~~~~~~\n",
      "~~~~~~~~~~~Row after dropping NAs: 137235~~~~~~~~~~~\n"
     ]
    }
   ],
   "source": [
    "print('~~~~~~~~~~~Row before dropping NAs: {}~~~~~~~~~~~'.format(len(larger_df)))\n",
    "larger_df.dropna(subset=['price'], inplace=True)\n",
    "print('~~~~~~~~~~~Row after dropping NAs: {}~~~~~~~~~~~'.format(len(larger_df)))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-12-23T00:50:47.709333Z",
     "start_time": "2020-12-23T00:50:47.561776Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Italy     1000\n",
       "France    1000\n",
       "US        1000\n",
       "Name: country, dtype: int64"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Collect Data \n",
    "samples = 1000\n",
    "max_price = 200\n",
    "seed = 42\n",
    "\n",
    "# Pull Italy\n",
    "germany = larger_df[(larger_df.country=='Italy') & (larger_df.price<max_price)].sample(samples, random_state=seed)\n",
    "\n",
    "# Pull US\n",
    "united_states = larger_df[(larger_df.country=='US') & (larger_df.price<max_price)].sample(samples, random_state=seed)\n",
    "\n",
    "# Pull Spain \n",
    "france = larger_df[(larger_df.country=='France') & (larger_df.price<max_price)].sample(samples, random_state=seed)\n",
    "\n",
    "\n",
    "data_list = [germany, united_states, france]\n",
    "wine_df = pd.concat(data_list)\n",
    "\n",
    "wine_df.country.value_counts()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-12-23T00:50:48.387560Z",
     "start_time": "2020-12-23T00:50:48.242262Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sum_sq</th>\n",
       "      <th>df</th>\n",
       "      <th>F</th>\n",
       "      <th>PR(&gt;F)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>country</th>\n",
       "      <td>6.039731e+03</td>\n",
       "      <td>2.0</td>\n",
       "      <td>4.069736</td>\n",
       "      <td>0.017176</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Residual</th>\n",
       "      <td>2.223863e+06</td>\n",
       "      <td>2997.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                sum_sq      df         F    PR(>F)\n",
       "country   6.039731e+03     2.0  4.069736  0.017176\n",
       "Residual  2.223863e+06  2997.0       NaN       NaN"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# ANOVA Test \n",
    "model = ols('price ~ country', data=wine_df).fit()\n",
    "anova = sm.stats.anova_lm(model, typ=2)\n",
    "\n",
    "anova"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-12-23T00:50:49.403765Z",
     "start_time": "2020-12-23T00:50:48.888113Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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2HZf+5D3bc//Yxx2WUox3DAZbux7rHVCSwfzEV0joutEdJ2w1v080rUtpjmIaU7imgPL4UA5IKlrpDSNpKaRRMPUFIamkbItTC0dL1qkv9r98L0wtXRHfzgzFmMvjDZoadvrLstZjsfp4daTbj1kbTwUNLWPAVK//e1vaWho4LbbbgPANE3Gjx/PihUr8Pv9+9znwgsv5O6772bSpEkAPPXUUyxdupSrrrqKm266iRdffDHzWl/4whf4+te/zplnnrnH9kybNo2KioqDumghhBBCCHHwtm3bxrvvvrvP/fbZw1lWVsbKlSszy42NjQSDwUywua99ysrKaGrqnjHX1NREaWkp5eXlNDc3o5TK9Pjt2LY3fbkoIYQQQggxcOxzUMSpp57KypUr2bx5MwBPPvkkM2fO7PM+M2fO5B//+AemadLZ2cnzzz/PrFmzKC0tZciQIbzwwgsAvPHGG+i6zujRow/h5QkhhBBCiP62z1vqAEuWLOGXv/wlhmEwZMgQ7rrrLrZu3crNN9/M/Pnz97hPbm4upmly11138dZbb2EYBp///Oe55pprgHRapB/+8Ie0t7fjdrv5yU9+MjDGbwohhBBCiEOmTwGnEEIIIYQQB0ry8gghhBBCiMNKAk4hhBBCCHFYSS31AaIv5UPF4HXnnXfy0ksvEQwGARg2bBi//vWvefjhh3n66aexLIsLLriAb37zm5KndZBSSvG///u/jB49mmuuueZTV9b302TX9xrSKft2zrJyzTXXcMEFF9DW1saNN95IfX09uq7z4x//mClTpvRX08V+mj9/Pr///e/RNA2fz8dNN93EhAkT9vjZLe/3XijR71pbW9X06dPVpk2blFJK3X333erWW2/t1zaJQ+vSSy9Vy5cv77HutddeU3PnzlXRaFQlEgl1+eWXq+eff76fWigOxoYNG9QVV1yhJk2apB599FGllFJ/+ctf1LXXXqsMw1AdHR3qnHPOUStXrlRKKfW5z31OLViwQCmV/jmYPXu2sm2739ov+q6397qmpkadffbZve5//fXXq4ceekgppdSaNWvUqaeeqmKx2BFrrzhwNTU16pRTTlGNjY1KqfTv6hlnnLHXz255v/dMbqkPAL2VBn322WdRMp/rqJBKpVizZg2PPvooc+bM4Vvf+hb19fW8/PLLnH/++fj9fjweDxdddBELFizo7+aK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",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x12290b9b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot Price Distributions \n",
    "sns.set_style(\"white\")\n",
    "plt.figure(figsize=(11, 6))\n",
    "\n",
    "for name in ['US', 'Italy', 'France']:\n",
    "    sns.distplot(wine_df[wine_df.country==name].price, kde_kws=dict(linewidth=3))\n",
    "    \n",
    "    \n",
    "plt.legend(['US', 'Italy', 'France'], fontsize=13)\n",
    "plt.xlabel('Price', fontsize=15)\n",
    "plt.xticks(fontsize=12)\n",
    "plt.yticks(fontsize=12)\n",
    "\n",
    "plt.savefig('distributions.png')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-12-23T00:50:50.001727Z",
     "start_time": "2020-12-23T00:50:49.966580Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "country\n",
       "France    37.242\n",
       "Italy     35.286\n",
       "US        33.776\n",
       "Name: price, dtype: float64"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wine_df.groupby('country').mean()['price']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-12-23T00:50:50.550373Z",
     "start_time": "2020-12-23T00:50:50.499194Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Calculate Means \n",
    "mean_france = wine_df[wine_df.country == 'France']['price'].mean()\n",
    "mean_italy = wine_df[wine_df.country == 'Italy']['price'].mean()\n",
    "mean_us = wine_df[wine_df.country == 'US']['price'].mean()\n",
    "mean_overall = wine_df['price'].mean()\n",
    "\n",
    "# Calculate Variances \n",
    "var_france = wine_df[wine_df.country == 'France']['price'].var()\n",
    "var_italy = wine_df[wine_df.country == 'Italy']['price'].var()\n",
    "var_us = wine_df[wine_df.country == 'US']['price'].var()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-12-23T00:50:51.063757Z",
     "start_time": "2020-12-23T00:50:51.004552Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sum of Squares Between: 6039.73\n",
      "Sum of Squares Within: 2226089.55\n",
      "Degrees of Freedom for SSB: 2\n",
      "Degrees of Freedom for SSW: 2997\n",
      "F-Statistic: 4.06567\n"
     ]
    }
   ],
   "source": [
    "# Sum of Squares Between\n",
    "SSB = 1000*(mean_overall - mean_france)**2 + \\\n",
    "      1000*(mean_overall - mean_italy)**2 + \\\n",
    "      1000*(mean_overall - mean_us)**2 \n",
    "\n",
    "print('Sum of Squares Between: {0:.6g}'.format(SSB))\n",
    "\n",
    "\n",
    "# Sum of Squares Within \n",
    "SSW = 1000*var_france + \\\n",
    "      1000*var_italy + \\\n",
    "      1000*var_us\n",
    "\n",
    "print('Sum of Squares Within: {0:.9g}'.format(SSW))\n",
    "\n",
    "\n",
    "# Degrees of Freedom \n",
    "dof_SSB = 2\n",
    "dof_SSW = 3000-3\n",
    "\n",
    "print('Degrees of Freedom for SSB: {}'.format(dof_SSB))\n",
    "print('Degrees of Freedom for SSW: {}'.format(dof_SSW))\n",
    "\n",
    "\n",
    "# F Stastics \n",
    "f_stat = (SSB/dof_SSB) / (SSW/dof_SSW)\n",
    "\n",
    "print('F-Statistic: {0:.6g}'.format(f_stat))\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-12-23T00:50:51.764268Z",
     "start_time": "2020-12-23T00:50:51.565049Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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DerVq5fsdrsaN26sFi1aeCRYXFyc9uzZoy+++ELNmjXzyGsCPte5s3HL+YMAYBk2p4+vdxAfH6/k5GS3+y1evFg9evRQ27Zt9dVXX/kgGeAFhRcQpVwBgF8qbm85V6m7iGihdu3ayWazaf369UXO+QIAACjNSm25ioqKUtOmTZWXl6e1a9eaHQcAAKBYSm25ks5+atATV34HAADwhVJdruLi4iQZV4kH/NKAAcYAACzD7acFzXTbbbcpLCxM6enpOnjwoK655hqzIwGXh2IFAJZTqleuypQp4/rqncILlQJ+5cgRYwAAllGqy5XEoUH4uR49jAEAWEapL1fnntTu40tyAQAAXLZSX64aNmyoKlWqKCMjQ99//73ZcQAAAC6p1Jcru92ujh07SpI++eQTk9MAAABcWqkvV5LUqVMnSdKnn35qchIAAIBLK9WXYih05513ym63a+3atcrMzFS5cuXMjgQUz8CBZicAAPiYX6xcRUVF6bbbblN+fj6XZIB/6d3bGACAZfhFuZKkzp07S+K8K/iZX381BgBgGX5Trs4974pLMsBv9OtnDADAMvymXMXGxuraa6/V/v379e2335odBwAA4IL8plzZbDbX6hWHBgEAQGnlN+VKEuUKAACUen5VruLi4hQUFKQNGzboxIkTZscBAAA4j1+Vq/Lly6tly5YqKCjQ559/bnYcwL3ERGMAAJbhV+VKOntJho8++sjkJEAxdOliDADAMvyuXHXt2lWS9PHHHysvL8/kNIAbu3YZAwCwDL8rV/Xq1dP111+v48ePa926dWbHAS7t0UeNAQBYht+VK+ns6tXSpUtNTgIAAFCUX5erZcuWcbV2AABQqvhlubr11lt1zTXXaN++fUpPTzc7DgAAgItfliu73a6//vWvkozVKwAAgNLCL8uVxHlX8BMjRxoDALCMYLMDlFT79u0VERGhbdu26ZdfflF0dLTZkYDzdehgdgIAgI/57cpVmTJl1LFjR0nS8uXLTU4DXERamjEAAMvw23IlcWgQfuCJJ4wBAFiGX5eru+++W8HBwVq9erWOHDlidhwAAAD/LldRUVFq3769CgoKWL0CAAClgl+XK0nq2bOnJGnBggUmJwEAAAiActWtWzcFBwfryy+/5NAgAAAwnd+Xq4oVK3JoEKXX2LHGAAAsw+/LlST16tVLEocGUQrdfrsxAADLCIhyxaFBlFobNhgDALAMt+XK4XBo9OjR6t27t/r166d9+/YVeXzNmjXq1auXevXqpRdeeEFOp9NrYS8mKipKHTp0UEFBgZYsWeLz9wcu6rnnjAEAWIbbcrVy5Url5uZq/vz5SkxM1Pjx412PZWVlacKECZo2bZoWLFigatWq6fjx414NfDGFnxpcuHChKe8PAAAgFaNcpaamqlWrVpKk2NhY7dixw/XYtm3bFBMTo1deeUUJCQmqVKmSoqKivJf2Ejg0CAAASgO35SorK0uRkZGu+0FBQcrPz5ckHT9+XJs2bdLw4cM1Y8YMvffee/r555+9l/YSzj00uGjRIlMyAAAAuC1XkZGRys7Odt13OBwKDg6WJFWoUEE33XSTKleurIiICDVt2lQ//PCD99K6kZCQIEn64IMPTMsAAACszW25aty4sVJSUiRJaWlpiomJcT124403avfu3Tp27Jjy8/O1fft21a1b13tp3bjnnnsUHh6udevWmbaCBhQxaZIxAADLcFuu4uLiFBISoj59+mjcuHF69tlnNWvWLK1atUpRUVFKTEzUQw89pF69eikuLq5I+fK1yMhIdevWTZL04YcfmpYDcImNNQYAYBk2p4+vnRAfH6/k5GSvvf6nn36qzp076/rrr9f3338vm83mtfcC3Fq50rjt0MHcHACAEilJbwmIi4ieKy4uTlWqVNHOnTu1detWs+PA6l5+2RgAgGUEXLkKDg7WvffeK0maM2eOyWkAAIDVBFy5kqS+fftKkubOneu6bAQAAIAvBGS5atKkierVq6eDBw9q1apVZscBAAAWEpDlymazuVavkpKSTE4DAACsJCDLlST97W9/kyQlJyfrv//9r8lpYFlvv20MAMAyArZc1apVS3fccYdycnI0d+5cs+PAqurVMwYAYBkBW64k6cEHH5QkvfPOOyYngWV99JExAADLCOhydc8996hChQrasmWL0tPTzY4DK5o40RgAgGUEdLkKCwtznXvF6hUAAPCFgC5X0tlDg3PmzNHp06dNTgMAAAJdwJerRo0aqVGjRjp27JiWLl1qdhwAABDgAr5cSZzYDgAAfMcS5SohIUGhoaFauXKlfv75Z7PjwEqSkowBAFiGJcrV1VdfrZ49e0qSpk+fbnIaWMqf/mQMAMAyLFGuJGnQoEGSpJkzZ3JiO3xn/nxjAACWYZly1bx5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vvAZAIBShHLlZ8qVK6elS5dq1KhRcjgcGj58uO677z5OdC+t2rc3BgBgGZQrP1R4HtzixYsVERGhOXPmqHnz5lwdvzQaNcoYAIBlUK78WHx8vDZu3Kg///nPSk9PV5MmTfTee++ZHQsAAEujXPm5m266Sampqerbt69OnTqlAQMG6L777tPJkyfNjgZJ6tTJGACAZVCuAkDZsmX1/vvva9asWQoPD1dSUpIaNWqkdevWmR0NOTnGAAAsg3IVIGw2mwYMGKDU1FTdfPPN2rNnj1q3bq0nn3ySk90BAPAhylWAuf7667V582aNGjVKdrv2OZGRAAANp0lEQVRdr7/+umJjY7Vx40azowEAYAmUqwAUEhKiF198UV9//bUaNGig3bt3q0WLFho8eLBOnDhhdjwAAAIa5SqANW3aVKmpqXrmmWdkt9s1depU1atXT3PmzOHCo77yl78YAwCwDMpVgCtTpozGjRunbdu2qUWLFjp06JD69eun9u3b67vvvjM7XuAbPtwYAIBlUK4s4qabblJKSoreffddVaxYUV999ZUaNmyoRx99VAcPHjQ7HgAAAYNyZSF2u13333+/du3apUGDBslms2n69OmqW7euxowZw6cKvaFtW2MAAJZBubKgihUrasqUKfr222/VpUsXZWVlaeTIkapTp44mT56s06dPmx0RAAC/RbmysPr162v58uVatWqVGjdurN9++01Dhw5V3bp1NWXKFJ05c8bsiAAA+B3KFXTHHXdoy5YtWrJkiW6++Wbt379fQ4YMcZWsU6dOmR0RAAC/QbmCJOMK7926ddPWrVu1ePFi3XTTTcrIyNCQIUMUHR2t0aNHc+I7AADFQLlCEXa7XfHx8UpLS9OiRYvUrFkzHT16VC+99JJq1Kihhx9+WD/88IPZMf1Hr17GAAAsg3KFC7Lb7erevbu+/vprrV27Vl27dlVubq5mzpypBg0aqF27dpo/f75yc3PNjlq6DRpkDADAMihXuCSbzaaWLVtq6dKl2rlzpx577DGFh4dr9erV6tOnj6pXr66nn35ae/bsMTtq6XTqlDEAAMugXKHYYmJi9NZbb+nAgQOaMmWKGjZsqMOHD+uf//yn6tatq9atW2v69Ok6fvy42VFLj86djQEAWAblCpetfPnyGjRokNLS0rRx40b1799fYWFhWrt2rR599FFVrVpV3bt3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",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x122bb4f60>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# F Distribution \n",
    "plt.figure(figsize=(10, 5))\n",
    "plt.xlim(0,12)\n",
    "plt.ylim(-.005,1.2)\n",
    "\n",
    "# Plot\n",
    "dist = f(dfn=dof_SSB, dfd=dof_SSW, loc=0, scale=1)\n",
    "x = np.linspace(dist.ppf(0.000001), dist.ppf(0.99999999), 1000)\n",
    "y = dist.pdf(x) \n",
    "\n",
    "# Plot Figure\n",
    "plt.plot(x,y, '-', color='black', linewidth=2)\n",
    "plt.vlines(f_stat, color='red', ymin=-1, ymax=1.2, linestyle='--')\n",
    "plt.text(x=f_stat+.5, y=1, s='F-Stat: {:.2f}'.format(f_stat), fontsize='x-large', color='red')\n",
    "\n",
    "plt.savefig('f_distribution.png')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'wine_df' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-3-8a23040b366e>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0;31m# ANOVA Test\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mmodel\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mols\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'price ~ country'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mwine_df\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      6\u001b[0m \u001b[0manova\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstats\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0manova_lm\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtyp\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      7\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mNameError\u001b[0m: name 'wine_df' is not defined"
     ]
    }
   ],
   "source": [
    "#Automatic ANOVA\n",
    "#Like with most things in life, Python has an intuitive solution for conducting ANOVA with the statsmodel library.\n",
    "import statsmodels.api as sm\n",
    "from statsmodels.formula.api import ols\n",
    "\n",
    "# ANOVA Test \n",
    "model = ols('price ~ country', data=wine_df).fit()\n",
    "anova = sm.stats.anova_lm(model, typ=2)\n",
    "\n",
    "anova"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
