<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-8578504479253492191</atom:id><lastBuildDate>Sat, 14 Sep 2024 15:31:08 +0000</lastBuildDate><category>data mining</category><category>projects</category><category>information engineering</category><category>lifetime value</category><category>business intelligence</category><category>statistics</category><category>LTV</category><category>crm</category><category>marketing science</category><category>marketing</category><category>prediction</category><category>attrition</category><category>analysis</category><category>credit scores</category><category>data</category><category>information</category><category>campaign measurement</category><category>decisions</category><category>design</category><category>forecasts</category><category>2018 elections</category><category>DBA</category><category>april fools</category><category>bi</category><category>bias</category><category>blogger</category><category>blogging</category><category>control groups</category><category>data science</category><category>election simulation</category><category>engineering</category><category>ha-ha only serious</category><category>indic</category><category>intelligence</category><category>knowledge discovery</category><category>learning</category><category>marekting</category><category>measurements</category><category>models</category><category>monte carlo</category><category>premiums</category><category>project management</category><category>reporting</category><category>teams</category><category>tests</category><title>Tactical Logic</title><description>Information Engineering for the Practical Data Phreak.</description><link>http://tactical-logic.blogspot.com/</link><managingEditor>noreply@blogger.com (Edmund Freeman)</managingEditor><generator>Blogger</generator><openSearch:totalResults>51</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-7549108930647629957</guid><pubDate>Fri, 27 Apr 2018 19:16:00 +0000</pubDate><atom:updated>2018-04-27T12:16:49.808-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">data</category><category domain="http://www.blogger.com/atom/ns#">data mining</category><category domain="http://www.blogger.com/atom/ns#">data science</category><category domain="http://www.blogger.com/atom/ns#">project management</category><title>Setting Up Data Science Projects</title><description>At a high level, a data science project has six components in three classes:&lt;br /&gt;
 
&lt;ol&gt;
&lt;li&gt;Objective&amp;nbsp;&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;What is the intended benefit?&lt;/li&gt;
&lt;li&gt;How is the problem going to be solved?&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;Data&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;&amp;nbsp;What is the data will be output?&lt;/li&gt;
&lt;li&gt;What is the data that will be coming in?&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;Technical&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;What will be the analytic approach?&lt;/li&gt;
&lt;li&gt;What code will be written?&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
These aren&#39;t steps. Projects often go back and forth between the 
various components. For instance, we&#39;ll realize that the code resources we have 
available won&#39;t make the solution we want possible, so we go all the way
 back to component 1.2 to see if there is a different way of solving the 
problem.&lt;br /&gt;
&lt;br /&gt;
 
The components are ordered in terms of importance! Getting the right 
problem to solve is vastly more important that writing the best code.&lt;br /&gt;
&lt;br /&gt;
 
However, almost all of the papers and talks and blogs concentrate on 
components 3.2. The least important step actually gets the most attention.&lt;br /&gt;
&lt;br /&gt;
 
That&#39;s the problem. I don&#39;t know of a good way of getting better at 
the higher-value stages except to try to always understand what you are 
doing. For instance, radically changing component 3.1 may mean you are 
really changing the business problem being addressed; just make sure 
that is what you want to do.</description><link>http://tactical-logic.blogspot.com/2018/04/setting-up-data-science-projects.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-8808048218627690092</guid><pubDate>Fri, 20 Apr 2018 16:42:00 +0000</pubDate><atom:updated>2018-04-20T09:44:14.283-07:00</atom:updated><title>Lehman&#39;s Law</title><description>JT Lehman (&lt;a href=&quot;https://www.linkedin.com/in/jt-lehman-024245/&quot; target=&quot;_blank&quot;&gt;JT Lehman&lt;/a&gt;) has a great rule for setting up data science projects:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;If we only knew _____, then we could do _____ and have impact ______. Fill in the blanks.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A lot of project problems take care of themselves if you&#39;ve got the problem definition right.</description><link>http://tactical-logic.blogspot.com/2018/04/lehmans-law.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-1002797399993202581</guid><pubDate>Sun, 15 Apr 2018 20:45:00 +0000</pubDate><atom:updated>2018-04-15T13:51:53.195-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">2018 elections</category><category domain="http://www.blogger.com/atom/ns#">election simulation</category><category domain="http://www.blogger.com/atom/ns#">monte carlo</category><title></title><description>&lt;h3&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;
Estimating the 2018 House Elections&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
Nate Silver (http://fivethirtyeight.com/) made a comment about the 2018 U.S. House of Representative Elections, in that he was expecting modest gains but the long tail for the GOP was really bad. I want to investigate that idea. We don&#39;t have enough data to make a hard calculation, but what we can do is to put some solidity around our intuitions.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I&#39;m making a Monte Carlo simulation of the election. The natural way to think about the elections is i comparison with the 2016 Presidential election, so I&#39;m going to start with the Clinton vote in each Congressional district. I&#39;m using CLinton and not Trump because it is easier to think about things from the Democratic point of view.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In the recent special elections, the Democrats have been beating the 2016 Presidential vote by about 17 points on average. The Democrats have been having an ~8 point lead lead over the GOP in the generic House tracker (https://projects.fivethirtyeight.com/congress-generic-ballot-polls) so that leaves a bunch of gap to be explained.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Anecdotally, the Democrats have a marked enthusiasm gap. I have a vague memory of 4 percent, so let&#39;s go with that. Also, it seems to me that in the recent special elections the Democrats have been fielding pretty good, above average candidates while the GOP has been fielding bad-to-terrible candidates. This makes sense to me; if I was an ambitious Democrat I would be looking to find a way to get into the game, whereas if I were an ambition Republican I would be finding excuses to sit this one out. So let&#39;s give the Democrats a 4 point &#39;better candidates&#39; boost. This won&#39;t apply to races where the GOP incumbent is staying in the race.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This gives us as a baseline matching the recent special elections&lt;/div&gt;
&lt;h3&gt;
Democratic Advantages&lt;/h3&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;Higher Approval Rating&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;8 points&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;Higher Enthusiasm&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4 points&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;Better Candidates&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4 points&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;Total&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;16 point&lt;/span&gt;s&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
which roughly matches the 17 points we are seeing from the special elections. Why am I breaking the 16 points down like this? Having three buckets makes it a lot easier to think about than having one big lump.&lt;/div&gt;
&lt;h3&gt;
Other Effects&lt;/h3&gt;
&lt;div&gt;
I&#39;m adding a 6-point incumbent advantage. The quantity here is fairly arbitrary; I&#39;d like a good way of getting a better handle on this number in this context.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I also want to add uncertainty factors. I want one factor to represent uncertainty due to the national environment changing in the next seven months. and another uncertainty factor for race-by-race factors. I&#39;m treating both as normal effects with a mean of 0 and a standard deviation of 2.75. Why 2.75 (which is admittedly a weird number to use)? I&#39;m figuring I want the Democrats to have a 99% chance of getting control of the house in the situation where the general election acts like the special elections, and calibrating the uncertainty to a standard deviation of 2.75 does that.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;Incumbent Bonus&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 6 points&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;National Uncertainty&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2.75 s.d.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;By-District Uncertainty&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2.75 s.d.&lt;/span&gt;&lt;/div&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Mainline Results (2018 general matches special elections)&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;194 is the current Dem seats in the House; 218 is how many seats the Dems need to take control of the House.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEEh_IYj-LxLBYm92rLQlIX7mH5yx0F30gr8UnDdtFjRy6Gnn8YXlf8jhoPGLTdI7_nipgkbnG9Ew4dKUmdk9cI5-7tgxEljbLFey2iYZgWUyj35l_cCoJM-VA-Jsv3xC_iwJtoeFmgvs/s1600/map1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1600&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEEh_IYj-LxLBYm92rLQlIX7mH5yx0F30gr8UnDdtFjRy6Gnn8YXlf8jhoPGLTdI7_nipgkbnG9Ew4dKUmdk9cI5-7tgxEljbLFey2iYZgWUyj35l_cCoJM-VA-Jsv3xC_iwJtoeFmgvs/s640/map1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;so we are looking at about a 60-seat gain on average, and the long tail is pretty brutal for the GOP: a 100-seat loss is quite possible.&lt;/span&gt;&lt;/div&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Other Options&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;An advantage of having a model like this is we can change the assumptions and see what the effect is.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Let&#39;s start by cutting the basic advantage in half.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVJkK4nJZV5F6j2fOqDygBDTz4ACrjLCIFGiX0s-FhtFPxyKCk4MWOqDD82hrv8RItevDiRMPiKGZjajNqzfdRDyIJeFvQbKuxwVKLk9N81fTkOos6EgY0XUSQyQomTCQst71KV7GxP1U/s1600/map2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1600&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVJkK4nJZV5F6j2fOqDygBDTz4ACrjLCIFGiX0s-FhtFPxyKCk4MWOqDD82hrv8RItevDiRMPiKGZjajNqzfdRDyIJeFvQbKuxwVKLk9N81fTkOos6EgY0XUSQyQomTCQst71KV7GxP1U/s640/map2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
Still pretty good, still about an 80% chance of winning the House.. Now let&#39;s cut the enthusiasm and candidate bonus in half as well.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNZCfGctssEa_3I7WMqyJhfRQLHc4HxN8LvNWqmEE-COFKl52JM9C0qtvusnhtGHTwDdHXC7ux_kL7ly7kESwmIR4rnz_-IXKvamfIUZ1CIKjBWWdpcyKlObXa9MKP9E-1x6OBDZ7NDG4/s1600/map3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1600&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNZCfGctssEa_3I7WMqyJhfRQLHc4HxN8LvNWqmEE-COFKl52JM9C0qtvusnhtGHTwDdHXC7ux_kL7ly7kESwmIR4rnz_-IXKvamfIUZ1CIKjBWWdpcyKlObXa9MKP9E-1x6OBDZ7NDG4/s640/map3.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
Not so good -- only a 40% chance to taking the House.&lt;/div&gt;
&lt;div&gt;
Let&#39;s try moving the base up to 8%, but keeping the enthusiasm and candidate factors at 2.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_106xml2cxei4xbXLItZtNS28n0EFF_bbxOkXlXbcglOJsD1RVQpkg66ukLcuYMhw97z3pzUYd6kRA6aErpiT-m0ifY1FxIFSzAV6r6yu-QR_nm8vqZkPZx72x9nSNdaeqCCBwwYDOl4/s1600/map4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1600&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_106xml2cxei4xbXLItZtNS28n0EFF_bbxOkXlXbcglOJsD1RVQpkg66ukLcuYMhw97z3pzUYd6kRA6aErpiT-m0ifY1FxIFSzAV6r6yu-QR_nm8vqZkPZx72x9nSNdaeqCCBwwYDOl4/s640/map4.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
This is looking pretty good -- about at 88% chance of gaining the House.&lt;/div&gt;
&lt;div&gt;
This is telling us that it is all about keeping that base advantage; better candidates do not matter that much.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Lastly, let&#39;s try to take away all the Dem advantages:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMaNgkZJepmIgGLmuUoYOdlWmVbTpceiBvv2I0HWhNFX0_2Gf553XkxvX3dI1SQ-5nsmWP8q116g-G74-Ov2tehr7IFi8qRD41HTzWTe-9JH8-PwriLAEUzmdp2TJ46g97DgWQ_gAp58I/s1600/map5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1600&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMaNgkZJepmIgGLmuUoYOdlWmVbTpceiBvv2I0HWhNFX0_2Gf553XkxvX3dI1SQ-5nsmWP8q116g-G74-Ov2tehr7IFi8qRD41HTzWTe-9JH8-PwriLAEUzmdp2TJ46g97DgWQ_gAp58I/s640/map5.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;We let a House that looks a lot like what we got in 2016. This is a decent sanity check for the method.&lt;/span&gt;&lt;/div&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;The Actual Code&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# coding: utf-8&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# In[1]:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;###################################################################&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# The goal of this program is to get an idea of the possibilities #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# and spreads of the 2018 house election. We don&#39;t have enought&amp;nbsp; &amp;nbsp;#&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# data to make a real prediction, but we can make something that&amp;nbsp; #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# can give us an idea of the possibilities.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# Recent special elections have been running in the Democrats&#39;&amp;nbsp; &amp;nbsp; #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# favor, typically doing 15-20 basis points better that the 2016&amp;nbsp; #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# Trump win. To get a better handle on the wins, we break the Dem #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# Advantage down into three chunks&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp;1) Basic favorability advantage; right now that is running&amp;nbsp; #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 7-8 basis points in the Dem&#39;s favor&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp;2) Enthusiasm gap: It seeems like Dems are getting to the&amp;nbsp; &amp;nbsp;#&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; polls in much higher numbers; I have heard 4 basis points#&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp;3) Better candidates. It seems like the Dems have been&amp;nbsp; &amp;nbsp; &amp;nbsp; #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fielding much better candidates that the GOP in the&amp;nbsp; &amp;nbsp; &amp;nbsp; #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; recent races; taking 4 basis points here makes the total #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Dem advantage match their special election performance&amp;nbsp; &amp;nbsp;#&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# The &#39;better candidates&#39; factor applies to campaigns where either#&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# the Dem is the incumbent, or the GOP incument is not running for#&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# some reason.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# We also have a factor for incumbency. Right now it it set at 6&amp;nbsp; #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# basis points; this is out of thin air and a good way to improve #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# the model is to get a better understanding of this factor.&amp;nbsp; &amp;nbsp; &amp;nbsp; #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# Lastly, we have to factors that represent uncertainty. One&amp;nbsp; &amp;nbsp; &amp;nbsp; #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# factor is a normal-distributed random number that applies to all#&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# the races, representing changes in the national mood; the other #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# is a race-by-race random normal number. Right now both have mean#&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# 0 and the same standard deviation. The spread was calibrated to #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# give the Democrats a 99% chance of winning the house under&amp;nbsp; &amp;nbsp; &amp;nbsp; #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# the most optimistic scenario I considered, which was&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp;basic +8&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp;enthusiasm +4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp;candidate +4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# This corresponds to the results in the special elections so it&amp;nbsp; #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# is possible the GOP could do much worse.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;###################################################################&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;import pandas as pd&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;import numpy as np&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;import matplotlib as mp&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;import matplotlib.mlab as mlab&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;import matplotlib.pyplot as plt&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# In[2]:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;election=pd.read_csv(&quot;C:/work/election2018/election2018v2.txt&quot;,sep=&#39;\t&#39;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# In[3]:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;election.head()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# In[4]:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# This is where the paramters for the simulation get set&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# spread = 3.25 goes with incumbent=4.0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# spread = 2.25 goes with incumbent=8.0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# spread = 2.75 goes with incumbent=6.0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;demBoost = 8.0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;demEnthus = 4.0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;candidateFactor=4.0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;incumbent=6.0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;spread = 2.75&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;sims = 10000&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;def demParty(x):&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; if x==&#39;Democratic Party&#39;:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; else:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;def winf(x):&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; if x&amp;gt;50.0:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; else:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;winList=[]&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# In[5]:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# Running the election simulations&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# candidateFactor does not apply if the the incumbent is a Republican who is running.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# We are baing the results off of the Clinton percent in the 2016 election, so the incumbent&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# effect for GOP candidates is negative.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;for j in range(sims):&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; natRand = np.random.normal(0,spread,1)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; disRand = np.random.normal(0,spread,election.shape[0])&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; election[&#39;demBoost&#39;]=demBoost&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; election[&#39;demEnthus&#39;]=demEnthus&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; election[&#39;candidateFactor&#39;] = ( election[&#39;Party&#39;].apply(demParty)*candidateFactor+&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (1-election[&#39;Party&#39;].apply(demParty))*election[&#39;Retiring&#39;]*candidateFactor)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; election[&#39;incumbent&#39;] = (1-election[&#39;Retiring&#39;])*incumbent*(-1+2*election[&#39;Party&#39;].apply(demParty))&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; election[&#39;result&#39;]=(election[&#39;Clinton&#39;]+election[&#39;demBoost&#39;]+election[&#39;demEnthus&#39;]+election[&#39;candidateFactor&#39;]+&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; election[&#39;incumbent&#39;]+natRand+disRand)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; election[&#39;wins&#39;] = election[&#39;result&#39;].apply(winf)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; winList.append(election[&#39;wins&#39;].sum())&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# In[6]:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# Create the histograms of the simulations&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;font = {&#39;weight&#39; : &#39;bold&#39;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39;size&#39;&amp;nbsp; &amp;nbsp;: 120}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;mp.rc(&#39;font&#39;, **font)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;plt.figure(figsize=(120,120))&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;plt.hist(winList, 20, density=False,facecolor=&#39;blue&#39;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;plt.xlabel(&#39;Democratic Wins; Green Line is 218, Red Line is 194&#39;,fontsize=200)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;plt.ylabel(&#39;Simulations Out Of &#39;+str(sims),fontsize=200)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;title1=&#39;Democratic House Wins: Base Advantage &#39;+str(demBoost)+&#39; Enthusiasm \n&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;title2= str(demEnthus)+&#39; Candidate Factor &#39;+str(candidateFactor)+&#39; Incumbancy &#39; + str(incumbent)+&#39; Random &#39;+str(spread)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;plt.title(title1+title2,fontsize=200)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;plt.axvline(218,linewidth=40,color=&#39;xkcd:bright green&#39;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;plt.axvline(194,linewidth=40,color=&#39;xkcd:red&#39;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;plt.savefig(&#39;C:\work\election2018\map5.png&#39;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# In[7]:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# Democratic worst result&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;min(winList)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# In[8]:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;# the percent chance of the Dems not taking the house&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;len([x for x in winList if x &amp;lt; 220 ])/sims&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://tactical-logic.blogspot.com/2018/04/estimating-2018-house-elections-nate.html</link><author>noreply@blogger.com (Edmund Freeman)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEEh_IYj-LxLBYm92rLQlIX7mH5yx0F30gr8UnDdtFjRy6Gnn8YXlf8jhoPGLTdI7_nipgkbnG9Ew4dKUmdk9cI5-7tgxEljbLFey2iYZgWUyj35l_cCoJM-VA-Jsv3xC_iwJtoeFmgvs/s72-c/map1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-8486410747487154730</guid><pubDate>Sat, 14 Nov 2015 18:53:00 +0000</pubDate><atom:updated>2015-11-14T10:53:19.123-08:00</atom:updated><title>Data Science - Live for the Learning Curve</title><description>I started doing data science in 1994. The tools I&#39;ve used, in no particular order, are&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;VSAM, JCL, SAS, SQL, PL/SQL, T-SQL, c-shell, Perl, R, Python, Java, Visual Basic, Tableau, Excel, flat files, Hadoop, HBase, Pig, Hive, DecisionSeries, AdminPortal&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;That&#39;s a neat 21 tools in 21 years, and actually they are kind of obsolete already. There&#39;s a whole new data science paradigm starting of companies selling algorithms as APIs: send your data off in a web call, get a score back. Algorithms As A Service. Microsoft and Algorithmia come to mind.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Whatever you&#39;re using now, wait a year: you&#39;ll have something new in your toolkit. If you&#39;re just getting through a data science course with R, Python, and Hadoop; well, that should keep you a couple of years.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Live for the learning curve.</description><link>http://tactical-logic.blogspot.com/2015/11/data-science-live-for-learning-curve.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-2573510917821450868</guid><pubDate>Sun, 16 Aug 2009 21:50:00 +0000</pubDate><atom:updated>2009-08-16T14:55:42.941-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">campaign measurement</category><category domain="http://www.blogger.com/atom/ns#">marketing science</category><category domain="http://www.blogger.com/atom/ns#">statistics</category><title>Bozoing Measurements VII</title><description>A while ago I saw a consultant give a presentation. He had been given 20 campaigns to analyze. He spent a lot of time discussing the one campaign that was significant at the 5% level.</description><link>http://tactical-logic.blogspot.com/2009/08/bozoing-measurements-vii.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-6111424901342688803</guid><pubDate>Sun, 12 Jul 2009 18:03:00 +0000</pubDate><atom:updated>2009-07-12T11:39:21.664-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">campaign measurement</category><category domain="http://www.blogger.com/atom/ns#">marketing science</category><category domain="http://www.blogger.com/atom/ns#">statistics</category><title>Bozoing Campaign Measurements VI</title><description>And the hits keep coming.&lt;br /&gt;&lt;br /&gt;This story involves a tracking database. The database was tracking long-running campaigns, where the process was that a customer 1) contacted the company via customer care 2) at that point, was randomized on a by-campaign basis. Once there was customer activity, that customer was tracked for three months.&lt;br /&gt;&lt;br /&gt;Here&#39;s where it gets tricky. On the next customer contact the treatment group was given the pitch again if they still qualified whereas the control group was automatically not given the pitch. That means in the treatment group the next contact generates a campaign-relevant data point whereas in the control group it doesn&#39;t. Remember the three month-tracking? After three months any control group customers are dropped out of the database, whereas treatment group customers that are still in contact with the company are still tracked. These are long-running campaigns. So the control group was composed of customers that had at most a three-month window to take the offer whereas the treatment group had a potentially unlimited time to take the offer. What a clever way to make sure the results are excellent!&lt;br /&gt;&lt;br /&gt;I was once reviewing analysis of campaigns from this system. I was originally asked to make sure the T-Test formula was right, and poked around in the data a little. I saw a weird thing: the campaign results were a linear function of the control group size. The smaller the control group the better the results. I commented that they really shouldn&#39;t publish results until they had figure out what the Weird Thing was. Looking back, I can see how the database anomaly aboce could account for the effect. As time goes on, customers are going to be dropped out of the control group. Also, the treatment group will be given longer and longer to take the offer. So as time goes on, the control group numbers will fall and treatment group takes will rise.&lt;br /&gt;&lt;br /&gt;So &lt;span style=&quot;font-weight:bold;&quot;&gt;all&lt;/span&gt; the positive results that were being ascribed to the marketing system could have been due to the reporting anomalies.</description><link>http://tactical-logic.blogspot.com/2009/07/bozoing-measurements-vi.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-8446567426866664803</guid><pubDate>Sun, 28 Jun 2009 04:57:00 +0000</pubDate><atom:updated>2009-08-08T21:32:18.984-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">marketing</category><category domain="http://www.blogger.com/atom/ns#">marketing science</category><category domain="http://www.blogger.com/atom/ns#">statistics</category><title>Customers are Weird</title><description>Really, really weird.&lt;br /&gt;&lt;br /&gt;Imagine a company with 2mm customers. Reasonable-sized, not huge.&lt;br /&gt;&lt;br /&gt;How many people do you know well? Maybe 100 people? Think about the absolute weirdest person you know. That company has customers that are literally 100 times weirder than the weirdest person you know. In fact, they&#39;ve got 200 of them.&lt;br /&gt;&lt;br /&gt;It&#39;s a bad idea to think you know what customers are going to do without testing, measuring, and finding out.</description><link>http://tactical-logic.blogspot.com/2009/06/customers-are-wierd.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-4428534228436861557</guid><pubDate>Sun, 28 Jun 2009 04:29:00 +0000</pubDate><atom:updated>2009-08-16T14:55:19.915-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">marekting</category><category domain="http://www.blogger.com/atom/ns#">marketing science</category><category domain="http://www.blogger.com/atom/ns#">statistics</category><title>Bozoing Campaign Measurements V</title><description>Here&#39;s a classic: toss all negative results.&lt;br /&gt;&lt;br /&gt;Clearly, everything we do is positive, right?&lt;br /&gt;&lt;br /&gt;Nope. Anything that can have an effect can have a negative effect.&lt;br /&gt;&lt;br /&gt;(I&#39;ve met a number of marketing people that really truly believe that people wait at home looking forward to their telemarketing calls. And that calling something &#39;viral&#39; in a powerpoint is enough to actually create a viral marketing campaign).&lt;br /&gt;&lt;br /&gt;There&#39;s another factor. Depressingly, a lot of marketing campaigns do absolutely nothing. Random noise takes over; half will be a little positive and half will a little negative. Toss the negative results and you&#39;re left with a bunch of positive results. Add them up and suddenly you&#39;ve got significant positive results from random noise. This is bad.&lt;br /&gt;&lt;br /&gt;I&#39;ve seen an interesting variant on this technique from a very well-paid consultant. Said VWPC analyzed 20 different campaigns and reported extensively on the one campaign that had results that were significant at a 5% level.</description><link>http://tactical-logic.blogspot.com/2009/06/bozoing-measurements-v.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-731629031647490158</guid><pubDate>Sun, 07 Jun 2009 17:49:00 +0000</pubDate><atom:updated>2009-07-12T11:39:48.987-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">marketing</category><category domain="http://www.blogger.com/atom/ns#">marketing science</category><category domain="http://www.blogger.com/atom/ns#">statistics</category><title>Bozoing Campaign Measurements - IV</title><description>Another installment in the &quot;How to Bozo Simple Campaign Analysis&quot;. I&#39;ve got a lot of them. It&#39;s amazing how inventive people get when it comes to messing up data.&lt;br /&gt;&lt;br /&gt;Anyway, this is from a customer onboarding program. When the company got a new customer, they would give them a call in a month to see how things were going. There was a carefully held out control group. The reporting, needless to say, wasn&#39;t test and control. It was &quot;total control&quot; vs. &quot;the test group that listened to the whole onboarding message&quot;. The goal was to enhance customer retention.&lt;br /&gt;&lt;br /&gt;The program directors were convinced that the &quot;recieve the call or not&quot; decision was completely random; and given that it was completely random the reporting should be concentrated on only those that were effected by the program (that again -- it&#39;s amazing how often the idea comes up).&lt;br /&gt;&lt;br /&gt;Clearly, the decision to respond to telemarketing is a non-random decision, and I have no idea what lonely neurons fired in the directors brains to make them think that. To start with, someone who is at home to take a call during business hours is going to be a very different population that people that go to work. More importantly, a person that thinks highly of a company is much more likely to listen to a call than someone who isn&#39;t that fond of a company.&lt;br /&gt;&lt;br /&gt;Unsurprisingly, the original reporting showed a strong positive result. When I finally did the test/control analysis, the result showed that there was no real effect from the campaign.</description><link>http://tactical-logic.blogspot.com/2009/06/bozoing-measurements-iv.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-2146213024572066636</guid><pubDate>Mon, 01 Jun 2009 01:12:00 +0000</pubDate><atom:updated>2009-06-27T21:39:46.499-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">DBA</category><category domain="http://www.blogger.com/atom/ns#">marketing</category><category domain="http://www.blogger.com/atom/ns#">marketing science</category><category domain="http://www.blogger.com/atom/ns#">statistics</category><title>Statistics and DBAs</title><description>Statistics and DBA work really are two different disciplines, although from the outside we&#39;re both numbers people. I&#39;ve learned the hard way that there&#39;s &lt;span style=&quot;font-weight:bold;&quot;&gt;a lot&lt;/span&gt; that I don&#39;t know about how to set up a database. Likewise, I&#39;ve had some database people push some very strange ideas about how to do analysis.&lt;br /&gt;&lt;br /&gt;Take random samples. Unless I can actually see the code used to make random samples, I&#39;d rather do random sampling myself. My favorite example of the problem was &quot;we randomly gave you data from California&quot;.&lt;br /&gt;&lt;br /&gt;Time sensitivity is another issue. I was making a customer attrition study for a cell phone company. We wanted to look at attrition over a year, so we needed customer data from the start of the year and we see how it effects attrition. What happened was that the database people, instead of following our instructions gave us customer data from the end of the year instead of start. &lt;br /&gt;&lt;br /&gt;Why? &quot;Don&#39;t you want the most current data possible?&quot; It&#39;s the nature of reporting to get the most current data possible for the report, and understanding statistical analysis that will often require data from the past is a little alien to that way of thinking.</description><link>http://tactical-logic.blogspot.com/2009/05/statistics-and-dbas.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-1312498047600313871</guid><pubDate>Sun, 31 May 2009 23:49:00 +0000</pubDate><atom:updated>2009-07-12T11:40:04.374-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">analysis</category><category domain="http://www.blogger.com/atom/ns#">bias</category><category domain="http://www.blogger.com/atom/ns#">control groups</category><category domain="http://www.blogger.com/atom/ns#">measurements</category><category domain="http://www.blogger.com/atom/ns#">reporting</category><title>Bozoing Campaign Measurements - III</title><description>I&#39;ve got another story from the customer cross-sell system I was talking about in &lt;a href=&quot;http://tactical-logic.blogspot.com/2009/05/how-to-bozo-marketing-measurements.html&quot;&gt;Bozoing Measurements I&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We&#39;re taking about doing basic reporting on the system. Remember, we&#39;re keeping out a control group. We were changing the control group process from keeping out individual control groups per each campaign (which caused a lot of problems actually -- more in a later post). &lt;br /&gt;&lt;br /&gt;Now, the dead obvious comparison is treatment and control. There are a couple of nuances we can add on. We can compare &lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt; Total treatment vs. total control &lt;/li&gt;&lt;br /&gt;&lt;li&gt; The treatment and control that contact the company &lt;/li&gt;&lt;br /&gt;&lt;li&gt; The treatment and control that have an opportunity to be marketed to &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;All happy, all treatment vs. control.&lt;br /&gt;&lt;br /&gt;But then the senior DBA in the project says &quot;We shouldn&#39;t on report the control group that could be marketed to. That&#39;s a biased number&quot;.&lt;br /&gt;&lt;br /&gt;Huh?&lt;br /&gt;&lt;br /&gt;&quot;That number is biased by the fact that we&#39;re taking out the customers that didn&#39;t contact us and that we couldn&#39;t market to.&quot;&lt;br /&gt;&lt;br /&gt;His plan was to compare 1) Treatment group that contacted us and that we could market to (because the others clearly weren&#39;t effected by the program) to 2) The total control group. This would create a huge unfair effect favoring the treatment group, simply because the customers that are actively contacting the company are much more likely to purchase new products. That may have been the hidden agenda that the DBA had: create reporting that would have a large built in bias.&lt;br /&gt;&lt;br /&gt;About that word bias: there&#39;s no such thing as a biased number. The number is what it is. Bias happens with unfair comparisons. We want the treatment and control factor to be the only factor in the comparison.</description><link>http://tactical-logic.blogspot.com/2009/05/bozoing-measurements-iii.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-1183693435267318672</guid><pubDate>Wed, 20 May 2009 04:57:00 +0000</pubDate><atom:updated>2009-07-12T11:40:19.930-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">marketing</category><category domain="http://www.blogger.com/atom/ns#">marketing science</category><category domain="http://www.blogger.com/atom/ns#">statistics</category><title>Bozoing Campaign Measurements -- II</title><description>Our next contestant comes from the telecom world.&lt;br /&gt;&lt;br /&gt;What the group was doing was evaluating marketing campaigns over the course of several years. Does an attrition-prevention campaign have any effect after three years? This is an absolutely wonderful thing to do, of course, but not the way they went about it.&lt;br /&gt;&lt;br /&gt;The campaigns were in a series of mailings that went out to customers that were about to go off contract, and the offer was a monetary reward to renew their contract for a year. Each campaign had a carefully selected control group. &lt;br /&gt;&lt;br /&gt;The dead-obvious thing to do is to compare the treatment group vs. the control group, but that&#39;s not what got done. What happened was the analysis compared the whole control group to the customers in the treatment group that renewed their contract, because clearly &quot;customers that didn&#39;t renew their contract weren&#39;t effected by the campaign&quot;.&lt;br /&gt;&lt;br /&gt;Sound familiar?&lt;br /&gt;&lt;br /&gt;Why doing analysis this way is a bad idea: before the mailing on contract renewal, customers are going to have a certain basic affinity towards the company. Some are going to love it, some are going to hate it, some are going to be on the fence. When the customers get the offer the ones that already hate the company will toss the offer, the ones that love the company will take free money for staying with a company they like, and the ones on the fence may or may not take the offer and have their future behavior change. So, to a good extent a retention program like this isn&#39;t changing behavior but instead is sorting the customers into buckets based on how they already feel about the company. Comparing &quot;total control group&quot; to &quot;contract renewers&quot; confounds two effects, one effect of the customers predisposition to the company and the second effect of having some customers renew their contracts for a reward. Moreover, this comparison doesn&#39;t actually answer the real question: does the program have a meaningful, measurable impact on churn? To answer the real question in the right way Keep Things Simple and Statistical and do a straight treatment vs. control.</description><link>http://tactical-logic.blogspot.com/2009/05/bozoing-measurements-ii.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-6313987850078795236</guid><pubDate>Tue, 19 May 2009 04:57:00 +0000</pubDate><atom:updated>2009-07-12T11:40:42.848-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">learning</category><category domain="http://www.blogger.com/atom/ns#">marketing</category><category domain="http://www.blogger.com/atom/ns#">statistics</category><category domain="http://www.blogger.com/atom/ns#">tests</category><title>How to Bozo Campaign Measurements</title><description>You know, at their heart statistical measurements are basically the easiest thing in the world to do, especially when it comes to direct marketing. Set up your test, randomly split the population, run the test, measure the results. It pretty much takes serious work to mess this up. It&#39;s amazing how many bright people leap at the chance to go the extra mile and find an inventive way to bozo a measurement.&lt;br /&gt;&lt;br /&gt;The first exhibit is a database expert working for a customer contact project at a bank. A customer comes in, talks to the teller, and the system 1) randomly assigns the customer to the control group or not if this is the first time the customer has hit the system, otherwise it looks up the customer&#39;s status and then 2) makes a suggestion for a product cross-sell. The teller may or may not use the suggestion, depending on how appropriate the teller thinks the offer is for the customer and/or how busy the branch is and if there is time available to talk to the customer.&lt;br /&gt;&lt;br /&gt;So now, we&#39;ve got the simplest test/control situation possible. What the DBA decided was to toss out all the customers where no offer was made, on the theory that if no offer was made then the program had no effect. So, all the reporting was done on &quot;total control group&quot; vs. &quot;treatment group that received the offer&quot;, creating a confounding effect. The teller decision to make the offer or not was highly non-random. The kind of person that comes in at rush hour (where the primary concern of the teller is handling customers and keeping wait times down) is going to be very different from the kind of person that comes during the slow time in the middle of the afternoon.&lt;br /&gt;&lt;br /&gt;The project team understood this confounding, that in their reporting they were mixing up two different effects, and talked for over two years about how to overcome this confounding when all they had to do was be lazier and report on the random split.</description><link>http://tactical-logic.blogspot.com/2009/05/how-to-bozo-marketing-measurements.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-4178411751804216715</guid><pubDate>Fri, 13 Feb 2009 20:36:00 +0000</pubDate><atom:updated>2009-06-27T21:40:32.918-07:00</atom:updated><title>The Data Daemon</title><description>Appropos of &lt;a href=&quot;http://scientificmarketer.com/2009/02/murphys-laws-for-data.html&quot;&gt; &quot;Murphy&#39;s Laws of Data&quot; &lt;/a&gt;, I find it useful to imagine that data is created by a little deamon and his job is to make me look like a durn fool.</description><link>http://tactical-logic.blogspot.com/2009/02/data-daemon.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-8843235995650511582</guid><pubDate>Sun, 04 May 2008 03:46:00 +0000</pubDate><atom:updated>2008-05-03T20:47:58.784-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">data mining</category><category domain="http://www.blogger.com/atom/ns#">information engineering</category><category domain="http://www.blogger.com/atom/ns#">knowledge discovery</category><category domain="http://www.blogger.com/atom/ns#">lifetime value</category><title>Learning from LTV at LTC: It&#39;s About Understanding</title><description>Ultimately, success is about understanding.  Build teams that will take the time to understand the business and all parts of the project, where every member of the team understands all parts of the projects as a whole, share this understanding in full with anybody who wants to learn, and carry this detailed understanding forward in the enterprise.</description><link>http://tactical-logic.blogspot.com/2008/05/learning-from-ltv-at-ltc-its-about.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-9073261260694866417</guid><pubDate>Sun, 04 May 2008 03:45:00 +0000</pubDate><atom:updated>2008-05-03T20:46:32.772-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">data mining</category><category domain="http://www.blogger.com/atom/ns#">information engineering</category><category domain="http://www.blogger.com/atom/ns#">lifetime value</category><category domain="http://www.blogger.com/atom/ns#">projects</category><title>Learning from LTV at LTC: Build Complete Teams</title><description>ypically projects are done by assembling cross-functional teams from different areas, each person with a narrow responsibility.  This is a very efficient way of handling day-to-day business but an ineffective way of getting business-changing projects done. This is especially true is the project is going to be going on for a while.&lt;br /&gt;&lt;br /&gt;The key to our success was having a complete team that could handle all phases of the project.  There was no point in the project that we threw the project over the wall to another team, or caught something that another team was throwing at us. When we were working with other teams we established working relationships with them and brought those teams into the project. Every member on the LTV team could speak to all aspects of the project and have meaningful input into all aspects of the project.&lt;br /&gt;&lt;br /&gt;Let me give an example of what can happen with fragmented, siloed teams.  I was working on updating a project that had been launched several years before.  There was one team that extracted the data from a datamart, another that took the data and loaded it into a staging area, and a third team that loaded the data from the staging area into the application.  I asked the question “who can guarantee that the data in the application is right”? Thunderous silence.  No one could guarantee that the final data was right, or even that their step was correct; all they could promise was that their scripts had run without obvious error.&lt;br /&gt;&lt;br /&gt;If I had to give a name to this approach I&#39;d call it the “A-Team” approach: complete functional teams that understand each other&#39;s areas.</description><link>http://tactical-logic.blogspot.com/2008/05/learning-from-ltv-at-ltc-build-complete.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-3381459131305918228</guid><pubDate>Sun, 04 May 2008 03:42:00 +0000</pubDate><atom:updated>2008-05-03T20:44:24.601-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">data mining</category><category domain="http://www.blogger.com/atom/ns#">information engineering</category><category domain="http://www.blogger.com/atom/ns#">lifetime value</category><category domain="http://www.blogger.com/atom/ns#">projects</category><title>Learning from LTV at LTC: Tell Everything</title><description>In a project like this the team gains a great deal of understanding about how the business works and there is always the temptation to keep that understanding within the team. The argument I have heard is that by keeping all the details hidden then the team will maintain control over the results of the project. What I&#39;ve seen actually happen is that when a team tries to keep secrets others just don&#39;t believe them.&lt;br /&gt;&lt;br /&gt;In the LTV project we made the decision to explain every detail to anybody who asked. The result was that people had a great deal of faith in what we produced.  Even if people disagreed with the decisions that we made in the project, they understood and could respect the decisions.</description><link>http://tactical-logic.blogspot.com/2008/05/learning-from-ltv-at-ltc-tell.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-1833347578055730906</guid><pubDate>Sun, 04 May 2008 03:41:00 +0000</pubDate><atom:updated>2008-05-03T20:45:07.744-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">data mining</category><category domain="http://www.blogger.com/atom/ns#">information engineering</category><category domain="http://www.blogger.com/atom/ns#">lifetime value</category><category domain="http://www.blogger.com/atom/ns#">projects</category><title>Learning from LTV at LTC: Build Understanding</title><description>Projects that change an organization demand that the project group build a substantial understanding of that the business is, what it could be, and how the project can help the business get there.  That understanding needs to stay withing the organization after the project is officially complete. There is a vast difference between the understanding that comes from seeing a presentation on a project and the understanding that comes from actually doing the work.&lt;br /&gt;&lt;br /&gt;Projects that are important to the company need to be living, evolving things and that means that the detailed understanding of the project needs to stay accessible to the organization. With LTV, as soon as it came out people wanted additional work and we could do it because we knew the nuts and bolts.</description><link>http://tactical-logic.blogspot.com/2008/05/learning-from-ltv-at-ltc-build.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-2568712379389126798</guid><pubDate>Sun, 27 Apr 2008 01:06:00 +0000</pubDate><atom:updated>2008-04-26T18:09:09.632-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">data mining</category><category domain="http://www.blogger.com/atom/ns#">design</category><category domain="http://www.blogger.com/atom/ns#">lifetime value</category><category domain="http://www.blogger.com/atom/ns#">projects</category><title>LTV at LTC: Learning from it: Design Rules</title><description>In software it&#39;s all about the implementation – actually writing the code.  In business intelligence projects actually doing the implementation isn&#39;t that big a deal.  There are lots of packages to make implementation easy compared to writing software from scratch.  What that means is that business intelligence projects are all about the design, and the design team needs to be in control and actively involved in all stages of the project.</description><link>http://tactical-logic.blogspot.com/2008/04/ltv-at-ltc-learning-from-it-design.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-8482035286442148208</guid><pubDate>Fri, 25 Apr 2008 04:43:00 +0000</pubDate><atom:updated>2008-04-24T21:45:38.767-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">data mining</category><category domain="http://www.blogger.com/atom/ns#">information engineering</category><category domain="http://www.blogger.com/atom/ns#">lifetime value</category><category domain="http://www.blogger.com/atom/ns#">projects</category><title>LTV at LTC: The Large Activity Based Costing (ABC) Project</title><description>During and after the LTV project, there was yet a fourth value-based project at LTC.  The Finance department brought in a large consulting company to design a database for activity-based costing to help LTC get a handle on their operational expenses. The goal was to build an ABC database where a manager could look at expenses, drill down into the specific line items, and then drill into the company and customer activity that was causing those expenses and so have a clear grasp of the actions needed to manage expenses.&lt;br /&gt;&lt;br /&gt;The project started out by having the consultants come in and have roughly a year of large meetings on what should go into the system. This was done without considering implementation issues.  At then end of the meetings a large and detailed specification was developed, which was then handed off to the LTC IT department.  The LTC IT department estimated that implementation would cost several million dollars and the project was killed right then and there.&lt;br /&gt;&lt;br /&gt;In many respects, the ABC project was the antithesis of the LTV project.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Instead of identifying a group within the company to build the project, an outside consultant was brought in to run the project. This meant that the understanding that comes from doing a project like this left LTC with the consultants.&lt;/li&gt;&lt;li&gt;There was a complete disconnect between the design and implementation teams. This meant that implementation issues were not considered during the design, and that the design could not be modified later to take implementation factors into consideration.&lt;/li&gt;&lt;li&gt;Instead of a small group working to understand the business, ABC had large meetings to poll people on their issues.  This meant that every possible issue was included in the project design.  Because the design was simply thrown over a fence to implementation there wasn&#39;t any negotiation over project scope to achieve what was reasonable.&lt;/li&gt;&lt;/ol&gt;</description><link>http://tactical-logic.blogspot.com/2008/04/ltv-at-ltc-large-activity-based-costing.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-2261802471548263518</guid><pubDate>Wed, 23 Apr 2008 04:10:00 +0000</pubDate><atom:updated>2008-04-22T21:13:13.763-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">data mining</category><category domain="http://www.blogger.com/atom/ns#">information engineering</category><category domain="http://www.blogger.com/atom/ns#">lifetime value</category><category domain="http://www.blogger.com/atom/ns#">projects</category><title>LTV at LTC: The International Consulting Company (ICC)</title><description>At the same time as our project was going going an International Consulting Company was brought in to do pretty much an identical project, Lifetime Value for customers.  We were able to work fairly closely together and our projects wound up being very similar.  The ICC team was very valuable to us in that ICC was working with the CMO directly and so our project was able to gain tremendous credibility through association and to some degree confusion with the ICC project.&lt;br /&gt;&lt;br /&gt;ICC and our group had slightly different methodologies; ours was adopted because we had resources to deploy the results in the data warehouse and the ICC didn&#39;t.</description><link>http://tactical-logic.blogspot.com/2008/04/ltv-at-ltc-international-consulting.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-3581526548026032253</guid><pubDate>Fri, 18 Apr 2008 04:21:00 +0000</pubDate><atom:updated>2008-04-17T21:28:00.318-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">attrition</category><category domain="http://www.blogger.com/atom/ns#">data mining</category><title>Pay Close Attention to What Everybody Tells You to Ignore</title><description>Organizations develop blind spots.  The drill is: people decide something isn&#39;t important, so all of the reporting ignores it, so nobody thinks about it, so nobody gets it put on their goals, and the cycle reinforces itself. Opportunities develop that everyone ignores.&lt;br /&gt;&lt;br /&gt;A good example is involuntary attrition (attrition due to bad debt) at LTC. People concentrated on voluntary attrition and ignored involuntary attrition, and forgot that involuntary attrition was very much the result of a voluntary choice on the customers part.  As a result, there were actually more opportunities  for helping LTC with respect to involuntary attrition than voluntary attrition.</description><link>http://tactical-logic.blogspot.com/2008/04/pay-close-attention-to-what-everybody.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-7688654209142728001</guid><pubDate>Thu, 17 Apr 2008 05:18:00 +0000</pubDate><atom:updated>2008-04-16T22:20:21.924-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">business intelligence</category><category domain="http://www.blogger.com/atom/ns#">data mining</category><category domain="http://www.blogger.com/atom/ns#">information engineering</category><category domain="http://www.blogger.com/atom/ns#">lifetime value</category><category domain="http://www.blogger.com/atom/ns#">projects</category><title>LTV at LTC: After the Project -- Education and Explanations</title><description>When the LTV project was rolled out and data was being published I immediately found myself with two new tasks: educating the company about the LTV project and explaining why particular customers got negative value.&lt;br /&gt;&lt;br /&gt;I anticipate that education will be part of any analytic project.  The most important decision we made about education was to explain everything.  There was no part of the LTV system that we did not discuss and even give specific parameters for.  Explaining everything allowed people to understand the LTV system.&lt;br /&gt;&lt;br /&gt;What really made people accept the LTV system was being able to answer why particular customers had negative scores.  In particular we got a number of calls from Customer Care.  LTV had been integrated into the Customer Care system and it effected what kind of equipment offers could be made to customers. The Customer Care department needed to know why some high-revenue customers were getting low or negative value.&lt;br /&gt;&lt;br /&gt;We were able to answer questions like this easily and convincingly. As it turned out, the usual reason high revenue customers had negative LTV was because they hadn&#39;t actually paid their bill in a number of months.  Being able to answer these questions went a long way to establishing our credibility.</description><link>http://tactical-logic.blogspot.com/2008/04/ltv-at-ltc-after-project-education-and.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-1963700650345613726</guid><pubDate>Thu, 17 Apr 2008 05:17:00 +0000</pubDate><atom:updated>2008-04-16T22:18:43.735-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">business intelligence</category><category domain="http://www.blogger.com/atom/ns#">data mining</category><category domain="http://www.blogger.com/atom/ns#">information engineering</category><category domain="http://www.blogger.com/atom/ns#">lifetime value</category><category domain="http://www.blogger.com/atom/ns#">projects</category><title>LTV at LTC: Building the System</title><description>Building the LTV system took a small team approximately two months out of a year spent on the project, from building the lifetime models to coding the formulas to finally building a system of monthly HTML reports. Ironically actually building the LTV project was the simplest part of the whole project.</description><link>http://tactical-logic.blogspot.com/2008/04/ltv-at-ltc-building-system.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8578504479253492191.post-8546169479173350781</guid><pubDate>Tue, 15 Apr 2008 05:02:00 +0000</pubDate><atom:updated>2008-04-14T22:05:13.423-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">business intelligence</category><category domain="http://www.blogger.com/atom/ns#">data mining</category><category domain="http://www.blogger.com/atom/ns#">information engineering</category><category domain="http://www.blogger.com/atom/ns#">lifetime value</category><category domain="http://www.blogger.com/atom/ns#">projects</category><title>LTV at LTC: Alarms and Diversions; the New Media Department (NMD)</title><description>In LTC, we had a department dedicated to exploring new technologies and new media applications.  The technology to really make NMD&#39;s projects really go wasn&#39;t slated to go live until the year after the LTV project, but they were still very interested in the LTV project. Their interest culminated in a meeting that nearly ended the LTV project.&lt;br /&gt;&lt;br /&gt;NMD had segmented the customer base, and had identified the segment they wanted to market to.  NMD was horrified that one of their potential customers might get a poor score, and so perhaps not get the best possible service.  Never mind the equal possibility that their potential customers might get good scores and receive preferential treatment – NMD was terrified at the possibility of anything bad possibly happening to their potential base.  The most vivid quote of the meeting was “We have to stop this!”&lt;br /&gt;&lt;br /&gt;If NMD really tried to stop the LTV project, I am fairly sure that we could have overcome their resistance but I&#39;m certain that if the meeting ended there we would have a lot of unnecessary turmoil.  What I did was I put back on my Project Designer hat and let NMD specify a value formula just for them that would identify the customers NMD most wanted.  This approach was successful because I was able to promise right then and there that NMD could design the formula the way NMD wanted and that it would be published along with the other LTV scores.&lt;br /&gt;&lt;br /&gt;In a typical project situation there would have been an initial meeting with NMD, their concerns would have been taken back the the larger group, possible solutions discussed, project forms filled out and signed off on, and all this over a course of several weeks.  During these weeks NMD would have solidified their position and the LTV project would have been threatened by a protracted political fight that would weaken the project at best and conceivably stop the project all together.</description><link>http://tactical-logic.blogspot.com/2008/04/ltv-at-ltc-alarms-and-diversions-new.html</link><author>noreply@blogger.com (Edmund Freeman)</author><thr:total>0</thr:total></item></channel></rss>