<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://www.eric-thai.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.eric-thai.com/" rel="alternate" type="text/html" /><updated>2026-04-10T17:58:05+00:00</updated><id>https://www.eric-thai.com/feed.xml</id><title type="html">Eric Thai</title><subtitle>personal description</subtitle><author><name>Eric Thai</name><email>ethai@ucsd.edu</email></author><entry><title type="html">What is Tariff Staging?</title><link href="https://www.eric-thai.com/posts/2025/tariff-staging" rel="alternate" type="text/html" title="What is Tariff Staging?" /><published>2025-01-03T00:00:00+00:00</published><updated>2025-01-03T00:00:00+00:00</updated><id>https://www.eric-thai.com/posts/2025/tariff_staging</id><content type="html" xml:base="https://www.eric-thai.com/posts/2025/tariff-staging"><![CDATA[<!--more-->

<p>There are about 373 free trade agreements (FTAs) currently in force
according to the
<a href="https://rtais.wto.org/UI/PublicMaintainRTAHome.aspx">WTO</a>.<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup> Common
among all agreements is the tariff schedule that details every product
codes and how tariffs are to be eliminated. For example, take a look at
the US’s <a href="https://ustr.gov/sites/default/files/uploads/agreements/fta/korus/Annex_2-B-1_US_Tariff_Schedule.pdf">tariff
schedule</a>
toward South Korean imports from the US-Korea FTA (i.e., KORUS). Here,
there are four columns:</p>

<ol>
  <li>
    <p><strong>HTS 8:</strong> lists the 8-digit product codes that are specific to the
US (the first 6 are internationally harmonized).</p>
  </li>
  <li>
    <p><strong>Description:</strong> provides, well, the description of the specific
product code.</p>
  </li>
  <li>
    <p><strong>Base Rate:</strong> lists the
<a href="https://www.wto.org/english/res_e/webcas_e/ltt_e/ltt1_e.htm">most-favored-nation</a>
(MFN) rate for each product at the time of negotiation.<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup></p>
  </li>
  <li>
    <p><strong>Staging Category:</strong> lists the staging category for each product.</p>
  </li>
</ol>

<p><img src="/images/ftariff/USA_KOR_schedule.png" style="display: block; margin: auto;" /></p>

<p>Immediately, any reader would be confused about what any of the “staging
category” actually means. Why does “bovine carcasses and halves fresh or
chilled” product have two separate staging categories? Why do we even
have two separate HTS codes to describe the same traded good? What is
the difference between A and D staging?</p>

<table>
  <thead>
    <tr>
      <th>HTS8</th>
      <th>Description</th>
      <th>Base Rate</th>
      <th>Staging Category</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>02011005</td>
      <td>Bovine carcasses and halves, fresh or chld., descr. in gen. note 15 of the HTS</td>
      <td>4.4 cents/kg</td>
      <td>A</td>
    </tr>
    <tr>
      <td>02011010</td>
      <td>Bovine carcasses and halves, fresh or chld., descr. in add. US note 3 to Ch. 2</td>
      <td>4.4 cents/kg</td>
      <td>D</td>
    </tr>
  </tbody>
</table>

<p>Let’s answer these questions backward. First, in order to understand the
stagings, we need to take a look at the “Tariff Elimination” Annex 2-B
under the “National Treatment and Market Access for Goods”
<a href="https://ustr.gov/sites/default/files/uploads/agreements/fta/korus/asset_upload_file904_12701.pdf">chapter</a>.</p>

<ul>
  <li>
    <p>duties on originating goods provided for in the items in <strong>staging
category</strong> <u>A</u> in a Party’s Schedule <u>shall be eliminated
entirely and such goods shall be duty-free on the date this
Agreement enters into force</u>;</p>
  </li>
  <li>
    <p>duties on originating goods provided for in the items in <strong>staging
category</strong> <u>D</u> in a Party’s Schedule <u>shall be removed in
five equal annual stages</u> beginning on the date this Agreement
enters into force, and such goods shall be duty-free, effective
January 1 of year five;</p>
  </li>
</ul>

<p>What Annex 2-B tells us is that imports of bovine carcasses and halves
that fit the description in the <a href="/files/pdf/posts/staging/HTS%20General%20Note%2015.pdf">general note 15 of the
HTS</a> (02011005)
would enter duty-free as soon as KORUS enters into force. On the other
hands, bovine carcasses and halves that fit the description in <a href="/files/pdf/posts/staging/HTS%20Chapter%202.pdf">US note
3 to HTS Chapter 2</a>
(02011010) would be phased out over five years in equal annual stages.</p>

<p>OK, now that we have figured out what each of the staging categories
means, let’s dive into what makes these two product codes different. For
02011005, the general note defines the import of bovine carcasses and
halves not to be counted against the quantity of the tariff-rate quota
if it is imported for non-commercial use.<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup> On the other hand,
02011010 specifies the maximum amount of bovine carcasses and halves in
metric tons allowed to be entered into the US (presumably for commercial
use). The note also includes a table of the quantities allowance for
specific trade partners.</p>

<table>
  <thead>
    <tr>
      <th>Country</th>
      <th>Quantity (metric ton)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Canada</td>
      <td>No limit</td>
    </tr>
    <tr>
      <td>Mexico</td>
      <td>No limit</td>
    </tr>
    <tr>
      <td>Australia</td>
      <td>378,214</td>
    </tr>
    <tr>
      <td>New Zealand</td>
      <td>213,402</td>
    </tr>
    <tr>
      <td>Argentina</td>
      <td>20,000</td>
    </tr>
    <tr>
      <td>Uruguay</td>
      <td>20,000</td>
    </tr>
    <tr>
      <td>Other countries or area</td>
      <td>65,005</td>
    </tr>
  </tbody>
</table>

<p>Hence, the interpretation of 02011010’s tariff treatment is that the
duty portion of the tariff-rate quota (4.4 cents/kg) would be phased out
over 5 years, but there would remain the maximum 65,005 metric tons
quota on Korean bovine carcasses and halves. The tariff on the two
bovine variants would look something like this:</p>

<table>
  <thead>
    <tr>
      <th>HTS</th>
      <th>Year 1</th>
      <th>Year 2</th>
      <th>Year 3</th>
      <th>Year 4</th>
      <th>Year 5</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>02011005</td>
      <td>0 cent/kg</td>
      <td> </td>
      <td> </td>
      <td> </td>
      <td> </td>
    </tr>
    <tr>
      <td>02011010</td>
      <td>3.52 cents/kg</td>
      <td>2.64 cents/kg</td>
      <td>1.76 cents/kg</td>
      <td>0.88 cents/kg</td>
      <td>0 cent/kg</td>
    </tr>
  </tbody>
</table>

<blockquote>
  <p>Side note: not every free trade agreement uses tariff staging
categories. Instead, they would clearly specify the tariffs for each
year like the table above.</p>
</blockquote>

<p>What implication does tariff phaseout have on the tariff revenue from
importing 65,005 metric tons worth of bovine carcasses each year after
KORUS enters into force versus before? The table below calculates the
dollar amount that would be collected by customs.</p>

<table>
  <thead>
    <tr>
      <th>Year</th>
      <th>Tariff Revenue<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup> from 02011010</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Year 0</td>
      <td>$2,860,220.</td>
    </tr>
    <tr>
      <td>Year 1</td>
      <td>$2,288,176</td>
    </tr>
    <tr>
      <td>Year 2</td>
      <td>$1,716,132</td>
    </tr>
    <tr>
      <td>Year 3</td>
      <td>$1,144,088</td>
    </tr>
    <tr>
      <td>Year 4</td>
      <td>$572,044</td>
    </tr>
    <tr>
      <td>Year 5</td>
      <td>0</td>
    </tr>
  </tbody>
</table>

<hr />

<p><strong>Concluding Note:</strong> This is just a technical introduction to the
complicated but super fascinating world of tariff staging. While I only
provided an example on the treatment of bovine carcasses imports from
South Korea, the figures below illustrates the wide variety of tariff
treatment and diversity of phaseout durations across all products with
all US trade partners. Future blog posts will touch on why tariff
staging is economically and politically relevant and what policymakers
and academics can learn from tariff phaseouts.</p>

<p><strong>Interested in what explains the variation in tariff phaseouts?</strong> My
<a href="https://www.dropbox.com/scl/fi/ohh7b7bg2qn14dfez9g8u/Courting_Median_Thai.pdf?rlkey=y6hs1j62hxafrsvmgqjhkb5e1&amp;st=bif8gof1&amp;dl=0">job market
paper</a>
demonstrates that the structure of US FTA tariff schedules can be
explained not just by economic factors but also by the executives’
interests in insulating themselves electorally.</p>

<p><img src="/images/ftariff/treatment_ticks.jpg" style="display: block; margin: auto;" /></p>

<p><img src="/images/ftariff/phaseout_ticks.jpg" style="display: block; margin: auto;" /></p>
<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>Free trade agreements are also known as “regional” trade
agreements (RTAs). RTAs have proliferated seven-folds since the WTO
Uruguay Round concluded in 1995. The WTO reports that there are
about 373 regional trade agreements currently in force (whereas only
45 in 1995), although the number of “preferential” trade agreement
has gone beyond 730 (<a href="#0">Dür et al. 2014</a>).</p>

      <p>Preferential trade agreements or “PTAs” are often used in the trade
agreement literature and they broadly describe any preferential
arrangement on trade between two or more countries. PTAs include (1)
limited scope agreements, which liberalize only a small number of
sectors and sometimes do not fully eliminate trade barriers for
those sectors (e.g., <a href="https://ustr.gov/countries-regions/japan-korea-apec/japan/us-japan-trade-agreement-negotiations/us-japan-trade-agreement-text">US-Japan trade
agreement</a>);
(2) services agreements, which liberalize barriers to trade on
services, not on goods (e.g., <a href="https://agreement.asean.org/media/download/20201111041414.pdf">ASEAN Trade in Services Agreement
(ATISA)</a>;
(3) customs unions, which eliminate trade barriers and establish a
common external tariff system (e.g., EU, MERCOSUR); and (4) free
trade agreements (FTAs), which eliminate substantially all trade
barriers (e.g., NAFTA, KORUS).</p>

      <p>In terms of trade in goods, only customs unions and FTAs are
authorized by/compliant with the WTO (See <a href="https://www.wto.org/english/tratop_e/region_e/region_art24_e.htm">GATT Article
XXIV</a>),
hence the smaller number in RTAs reported by the WTO. On the other
hand, services agreements are authorized under (<a href="https://www.wto.org/english/res_e/publications_e/ai17_e/gats_art5_jur.pdf">GATS Article
V</a>). <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2" role="doc-endnote">
      <p>The US’s version of MFN rates is called <em>normal trading relations
(NTR) rates.</em> <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:3" role="doc-endnote">
      <p>For example, the rule applies if the product imported by or for
the account for any US agency (a); imported for personal use,
provided that it does not exceed 5 kilograms (b); or it is imported
not for commercial purposes, but “as samples for taking orders, for
exhibition, display or sampling at a trade fair, for research, for
use by embassies of foreign governments or for testing of equipment,
provided that written approval of the Secretary of Agriculture or
his designated representative the United States Department of
Agriculture (USDA) is presented at the time of entry” (c) (<a href="/files/pdf/posts/staging/HTS%20General%20Note%2015.pdf">General
Note 15</a>). <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:4" role="doc-endnote">
      <p>1 metric ton = 1000 kg. Hence, 65,005 metric tons = 65005000 kg. <a href="#fnref:4" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Eric Thai</name><email>ethai@ucsd.edu</email></author><category term="tariff-staging" /><category term="trade-agreement" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">POLI 144AB Coding Workshop 4</title><link href="https://www.eric-thai.com/posts/2024/poli144ab_coding4" rel="alternate" type="text/html" title="POLI 144AB Coding Workshop 4" /><published>2024-08-15T00:00:00+00:00</published><updated>2024-08-15T00:00:00+00:00</updated><id>https://www.eric-thai.com/posts/2024/POLI144AB_coding4</id><content type="html" xml:base="https://www.eric-thai.com/posts/2024/poli144ab_coding4"><![CDATA[<p><a href="https://www.dropbox.com/scl/fi/o4bxw9g6xp599rpiah1qy/Workshop4.Rmd?rlkey=ti7q60m28k3ldp5kaoiw8zsev&amp;dl=0" class="btn–research">R
Script</a></p>

<p><a href="https://www.dropbox.com/scl/fo/zt19v3b0gjmi9remppfou/ACLbSZiNEjWkcT9S66SC2pk?rlkey=9jcf5yavvcvnwyqpn27ft334k&amp;dl=0" class="btn–research">Data for Workshop
4</a></p>

<!--more-->

<h2 id="load-shape-data">Load Shape Data</h2>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># install sf to make maps</span><span class="w">
</span><span class="c1"># install.packages("sf")</span><span class="w">

</span><span class="n">library</span><span class="p">(</span><span class="n">sf</span><span class="p">)</span><span class="w">
</span><span class="n">library</span><span class="p">(</span><span class="n">tidyverse</span><span class="p">)</span><span class="w">
</span><span class="n">library</span><span class="p">(</span><span class="n">here</span><span class="p">)</span><span class="w">

</span><span class="n">state_shape</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">st_read</span><span class="p">(</span><span class="n">here</span><span class="p">(</span><span class="s2">"../Teaching/SS2_2024_POLI144AB/Data/August15_Data/US States Shape Files"</span><span class="p">,</span><span class="w"> </span><span class="s2">"tl_2012_us_state.shp"</span><span class="p">))</span><span class="w"> 
</span></code></pre></div></div>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>## Reading layer `tl_2012_us_state' from data source 
##   `/Users/ericthai/Library/CloudStorage/Dropbox/Teaching/SS2_2024_POLI144AB/Data/August15_Data/US States Shape Files/tl_2012_us_state.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 56 features and 17 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -19951910 ymin: -1643352 xmax: 20021890 ymax: 11554790
## Projected CRS: Popular Visualisation CRS / Mercator
</code></pre></div></div>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">county_shape</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">st_read</span><span class="p">(</span><span class="n">here</span><span class="p">(</span><span class="s2">"../Teaching/SS2_2024_POLI144AB/Data/August15_Data/US County Shape Files"</span><span class="p">,</span><span class="w"> </span><span class="s2">"cb_2018_us_county_500k.shp"</span><span class="p">))</span><span class="w"> 
</span></code></pre></div></div>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>## Reading layer `cb_2018_us_county_500k' from data source 
##   `/Users/ericthai/Library/CloudStorage/Dropbox/Teaching/SS2_2024_POLI144AB/Data/August15_Data/US County Shape Files/cb_2018_us_county_500k.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 3233 features and 9 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -179.1489 ymin: -14.5487 xmax: 179.7785 ymax: 71.36516
## Geodetic CRS:  NAD83
</code></pre></div></div>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">census_pop</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">readRDS</span><span class="p">(</span><span class="n">here</span><span class="p">(</span><span class="s2">"../Teaching/SS2_2024_POLI144AB/Data/August15_Data"</span><span class="p">,</span><span class="w"> </span><span class="s2">"census_pop_1990_2019_cleaned.rds"</span><span class="p">))</span><span class="w">

</span><span class="n">manufacturing_emp</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">readRDS</span><span class="p">(</span><span class="n">here</span><span class="p">(</span><span class="s2">"../Teaching/SS2_2024_POLI144AB/Data/August15_Data"</span><span class="p">,</span><span class="w"> </span><span class="s2">"manufacturing_emp.rds"</span><span class="p">))</span><span class="w">

</span><span class="n">president_vote</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">read_csv</span><span class="p">(</span><span class="n">here</span><span class="p">(</span><span class="s2">"../Teaching/SS2_2024_POLI144AB/Data/August15_Data"</span><span class="p">,</span><span class="w"> </span><span class="s2">"1976-2020-president.csv"</span><span class="p">))</span><span class="w">
</span></code></pre></div></div>

<h2 id="population-1990-vs-2016">Population 1990 vs 2016</h2>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">census_pop_cleaned</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">census_pop</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">group_by</span><span class="p">(</span><span class="n">fipstate</span><span class="p">,</span><span class="w"> </span><span class="n">year</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">summarise</span><span class="p">(</span><span class="n">pop</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nf">sum</span><span class="p">(</span><span class="n">pop</span><span class="p">,</span><span class="w"> </span><span class="n">na.rm</span><span class="o">=</span><span class="nb">T</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">ungroup</span><span class="p">()</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">filter</span><span class="p">(</span><span class="n">year</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="m">1990</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">year</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="m">2016</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">census_pop_cleaned</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">left_join</span><span class="p">(</span><span class="n">state_shape</span><span class="p">,</span><span class="w"> </span><span class="n">by</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="s2">"fipstate"</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"STATEFP"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">filter</span><span class="p">(</span><span class="o">!</span><span class="n">NAME</span><span class="w"> </span><span class="o">%in%</span><span class="w"> </span><span class="nf">c</span><span class="p">(</span><span class="s2">"Alaska"</span><span class="p">,</span><span class="w"> </span><span class="s2">"Hawaii"</span><span class="p">))</span><span class="w">
</span></code></pre></div></div>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>## # A tibble: 98 × 20
##    fipstate year       pop OBJECTID REGION DIVISION STATENS  GEOID STUSPS NAME  
##    &lt;chr&gt;    &lt;chr&gt;    &lt;dbl&gt;    &lt;int&gt; &lt;chr&gt;  &lt;chr&gt;    &lt;chr&gt;    &lt;chr&gt; &lt;chr&gt;  &lt;chr&gt; 
##  1 01       1990   4050055       32 3      6        01779775 01    AL     Alaba…
##  2 01       2016   9727050       32 3      6        01779775 01    AL     Alaba…
##  3 04       1990   3684097       54 4      8        01779777 04    AZ     Arizo…
##  4 04       2016  13882144       54 4      8        01779777 04    AZ     Arizo…
##  5 05       1990   2356586        2 3      7        00068085 05    AR     Arkan…
##  6 05       2016   5979836        2 3      7        00068085 05    AR     Arkan…
##  7 06       1990  29959515       56 4      9        01779778 06    CA     Calif…
##  8 06       2016  78334234       56 4      9        01779778 06    CA     Calif…
##  9 08       1990   3307618       43 4      8        01779779 08    CO     Color…
## 10 08       2016  11078430       43 4      8        01779779 08    CO     Color…
## # ℹ 88 more rows
## # ℹ 10 more variables: LSAD &lt;chr&gt;, MTFCC &lt;chr&gt;, FUNCSTAT &lt;chr&gt;, ALAND &lt;dbl&gt;,
## #   AWATER &lt;dbl&gt;, INTPTLAT &lt;chr&gt;, INTPTLON &lt;chr&gt;, Shape_Leng &lt;dbl&gt;,
## #   Shape_Area &lt;dbl&gt;, geometry &lt;MULTIPOLYGON [m]&gt;
</code></pre></div></div>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">census_pop_cleaned</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">left_join</span><span class="p">(</span><span class="n">state_shape</span><span class="p">,</span><span class="w"> </span><span class="n">by</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="s2">"fipstate"</span><span class="o">=</span><span class="s2">"STATEFP"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">filter</span><span class="p">(</span><span class="o">!</span><span class="n">NAME</span><span class="w"> </span><span class="o">%in%</span><span class="w"> </span><span class="nf">c</span><span class="p">(</span><span class="s2">"Alaska"</span><span class="p">,</span><span class="w"> </span><span class="s2">"Hawaii"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">ggplot</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">geom_sf</span><span class="p">(</span><span class="n">aes</span><span class="p">(</span><span class="n">geometry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">geometry</span><span class="p">,</span><span class="w"> </span><span class="n">fill</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pop</span><span class="p">),</span><span class="w"> </span><span class="n">color</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"grey5"</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">facet_grid</span><span class="p">(</span><span class="n">rows</span><span class="o">=</span><span class="n">vars</span><span class="p">(</span><span class="n">year</span><span class="p">))</span><span class="w"> 
</span></code></pre></div></div>

<p><img src="/images/post/poli144ad_coding4/unnamed-chunk-5-1.png" style="display: block; margin: auto;" /></p>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># customize! </span><span class="w">
</span><span class="n">census_pop_cleaned</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">left_join</span><span class="p">(</span><span class="n">state_shape</span><span class="p">,</span><span class="w"> </span><span class="n">by</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="s2">"fipstate"</span><span class="o">=</span><span class="s2">"STATEFP"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">filter</span><span class="p">(</span><span class="o">!</span><span class="n">NAME</span><span class="w"> </span><span class="o">%in%</span><span class="w"> </span><span class="nf">c</span><span class="p">(</span><span class="s2">"Alaska"</span><span class="p">,</span><span class="w"> </span><span class="s2">"Hawaii"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">mutate</span><span class="p">(</span><span class="n">pop_100000</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pop</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="m">100000</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">ggplot</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">geom_sf</span><span class="p">(</span><span class="n">aes</span><span class="p">(</span><span class="n">geometry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">geometry</span><span class="p">,</span><span class="w"> </span><span class="n">fill</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pop_100000</span><span class="p">),</span><span class="w"> </span><span class="n">color</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"grey5"</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">theme_bw</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">theme</span><span class="p">(</span><span class="n">axis.text.x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">    </span><span class="c1"># Remove x-axis text</span><span class="w">
        </span><span class="n">axis.text.y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">    </span><span class="c1"># Remove y-axis text</span><span class="w">
        </span><span class="n">axis.title.x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">   </span><span class="c1"># Remove x-axis title</span><span class="w">
        </span><span class="n">axis.title.y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">   </span><span class="c1"># Remove y-axis title</span><span class="w">
        </span><span class="n">axis.ticks</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">     </span><span class="c1"># Remove axis ticks</span><span class="w">
        </span><span class="n">panel.grid.major</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">  </span><span class="c1"># Remove major grid lines</span><span class="w">
        </span><span class="n">panel.grid.minor</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">
        </span><span class="n">legend.text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_text</span><span class="p">(</span><span class="n">size</span><span class="o">=</span><span class="m">6</span><span class="p">))</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="c1"># change the color</span><span class="w">
  </span><span class="n">scale_fill_viridis_c</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">labs</span><span class="p">(</span><span class="n">title</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"Population Per 100000"</span><span class="p">,</span><span class="w">
       </span><span class="n">fill</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">""</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">facet_grid</span><span class="p">(</span><span class="n">rows</span><span class="o">=</span><span class="n">vars</span><span class="p">(</span><span class="n">year</span><span class="p">))</span><span class="w">
</span></code></pre></div></div>

<p><img src="/images/post/poli144ad_coding4/unnamed-chunk-6-1.png" style="display: block; margin: auto;" /></p>

<h2 id="manufacturing-employment-in-1990-vs-2016">Manufacturing Employment in 1990 vs 2016</h2>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># customize! </span><span class="w">
</span><span class="n">manufacturing_emp</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">left_join</span><span class="p">(</span><span class="n">state_shape</span><span class="p">,</span><span class="w"> </span><span class="n">by</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="s2">"fipstate"</span><span class="o">=</span><span class="s2">"STATEFP"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">filter</span><span class="p">(</span><span class="o">!</span><span class="n">NAME</span><span class="w"> </span><span class="o">%in%</span><span class="w"> </span><span class="nf">c</span><span class="p">(</span><span class="s2">"Alaska"</span><span class="p">,</span><span class="w"> </span><span class="s2">"Hawaii"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w"> 
  </span><span class="n">filter</span><span class="p">(</span><span class="n">year</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="m">1990</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">year</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="m">2016</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">mutate</span><span class="p">(</span><span class="n">manufacturing_emp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">manufacturing_emp</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="m">10000</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">ggplot</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">geom_sf</span><span class="p">(</span><span class="n">aes</span><span class="p">(</span><span class="n">geometry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">geometry</span><span class="p">,</span><span class="w"> </span><span class="n">fill</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">manufacturing_emp</span><span class="p">),</span><span class="w"> </span><span class="n">color</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"grey5"</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">theme_bw</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">theme</span><span class="p">(</span><span class="n">axis.text.x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">    </span><span class="c1"># Remove x-axis text</span><span class="w">
        </span><span class="n">axis.text.y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">    </span><span class="c1"># Remove y-axis text</span><span class="w">
        </span><span class="n">axis.title.x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">   </span><span class="c1"># Remove x-axis title</span><span class="w">
        </span><span class="n">axis.title.y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">   </span><span class="c1"># Remove y-axis title</span><span class="w">
        </span><span class="n">axis.ticks</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">     </span><span class="c1"># Remove axis ticks</span><span class="w">
        </span><span class="n">panel.grid.major</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">  </span><span class="c1"># Remove major grid lines</span><span class="w">
        </span><span class="n">panel.grid.minor</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">
        </span><span class="n">legend.text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_text</span><span class="p">(</span><span class="n">size</span><span class="o">=</span><span class="m">6</span><span class="p">))</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="c1"># change the color</span><span class="w">
  </span><span class="n">scale_fill_viridis_c</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">labs</span><span class="p">(</span><span class="n">title</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"Manufacturing Employment Per 10000"</span><span class="p">,</span><span class="w">
       </span><span class="n">fill</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">""</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">facet_grid</span><span class="p">(</span><span class="n">rows</span><span class="o">=</span><span class="n">vars</span><span class="p">(</span><span class="n">year</span><span class="p">))</span><span class="w">
</span></code></pre></div></div>

<p><img src="/images/post/poli144ad_coding4/unnamed-chunk-7-1.png" style="display: block; margin: auto;" /></p>

<h2 id="manufacturing-proportion-1990-vs-2016">Manufacturing Proportion 1990 vs 2016</h2>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># customize! </span><span class="w">
</span><span class="n">manufacturing_emp</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">left_join</span><span class="p">(</span><span class="n">state_shape</span><span class="p">,</span><span class="w"> </span><span class="n">by</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="s2">"fipstate"</span><span class="o">=</span><span class="s2">"STATEFP"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">filter</span><span class="p">(</span><span class="o">!</span><span class="n">NAME</span><span class="w"> </span><span class="o">%in%</span><span class="w"> </span><span class="nf">c</span><span class="p">(</span><span class="s2">"Alaska"</span><span class="p">,</span><span class="w"> </span><span class="s2">"Hawaii"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w"> 
  </span><span class="n">filter</span><span class="p">(</span><span class="n">year</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="m">1990</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">year</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="m">2016</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">ggplot</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">geom_sf</span><span class="p">(</span><span class="n">aes</span><span class="p">(</span><span class="n">geometry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">geometry</span><span class="p">,</span><span class="w"> </span><span class="n">fill</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">manufacturing_emp_prop</span><span class="p">),</span><span class="w"> </span><span class="n">color</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"grey5"</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">theme_bw</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">theme</span><span class="p">(</span><span class="n">axis.text.x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">    </span><span class="c1"># Remove x-axis text</span><span class="w">
        </span><span class="n">axis.text.y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">    </span><span class="c1"># Remove y-axis text</span><span class="w">
        </span><span class="n">axis.title.x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">   </span><span class="c1"># Remove x-axis title</span><span class="w">
        </span><span class="n">axis.title.y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">   </span><span class="c1"># Remove y-axis title</span><span class="w">
        </span><span class="n">axis.ticks</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">     </span><span class="c1"># Remove axis ticks</span><span class="w">
        </span><span class="n">panel.grid.major</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">  </span><span class="c1"># Remove major grid lines</span><span class="w">
        </span><span class="n">panel.grid.minor</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">
        </span><span class="n">legend.text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_text</span><span class="p">(</span><span class="n">size</span><span class="o">=</span><span class="m">6</span><span class="p">))</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="c1"># change the color</span><span class="w">
  </span><span class="n">scale_fill_viridis_c</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">labs</span><span class="p">(</span><span class="n">title</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"Manufacturing Employment Prop"</span><span class="p">,</span><span class="w">
       </span><span class="n">fill</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">""</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">facet_grid</span><span class="p">(</span><span class="n">rows</span><span class="o">=</span><span class="n">vars</span><span class="p">(</span><span class="n">year</span><span class="p">))</span><span class="w">
</span></code></pre></div></div>

<p><img src="/images/post/poli144ad_coding4/unnamed-chunk-8-1.png" style="display: block; margin: auto;" /></p>

<h2 id="presidential-election-2016-hillary-clintons-vote-share">Presidential Election 2016: Hillary Clinton’s Vote Share</h2>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">president_vote</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="c1"># put 0s before 1 digit state_fips to be able to merge</span><span class="w">
  </span><span class="n">mutate</span><span class="p">(</span><span class="n">fipstate</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sprintf</span><span class="p">(</span><span class="s2">"%02d"</span><span class="p">,</span><span class="w"> </span><span class="n">state_fips</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">left_join</span><span class="p">(</span><span class="n">state_shape</span><span class="p">,</span><span class="w"> </span><span class="n">by</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="s2">"fipstate"</span><span class="o">=</span><span class="s2">"STATEFP"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">filter</span><span class="p">(</span><span class="o">!</span><span class="n">NAME</span><span class="w"> </span><span class="o">%in%</span><span class="w"> </span><span class="nf">c</span><span class="p">(</span><span class="s2">"Alaska"</span><span class="p">,</span><span class="w"> </span><span class="s2">"Hawaii"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w"> 
  </span><span class="n">filter</span><span class="p">(</span><span class="n">year</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="m">2016</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">party_detailed</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s2">"DEMOCRAT"</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">mutate</span><span class="p">(</span><span class="n">vote_prop</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">candidatevotes</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">totalvotes</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">ggplot</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">geom_sf</span><span class="p">(</span><span class="n">aes</span><span class="p">(</span><span class="n">geometry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">geometry</span><span class="p">,</span><span class="w"> </span><span class="n">fill</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">vote_prop</span><span class="p">),</span><span class="w"> </span><span class="n">color</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"grey5"</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">theme_bw</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">theme</span><span class="p">(</span><span class="n">axis.text.x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">    </span><span class="c1"># Remove x-axis text</span><span class="w">
        </span><span class="n">axis.text.y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">    </span><span class="c1"># Remove y-axis text</span><span class="w">
        </span><span class="n">axis.title.x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">   </span><span class="c1"># Remove x-axis title</span><span class="w">
        </span><span class="n">axis.title.y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">   </span><span class="c1"># Remove y-axis title</span><span class="w">
        </span><span class="n">axis.ticks</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">     </span><span class="c1"># Remove axis ticks</span><span class="w">
        </span><span class="n">panel.grid.major</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">  </span><span class="c1"># Remove major grid lines</span><span class="w">
        </span><span class="n">panel.grid.minor</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">
        </span><span class="n">legend.text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_text</span><span class="p">(</span><span class="n">size</span><span class="o">=</span><span class="m">6</span><span class="p">))</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="c1"># change the color</span><span class="w">
  </span><span class="n">scale_fill_viridis_c</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">labs</span><span class="p">(</span><span class="n">title</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"2016 Vote Share of Hillary Clinton"</span><span class="p">,</span><span class="w">
       </span><span class="n">fill</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">""</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">facet_grid</span><span class="p">(</span><span class="n">rows</span><span class="o">=</span><span class="n">vars</span><span class="p">(</span><span class="n">year</span><span class="p">))</span><span class="w">
</span></code></pre></div></div>

<p><img src="/images/post/poli144ad_coding4/unnamed-chunk-9-1.png" style="display: block; margin: auto;" /></p>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">president_vote</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">filter</span><span class="p">(</span><span class="n">year</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="m">2016</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">filter</span><span class="p">(</span><span class="n">party_detailed</span><span class="w"> </span><span class="o">%in%</span><span class="w"> </span><span class="nf">c</span><span class="p">(</span><span class="s2">"REPUBLICAN"</span><span class="p">,</span><span class="w"> </span><span class="s2">"DEMOCRAT"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">group_by</span><span class="p">(</span><span class="n">state</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">mutate</span><span class="p">(</span><span class="n">two_party_vote_share</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">candidatevotes</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="nf">sum</span><span class="p">(</span><span class="n">candidatevotes</span><span class="p">,</span><span class="w"> </span><span class="n">na.rm</span><span class="o">=</span><span class="nb">T</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">ungroup</span><span class="p">()</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">filter</span><span class="p">(</span><span class="n">candidate</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s2">"CLINTON, HILLARY"</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">mutate</span><span class="p">(</span><span class="n">fipstate</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sprintf</span><span class="p">(</span><span class="s2">"%02d"</span><span class="p">,</span><span class="w"> </span><span class="n">state_fips</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">left_join</span><span class="p">(</span><span class="n">state_shape</span><span class="p">,</span><span class="w"> </span><span class="n">by</span><span class="o">=</span><span class="nf">c</span><span class="p">(</span><span class="s2">"fipstate"</span><span class="o">=</span><span class="s2">"STATEFP"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">filter</span><span class="p">(</span><span class="o">!</span><span class="n">NAME</span><span class="w"> </span><span class="o">%in%</span><span class="w"> </span><span class="nf">c</span><span class="p">(</span><span class="s2">"Alaska"</span><span class="p">,</span><span class="w"> </span><span class="s2">"Hawaii"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w"> 
  </span><span class="n">ggplot</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">geom_sf</span><span class="p">(</span><span class="n">aes</span><span class="p">(</span><span class="n">geometry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">geometry</span><span class="p">,</span><span class="w"> </span><span class="n">fill</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">two_party_vote_share</span><span class="p">),</span><span class="w"> </span><span class="n">color</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"grey5"</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">theme_bw</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">theme</span><span class="p">(</span><span class="n">axis.text.x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">    </span><span class="c1"># Remove x-axis text</span><span class="w">
        </span><span class="n">axis.text.y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">    </span><span class="c1"># Remove y-axis text</span><span class="w">
        </span><span class="n">axis.title.x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">   </span><span class="c1"># Remove x-axis title</span><span class="w">
        </span><span class="n">axis.title.y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">   </span><span class="c1"># Remove y-axis title</span><span class="w">
        </span><span class="n">axis.ticks</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">     </span><span class="c1"># Remove axis ticks</span><span class="w">
        </span><span class="n">panel.grid.major</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">  </span><span class="c1"># Remove major grid lines</span><span class="w">
        </span><span class="n">panel.grid.minor</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_blank</span><span class="p">(),</span><span class="w">
        </span><span class="n">legend.text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">element_text</span><span class="p">(</span><span class="n">size</span><span class="o">=</span><span class="m">6</span><span class="p">))</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="c1"># change the color</span><span class="w">
  </span><span class="n">scale_fill_viridis_c</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">labs</span><span class="p">(</span><span class="n">title</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"2016 Vote Share of Hillary Clinton"</span><span class="p">,</span><span class="w">
       </span><span class="n">fill</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">""</span><span class="p">)</span><span class="w"> 
</span></code></pre></div></div>

<p><img src="/images/post/poli144ad_coding4/unnamed-chunk-10-1.png" style="display: block; margin: auto;" /></p>]]></content><author><name>Eric Thai</name><email>ethai@ucsd.edu</email></author><category term="tidyverse" /><category term="data-science" /><category term="visualization" /><category term="data-manipulation" /><summary type="html"><![CDATA[R Script Data for Workshop 4]]></summary></entry><entry><title type="html">POLI 144AB Coding Workshop 3</title><link href="https://www.eric-thai.com/posts/2024/poli144ab_coding3" rel="alternate" type="text/html" title="POLI 144AB Coding Workshop 3" /><published>2024-08-13T00:00:00+00:00</published><updated>2024-08-13T00:00:00+00:00</updated><id>https://www.eric-thai.com/posts/2024/POLI144AB_coding3</id><content type="html" xml:base="https://www.eric-thai.com/posts/2024/poli144ab_coding3"><![CDATA[<p><a href="https://www.dropbox.com/scl/fi/0sstwkux9dx3aw2gdjv2a/Workshop3.Rmd?rlkey=0wm7y03904vd12s74e130uojc&amp;dl=0" class="btn–research">R
Script</a></p>

<!--more-->

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">library</span><span class="p">(</span><span class="n">tidyverse</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>

<h2 id="introduction">Introduction</h2>

<p>Linear regression is a fundamental statistical method used to model the
relationship between a dependent variable and one or more independent
variables. In this lesson, we will cover the basics of linear
regression, including how to implement it in R.</p>

<h3 id="what-is-linear-regression">What is Linear Regression?</h3>

<p>Linear regression aims to find the best-fitting straight line through
the data points, predicting the dependent variable (Y) from the
independent variable(s) (X).</p>

<h4 id="simple-linear-regression">Simple Linear Regression</h4>

<p>Simple linear regression involves one dependent variable and one
independent variable. The model is represented as:</p>

\[Y = \beta_0 + \beta_1X + \epsilon\]

<ul>
  <li>$Y$ is the dependent variable.</li>
  <li>$X$ is the independent variable.</li>
  <li>$\beta_0$ is the intercept.</li>
  <li>$\beta_1$ is the slope of the line.</li>
  <li>$\epsilon$ is the error term.</li>
</ul>

<h2 id="dataset">Dataset</h2>

<p>For this lesson, we’ll use the <code class="language-plaintext highlighter-rouge">mtcars</code> dataset available in R.</p>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># Load the dataset</span><span class="w">
</span><span class="n">data</span><span class="p">(</span><span class="n">mtcars</span><span class="p">)</span><span class="w">
</span><span class="n">force</span><span class="p">(</span><span class="n">mtcars</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
</code></pre></div></div>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># Build the linear model</span><span class="w">
</span><span class="c1"># lm(dependent variable ~ independent variable)</span><span class="w">
</span><span class="n">model_1</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">lm</span><span class="p">(</span><span class="n">mpg</span><span class="w"> </span><span class="o">~</span><span class="w"> </span><span class="n">wt</span><span class="p">,</span><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">mtcars</span><span class="p">)</span><span class="w">
</span><span class="n">model_2</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">lm</span><span class="p">(</span><span class="n">mpg</span><span class="w"> </span><span class="o">~</span><span class="w"> </span><span class="n">hp</span><span class="p">,</span><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">mtcars</span><span class="p">)</span><span class="w">

</span><span class="c1"># Summary of the model</span><span class="w">
</span><span class="n">summary</span><span class="p">(</span><span class="n">model_1</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>## 
## Call:
## lm(formula = mpg ~ wt, data = mtcars)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.5432 -2.3647 -0.1252  1.4096  6.8727 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(&gt;|t|)    
## (Intercept)  37.2851     1.8776  19.858  &lt; 2e-16 ***
## wt           -5.3445     0.5591  -9.559 1.29e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.046 on 30 degrees of freedom
## Multiple R-squared:  0.7528, Adjusted R-squared:  0.7446 
## F-statistic: 91.38 on 1 and 30 DF,  p-value: 1.294e-10
</code></pre></div></div>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">summary</span><span class="p">(</span><span class="n">model_2</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>## 
## Call:
## lm(formula = mpg ~ hp, data = mtcars)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.7121 -2.1122 -0.8854  1.5819  8.2360 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(&gt;|t|)    
## (Intercept) 30.09886    1.63392  18.421  &lt; 2e-16 ***
## hp          -0.06823    0.01012  -6.742 1.79e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.863 on 30 degrees of freedom
## Multiple R-squared:  0.6024, Adjusted R-squared:  0.5892 
## F-statistic: 45.46 on 1 and 30 DF,  p-value: 1.788e-07
</code></pre></div></div>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># Plotting the data points</span><span class="w">
</span><span class="n">mtcars</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">ggplot</span><span class="p">(</span><span class="n">aes</span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">wt</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">mpg</span><span class="p">))</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">geom_point</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">geom_smooth</span><span class="p">(</span><span class="n">method</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"lm"</span><span class="p">,</span><span class="w"> </span><span class="n">se</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">T</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>

<p><img src="/images/post/poli144ad_coding3/data-1.png" style="display: block; margin: auto;" /></p>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># Build the multiple linear regression model</span><span class="w">
</span><span class="n">model_mult</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">lm</span><span class="p">(</span><span class="n">mpg</span><span class="w"> </span><span class="o">~</span><span class="w"> </span><span class="n">wt</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">hp</span><span class="p">,</span><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">mtcars</span><span class="p">)</span><span class="w">

</span><span class="c1"># Summary of the model</span><span class="w">
</span><span class="n">summary</span><span class="p">(</span><span class="n">model_mult</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>## 
## Call:
## lm(formula = mpg ~ wt + hp, data = mtcars)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -3.941 -1.600 -0.182  1.050  5.854 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(&gt;|t|)    
## (Intercept) 37.22727    1.59879  23.285  &lt; 2e-16 ***
## wt          -3.87783    0.63273  -6.129 1.12e-06 ***
## hp          -0.03177    0.00903  -3.519  0.00145 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.593 on 29 degrees of freedom
## Multiple R-squared:  0.8268, Adjusted R-squared:  0.8148 
## F-statistic: 69.21 on 2 and 29 DF,  p-value: 9.109e-12
</code></pre></div></div>

<p>A one unit increase in HP (horse power) is correlated with 0.03177 units
lower in mile per gallon and is statistically significant at &lt; 0.001
level. A one unit increase in WT (weight) is correlated with 3.877 units
lower in mile per gallon and is statistically significant at 0.001
level.</p>

<h2 id="generating-predictions">Generating Predictions</h2>

<p>After building a linear regression model, we can use it to make
predictions. We’ll cover how to generate predictions for both the simple
(bivariate) and multiple (multivariate) linear regression models.</p>

<h3 id="predictions-with-simple-linear-regression">Predictions with Simple Linear Regression</h3>

<p>Using the <code class="language-plaintext highlighter-rouge">model</code> we created earlier (predicting <code class="language-plaintext highlighter-rouge">mpg</code> based on <code class="language-plaintext highlighter-rouge">wt</code>),
let’s predict the <code class="language-plaintext highlighter-rouge">mpg</code> for a car that weighs 3,000 lbs.</p>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">new_data</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">data.frame</span><span class="p">(</span><span class="n">wt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">3</span><span class="p">)</span><span class="w">

</span><span class="c1"># Generate prediction</span><span class="w">

</span><span class="n">predicted_mpg</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">predict</span><span class="p">(</span><span class="n">model_1</span><span class="p">,</span><span class="w"> </span><span class="n">newdata</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">new_data</span><span class="p">)</span><span class="w">

</span><span class="c1"># Output the prediction</span><span class="w">

</span><span class="n">predicted_mpg</span><span class="w">
</span></code></pre></div></div>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>##        1 
## 21.25171
</code></pre></div></div>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">ggplot</span><span class="p">(</span><span class="n">mtcars</span><span class="p">,</span><span class="w"> </span><span class="n">aes</span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">wt</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">mpg</span><span class="p">))</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">geom_point</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">geom_smooth</span><span class="p">(</span><span class="n">method</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"lm"</span><span class="p">,</span><span class="w"> </span><span class="n">col</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"blue"</span><span class="p">,</span><span class="w"> </span><span class="n">se</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">FALSE</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">geom_point</span><span class="p">(</span><span class="n">aes</span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">new_data</span><span class="o">$</span><span class="n">wt</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">predicted_mpg</span><span class="p">),</span><span class="w"> </span><span class="n">color</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"red"</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">3</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">geom_text</span><span class="p">(</span><span class="n">aes</span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">new_data</span><span class="o">$</span><span class="n">wt</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">predicted_mpg</span><span class="p">,</span><span class="w"> </span><span class="n">label</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nf">round</span><span class="p">(</span><span class="n">predicted_mpg</span><span class="p">,</span><span class="w"> </span><span class="m">2</span><span class="p">)),</span><span class="w"> 
            </span><span class="n">vjust</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">-1</span><span class="p">,</span><span class="w"> </span><span class="n">color</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"red"</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">labs</span><span class="p">(</span><span class="n">title</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"MPG vs Weight with Prediction"</span><span class="p">,</span><span class="w">
       </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"Car Weight (1000 lbs)"</span><span class="p">,</span><span class="w">
       </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"Miles Per Gallon"</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">theme_minimal</span><span class="p">()</span><span class="w">
</span></code></pre></div></div>

<p><img src="/images/post/poli144ad_coding3/prediction-1.png" style="display: block; margin: auto;" /></p>]]></content><author><name>Eric Thai</name><email>ethai@ucsd.edu</email></author><category term="tidyverse" /><category term="data-science" /><category term="visualization" /><category term="data-manipulation" /><summary type="html"><![CDATA[R Script]]></summary></entry><entry><title type="html">POLI 144AB Coding Workshop 2</title><link href="https://www.eric-thai.com/posts/2024/poli144ab_coding2" rel="alternate" type="text/html" title="POLI 144AB Coding Workshop 2" /><published>2024-08-08T00:00:00+00:00</published><updated>2024-08-08T00:00:00+00:00</updated><id>https://www.eric-thai.com/posts/2024/POLI144AB_coding2</id><content type="html" xml:base="https://www.eric-thai.com/posts/2024/poli144ab_coding2"><![CDATA[<p><a href="https://www.dropbox.com/scl/fi/51ru0k8p2gove2bl9iylf/workshop2.Rmd?rlkey=hjxvje7lgqvy5hpsn24bxap72&amp;dl=0" class="btn–research">R
Script</a></p>

<p><a href="https://www.dropbox.com/scl/fi/0oioskebzm75q0bzdnwxk/V-Dem-Dataset.csv?rlkey=k9so4ygzoenan627aq00x4c3y&amp;dl=0" class="btn–research">V-Dem Dataset
(v9)</a> <a href="https://www.dropbox.com/scl/fi/ffeimy5337k79x3t1frx2/V-Dem-Codebook-v9.pdf?rlkey=fmqxn3dsbjru8ag2oburlqklx&amp;dl=0" class="btn–research">V-Dem Dataset
Codebook</a></p>

<!--more-->

<p><strong>Dataset Citation:</strong> Coppedge, Michael, John Gerring, Carl Henrik
Knutsen, Staffan I. Lindberg, Jan Teorell, David Altman, Michael
Bernhard, M. Steven Fish, Adam Glynn, Allen Hicken, Anna Lührmann, Kyle
L. Marquardt, Kelly McMann, Pamela Paxton, Daniel Pemstein, Brigitte
Seim, Rachel Sigman, Svend-Erik Skaaning, Jeffrey Staton, Agnes Cornell,
Lisa Gastaldi, Haakon Gjerløw, Valeriya Mechkova, Johannes von Römer,
Aksel Sundtröm, Eitan Tzelgov, Luca Uberti, Yi-tingWang, Tore Wig, and
Daniel Ziblatt. 2019. “V-Dem Codebook v9” Varieties of Democracy (V-Dem)
Project.</p>

<h2 id="load-data">Load data</h2>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">library</span><span class="p">(</span><span class="n">here</span><span class="p">)</span><span class="w">
</span><span class="n">library</span><span class="p">(</span><span class="n">readr</span><span class="p">)</span><span class="w">
</span><span class="n">library</span><span class="p">(</span><span class="n">tidyverse</span><span class="p">)</span><span class="w">
</span><span class="n">library</span><span class="p">(</span><span class="n">haven</span><span class="p">)</span><span class="w">

</span><span class="n">vdem</span><span class="o">&lt;-</span><span class="w"> </span><span class="n">read_csv</span><span class="p">(</span><span class="s2">"~/Dropbox/Teaching/SS2_2024_POLI144AB/Data/V-Dem Dataset.csv"</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>

<h2 id="select-our-variables">Select our variables</h2>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">vdem_cleaned</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">vdem</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w"> 
  </span><span class="n">select</span><span class="p">(</span><span class="n">country_name</span><span class="p">,</span><span class="w"> </span><span class="n">year</span><span class="p">,</span><span class="w"> </span><span class="n">v2x_polyarchy</span><span class="p">,</span><span class="w"> </span><span class="n">v2mecenefm</span><span class="p">)</span><span class="w"> 
</span></code></pre></div></div>

<h2 id="histogram">Histogram</h2>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">vdem_cleaned</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">ggplot</span><span class="p">(</span><span class="n">aes</span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">v2x_polyarchy</span><span class="p">))</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">geom_histogram</span><span class="p">()</span><span class="w">
</span></code></pre></div></div>

<p><img src="/images/post/poli144ad_coding2/unnamed-chunk-3-1.png" style="display: block; margin: auto;" /></p>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">vdem_cleaned</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">ggplot</span><span class="p">(</span><span class="n">aes</span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">year</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">v2x_polyarchy</span><span class="p">,</span><span class="w"> </span><span class="n">color</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">country_name</span><span class="p">))</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">geom_line</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">theme</span><span class="p">(</span><span class="n">legend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"none"</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">guides</span><span class="p">(</span><span class="n">color</span><span class="o">=</span><span class="s2">"none"</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>

<p><img src="/images/post/poli144ad_coding2/unnamed-chunk-4-1.png" style="display: block; margin: auto;" /></p>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># quite messy here!</span><span class="w">

</span><span class="c1"># let's take a summary across all countries for each year</span><span class="w">
</span><span class="n">vdem_cleaned</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">group_by</span><span class="p">(</span><span class="n">year</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">summarise</span><span class="p">(</span><span class="n">v2x_polyarchy_average</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">mean</span><span class="p">(</span><span class="n">v2x_polyarchy</span><span class="p">,</span><span class="w"> </span><span class="n">na.rm</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">TRUE</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">ggplot</span><span class="p">(</span><span class="n">aes</span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">year</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">v2x_polyarchy_average</span><span class="p">))</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">geom_line</span><span class="p">()</span><span class="w">
</span></code></pre></div></div>

<p><img src="/images/post/poli144ad_coding2/unnamed-chunk-4-2.png" style="display: block; margin: auto;" /></p>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># that's better!</span><span class="w">
</span></code></pre></div></div>

<h2 id="scatterplot">Scatterplot</h2>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">vdem_cleaned</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">ggplot</span><span class="p">(</span><span class="n">aes</span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">v2x_polyarchy</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">v2mecenefm</span><span class="p">))</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">geom_point</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">geom_smooth</span><span class="p">(</span><span class="n">method</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"lm"</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>

<p><img src="/images/post/poli144ad_coding2/unnamed-chunk-5-1.png" style="display: block; margin: auto;" /></p>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">lm</span><span class="p">(</span><span class="n">v2mecenefm</span><span class="w"> </span><span class="o">~</span><span class="w"> </span><span class="n">v2x_polyarchy</span><span class="p">,</span><span class="w">
   </span><span class="n">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">vdem_cleaned</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>## 
## Call:
## lm(formula = v2mecenefm ~ v2x_polyarchy, data = vdem_cleaned)
## 
## Coefficients:
##   (Intercept)  v2x_polyarchy  
##        -1.575          4.479
</code></pre></div></div>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="m">-1.575</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">4.479</span><span class="w">
</span></code></pre></div></div>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>## [1] 2.904
</code></pre></div></div>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">vdem_global_mean</span><span class="w"> </span><span class="o">&lt;-</span><span class="w"> </span><span class="n">vdem_cleaned</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">group_by</span><span class="p">(</span><span class="n">year</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">summarise</span><span class="p">(</span><span class="n">v2x_polyarchy</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">mean</span><span class="p">(</span><span class="n">v2x_polyarchy</span><span class="p">,</span><span class="w"> </span><span class="n">na.rm</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">TRUE</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">mutate</span><span class="p">(</span><span class="n">country_name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"Global"</span><span class="p">)</span><span class="w">

</span><span class="n">vdem_cleaned</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">filter</span><span class="p">(</span><span class="n">country_name</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s2">"United States of America"</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">select</span><span class="p">(</span><span class="o">-</span><span class="n">v2mecenefm</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">bind_rows</span><span class="p">(</span><span class="n">vdem_global_mean</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">ggplot</span><span class="p">(</span><span class="n">aes</span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">year</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">v2x_polyarchy</span><span class="p">,</span><span class="w"> </span><span class="n">color</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">country_name</span><span class="p">))</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">geom_line</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">labs</span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"Year"</span><span class="p">,</span><span class="w">
       </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"V-Dem Polyarchy"</span><span class="p">,</span><span class="w">
       </span><span class="n">color</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"Country"</span><span class="p">,</span><span class="w">
       </span><span class="n">title</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"Polyarchy Trends over Time (US vs Global)"</span><span class="p">)</span><span class="w">
</span></code></pre></div></div>

<p><img src="/images/post/poli144ad_coding2/unnamed-chunk-8-1.png" style="display: block; margin: auto;" /></p>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">vdem_cleaned</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">filter</span><span class="p">(</span><span class="n">country_name</span><span class="w"> </span><span class="o">%in%</span><span class="w"> </span><span class="nf">c</span><span class="p">(</span><span class="s2">"United States of America"</span><span class="p">,</span><span class="w"> </span><span class="s2">"Mexico"</span><span class="p">,</span><span class="w"> </span><span class="s2">"Canada"</span><span class="p">))</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">select</span><span class="p">(</span><span class="o">-</span><span class="n">v2mecenefm</span><span class="p">)</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">ggplot</span><span class="p">(</span><span class="n">aes</span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">year</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">v2x_polyarchy</span><span class="p">,</span><span class="w"> </span><span class="n">fill</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">country_name</span><span class="p">))</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">geom_col</span><span class="p">(</span><span class="n">position</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"dodge"</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w">
  </span><span class="n">scale_fill_viridis_d</span><span class="p">()</span><span class="w">
</span></code></pre></div></div>

<p><img src="/images/post/poli144ad_coding2/unnamed-chunk-9-1.png" style="display: block; margin: auto;" /></p>

<div class="language-r highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">library</span><span class="p">(</span><span class="n">plotly</span><span class="p">)</span><span class="w">

</span><span class="n">piechart_data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">vdem_cleaned</span><span class="w"> </span><span class="o">%&gt;%</span><span class="w">
  </span><span class="n">filter</span><span class="p">(</span><span class="n">country_name</span><span class="w"> </span><span class="o">%in%</span><span class="w"> </span><span class="nf">c</span><span class="p">(</span><span class="s2">"United States of America"</span><span class="p">,</span><span class="w"> </span><span class="s2">"Mexico"</span><span class="p">,</span><span class="w"> </span><span class="s2">"Canada"</span><span class="p">)</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">year</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="m">2000</span><span class="p">)</span><span class="w"> 


</span><span class="n">plot_ly</span><span class="p">(</span><span class="n">piechart_data</span><span class="p">,</span><span class="w"> </span><span class="n">labels</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">~</span><span class="n">country_name</span><span class="p">,</span><span class="w"> </span><span class="n">values</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">~</span><span class="n">v2x_polyarchy</span><span class="p">,</span><span class="w"> </span><span class="n">type</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"pie"</span><span class="p">,</span><span class="w"> </span><span class="n">marker</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nf">list</span><span class="p">(</span><span class="n">colors</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nf">c</span><span class="p">(</span><span class="s2">"#F23030"</span><span class="p">,</span><span class="w"> </span><span class="s2">"#267365"</span><span class="p">,</span><span class="w"> </span><span class="s2">"#F28705"</span><span class="p">))</span><span class="w"> </span><span class="p">)</span><span class="w">
</span></code></pre></div></div>

<div class="plotly html-widget html-fill-item" id="htmlwidget-eb432332529eb0771b7e" style="width:1800px;height:1800px;"></div>
<script type="application/json" data-for="htmlwidget-eb432332529eb0771b7e">{"x":{"visdat":{"1a545b89b07a":["function () ","plotlyVisDat"]},"cur_data":"1a545b89b07a","attrs":{"1a545b89b07a":{"labels":{},"values":{},"marker":{"colors":["#F23030","#267365","#F28705"]},"alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"type":"pie"}},"layout":{"margin":{"b":40,"l":60,"t":25,"r":10},"hovermode":"closest","showlegend":true},"source":"A","config":{"modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false},"data":[{"labels":["Canada","Mexico","United States of America"],"values":[0.85399999999999998,0.67700000000000005,0.88],"marker":{"color":"rgba(31,119,180,1)","colors":["#F23030","#267365","#F28705"],"line":{"color":"rgba(255,255,255,1)"}},"type":"pie","frame":null}],"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.20000000000000001,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>]]></content><author><name>Eric Thai</name><email>ethai@ucsd.edu</email></author><category term="tidyverse" /><category term="data-science" /><category term="visualization" /><category term="data-manipulation" /><summary type="html"><![CDATA[R Script V-Dem Dataset (v9) V-Dem Dataset Codebook]]></summary></entry><entry><title type="html">POLI 144AB Coding Workshop 1</title><link href="https://www.eric-thai.com/posts/2024/poli144ab_coding1" rel="alternate" type="text/html" title="POLI 144AB Coding Workshop 1" /><published>2024-08-02T00:00:00+00:00</published><updated>2024-08-02T00:00:00+00:00</updated><id>https://www.eric-thai.com/posts/2024/POLI144AB_coding1</id><content type="html" xml:base="https://www.eric-thai.com/posts/2024/poli144ab_coding1"><![CDATA[<p><a href="https://www.dropbox.com/scl/fi/lpoqa456kd4t4s4xv35nm/Workshop1.R?rlkey=akn40eviihtklx3k6a312zle8&amp;dl=0" class="btn–research">R
Script</a></p>

<p><a href="https://www.dropbox.com/scl/fi/ts2u49mfsqkqyz5yg5vg9/IPE-Dataset.rdata?rlkey=2yoweaekwysc26jjayyfcl82w&amp;dl=0" class="btn–research">IPE Dataset
(v4)</a> <a href="https://www.dropbox.com/scl/fi/c6qxotkw4lnhcqjxihzw1/1.IPE_Codebook_Public_Version_4.0.docx?rlkey=hjvtr62s24uk3tmxgzr6m4454&amp;dl=0" class="btn–research">IPE Dataset
Codebook</a></p>

<!--more-->

<p><strong>Dataset Citation:</strong> Graham, Benjamin A.T.; Tucker, Jacob R., 2016,
“The International Political Economy Data Resource”,
<a href="https://doi.org/10.7910/DVN/X093TV">https://doi.org/10.7910/DVN/X093TV</a>, Harvard Dataverse, V4</p>]]></content><author><name>Eric Thai</name><email>ethai@ucsd.edu</email></author><category term="tidyverse" /><category term="data-science" /><category term="visualization" /><category term="data-manipulation" /><summary type="html"><![CDATA[R Script IPE Dataset (v4) IPE Dataset Codebook]]></summary></entry></feed>