<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Michi's blog</title>
	<atom:link href="http://blog.mikael.johanssons.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mikael.johanssons.org</link>
	<description>Because my LiveJournal is too silly</description>
	<lastBuildDate>Tue, 23 Feb 2010 19:08:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Another kind of sports reporting</title>
		<link>http://blog.mikael.johanssons.org/archive/2010/02/another-kind-of-sports-reporting/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2010/02/another-kind-of-sports-reporting/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 19:08:03 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Sillyness]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=246</guid>
		<description><![CDATA[Inspired by John Allen Paulos, who just now tweeted

Obvious, but NBC hasn&#8217;t said: Canada, Norway, Germany way ahead of US in Olympic medals per capita. Many ways to rank: Cf. Arrow&#8217;s theorem.

I decided to redo the medals list. Here, the number of medals per capita among the top countries.


Country
Gold/capita
Silver/capita
Bronze/capita
Total/capita


Norway
1.23E-06
6.17E-07
1.03E-06
2.88E-06


Austria
3.58E-07
3.58E-07
3.58E-07
1.07E-06


Slovenia
0
4.87E-07
4.87E-07
9.74E-07


Switzerland
6.43E-07
0
2.57E-07
9.00E-07



Latvia
0
8.90E-07
0
8.90E-07


Sweden
3.21E-07
2.14E-07
2.14E-07
7.49E-07


Estonia
0
7.46E-07
0
7.46E-07


Slovakia
1.84E-07
1.84E-07
1.84E-07
5.53E-07


Croatia
0
2.25E-07
2.25E-07
4.51E-07


Netherlands
1.81E-07
6.03E-08
6.03E-08
3.01E-07


Canada
1.47E-07
1.18E-07
2.94E-08
2.94E-07


Czech republic
9.51E-08
0
1.90E-07
2.85E-07


Germany
8.56E-08
1.10E-07
6.12E-08
2.57E-07


Belarus
0
1.05E-07
1.05E-07
2.11E-07


Finland
0
1.87E-07
0
1.87E-07


Korea
8.04E-08
8.04E-08
2.01E-08
1.81E-07


France
3.06E-08
3.06E-08
6.11E-08
1.22E-07


Poland
0
7.87E-08
2.62E-08
1.05E-07


Australia
4.51E-08
4.51E-08
0
9.02E-08


USA
2.27E-08
2.59E-08
3.24E-08
8.10E-08


Russian Federation
1.41E-08
2.11E-08
4.23E-08
7.75E-08


Italy
0
1.66E-08
4.98E-08
6.64E-08


Kazakhstan
0
6.34E-08
0
6.34E-08


Japan
0
7.85E-09
1.57E-08
2.35E-08


Great Britain
1.61E-08
0
0
1.61E-08



China
2.25E-09
7.49E-10
7.49E-10
3.74E-09


(Data taken on February [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/List_of_countries_by_population">Inspired by John Allen Paulos, who just now tweeted</p>
<blockquote><p>
Obvious, but NBC hasn&#8217;t said: Canada, Norway, Germany way ahead of US in Olympic medals per capita. Many ways to rank: Cf. Arrow&#8217;s theorem.
</p></blockquote>
<p>I decided to redo the medals list. Here, the number of medals per capita among the top countries.</p>
<table>
<tr>
<th>Country</th>
<th>Gold/capita</th>
<th>Silver/capita</th>
<th>Bronze/capita</th>
<th>Total/capita</th>
</tr>
<tr>
<td>Norway</td>
<td>1.23E-06</td>
<td>6.17E-07</td>
<td>1.03E-06</td>
<td>2.88E-06</td>
</tr>
<tr>
<td>Austria</td>
<td>3.58E-07</td>
<td>3.58E-07</td>
<td>3.58E-07</td>
<td>1.07E-06</td>
</tr>
<tr>
<td>Slovenia</td>
<td>0</td>
<td>4.87E-07</td>
<td>4.87E-07</td>
<td>9.74E-07</td>
</tr>
<tr>
<td>Switzerland</td>
<td>6.43E-07</td>
<td>0</td>
<td>2.57E-07</td>
<td>9.00E-07
</td>
</tr>
<tr>
<td>Latvia</td>
<td>0</td>
<td>8.90E-07</td>
<td>0</td>
<td>8.90E-07</td>
</tr>
<tr>
<td>Sweden</td>
<td>3.21E-07</td>
<td>2.14E-07</td>
<td>2.14E-07</td>
<td>7.49E-07</td>
</tr>
<tr>
<td>Estonia</td>
<td>0</td>
<td>7.46E-07</td>
<td>0</td>
<td>7.46E-07</td>
</tr>
<tr>
<td>Slovakia</td>
<td>1.84E-07</td>
<td>1.84E-07</td>
<td>1.84E-07</td>
<td>5.53E-07</td>
</tr>
<tr>
<td>Croatia</td>
<td>0</td>
<td>2.25E-07</td>
<td>2.25E-07</td>
<td>4.51E-07</td>
</tr>
<tr>
<td>Netherlands</td>
<td>1.81E-07</td>
<td>6.03E-08</td>
<td>6.03E-08</td>
<td>3.01E-07</td>
</tr>
<tr>
<td>Canada</td>
<td>1.47E-07</td>
<td>1.18E-07</td>
<td>2.94E-08</td>
<td>2.94E-07</td>
</tr>
<tr>
<td>Czech republic</td>
<td>9.51E-08</td>
<td>0</td>
<td>1.90E-07</td>
<td>2.85E-07</td>
</tr>
<tr>
<td>Germany</td>
<td>8.56E-08</td>
<td>1.10E-07</td>
<td>6.12E-08</td>
<td>2.57E-07</td>
</tr>
<tr>
<td>Belarus</td>
<td>0</td>
<td>1.05E-07</td>
<td>1.05E-07</td>
<td>2.11E-07</td>
</tr>
<tr>
<td>Finland</td>
<td>0</td>
<td>1.87E-07</td>
<td>0</td>
<td>1.87E-07</td>
</tr>
<tr>
<td>Korea</td>
<td>8.04E-08</td>
<td>8.04E-08</td>
<td>2.01E-08</td>
<td>1.81E-07</td>
</tr>
<tr>
<td>France</td>
<td>3.06E-08</td>
<td>3.06E-08</td>
<td>6.11E-08</td>
<td>1.22E-07</td>
</tr>
<tr>
<td>Poland</td>
<td>0</td>
<td>7.87E-08</td>
<td>2.62E-08</td>
<td>1.05E-07</td>
</tr>
<tr>
<td>Australia</td>
<td>4.51E-08</td>
<td>4.51E-08</td>
<td>0</td>
<td>9.02E-08</td>
</tr>
<tr>
<td>USA</td>
<td>2.27E-08</td>
<td>2.59E-08</td>
<td>3.24E-08</td>
<td>8.10E-08</td>
</tr>
<tr>
<td>Russian Federation</td>
<td>1.41E-08</td>
<td>2.11E-08</td>
<td>4.23E-08</td>
<td>7.75E-08</td>
</tr>
<tr>
<td>Italy</td>
<td>0</td>
<td>1.66E-08</td>
<td>4.98E-08</td>
<td>6.64E-08</td>
</tr>
<tr>
<td>Kazakhstan</td>
<td>0</td>
<td>6.34E-08</td>
<td>0</td>
<td>6.34E-08</td>
</tr>
<tr>
<td>Japan</td>
<td>0</td>
<td>7.85E-09</td>
<td>1.57E-08</td>
<td>2.35E-08</td>
</tr>
<tr>
<td>Great Britain</td>
<td>1.61E-08</td>
<td>0</td>
<td>0</td>
<td>1.61E-08
</td>
</tr>
<tr>
<td>China</td>
<td>2.25E-09</td>
<td>7.49E-10</td>
<td>7.49E-10</td>
<td>3.74E-09<br />
</tr>
</table>
<p>(Data taken on February 23, from the current state of olympic medals achieved at that date, and from the <a href="http://en.wikipedia.org/wiki/List_of_countries_by_population">Wikipedia page listing populations of the nations of the earth</a>, taken the same date)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2010/02/another-kind-of-sports-reporting/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Testing out the wplatex package</title>
		<link>http://blog.mikael.johanssons.org/archive/2010/02/testing-out-the-wplatex-package/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2010/02/testing-out-the-wplatex-package/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 04:38:45 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[Administrative]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[LaTeX]]></category>
		<category><![CDATA[Metablogging]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=243</guid>
		<description><![CDATA[
Eric Finster, over at Curious Reasoning has built a python script to allow you to write Wordpress posts entirely in LaTeX , and upload them. The script parses the LaTeX code and generates HTML that expresses the same structure. 

This, here, is me trying it out. With any luck, the appearance of a new toy [...]]]></description>
			<content:encoded><![CDATA[<p>
Eric Finster, over at <a href=http://curiousreasoning.wordpress.com>Curious Reasoning</a> has built a python script to allow you to write Wordpress posts entirely in LaTeX , and upload them. The script parses the LaTeX code and generates HTML that expresses the same structure. </p>
<p>
This, here, is me trying it out. With any luck, the appearance of a new toy will get me back to actually blogging some more &#8211; it’s been winding down a bit much here lately. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2010/02/testing-out-the-wplatex-package/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coordinatization with hom complexes</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/12/coordinatization-with-hom-complexes/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2009/12/coordinatization-with-hom-complexes/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 21:55:12 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[Homology and Homotopy]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Topology]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=238</guid>
		<description><![CDATA[These are notes from a talk given at the Stanford applied topology seminar by Gunnar Carlsson from 9 Oct 2009. The main function of this blog post is to get me an easily accessible point of access for the ideas in that talk.
Coordinatization
First off, a few words on what we mean by coordinatization: as in [...]]]></description>
			<content:encoded><![CDATA[<p>These are notes from a talk given at the Stanford applied topology seminar by Gunnar Carlsson from 9 Oct 2009. The main function of this blog post is to get me an easily accessible point of access for the ideas in that talk.</p>
<h2>Coordinatization</h2>
<p>First off, a few words on what we mean by coordinatization: as in algebraic geometry, we say that a coordinate function is some <img src='/latexrender/pictures/7a366999ac6bcec934e01e48875d028d.png' title='X\to\mathbb R' alt='X\to\mathbb R' align='middle' /> or possibly some <img src='/latexrender/pictures/97d101f61e5bf831095eaeebf1bf0f02.png' title='X\to\mathbb C' alt='X\to\mathbb C' align='middle' />, with all the niceness properties we&#8217;d expect to see in the context we&#8217;re working.</p>
<p>A particularly good example is Principal Component Analysis which yields a split linear automorphism on the ambient space that maximizes spread of the data points in the initial coordinates.</p>
<h2>Topological coordinatization</h2>
<p>The core question we&#8217;re working with right now is this:<br />
Given a space (point cloud) X, and a (persistent) view of <img src='/latexrender/pictures/3de32d30e739c5c4dd5cb3408e4a599d.png' title='H_*(X)' alt='H_*(X)' align='middle' />, can we use some map <img src='/latexrender/pictures/231f1fda16241dfbb7706ee9a8b8c5c4.png' title='H_*(X)\to H_*(Y)' alt='H_*(X)\to H_*(Y)' align='middle' /> to generate a map <img src='/latexrender/pictures/c5c6eab38071acc9d029224e005ee003.png' title='X\to Y' alt='X\to Y' align='middle' /> inducing that map?</p>
<p>In topology there are ways around to compute spaces of maps directly from available homological information. The key phrase here is the <em>Eilenberg-Moore spectral sequence</em>, by which we compute <img src='/latexrender/pictures/1d9f67073cc06542303cda94df25ba02.png' title='H^*(\Omega X)' alt='H^*(\Omega X)' align='middle' /> using <img src='/latexrender/pictures/4bf2fabf6191fa36f442f6d71802224c.png' title='H^*(X)' alt='H^*(X)' align='middle' />. We note that <img src='/latexrender/pictures/41378f34e2388d7b9dae1b1f2f9b1578.png' title='\Omega X = Top_*(S^1,X)' alt='\Omega X = Top_*(S^1,X)' align='middle' /> with the <em>compact open</em> topology.</p>
<p>We fix a field k of coefficients. We can find a spectral sequence that computes<br />
<img src='/latexrender/pictures/b0130a74f05784c57b3b6dee36f263b8.png' title='Tor_{H^*(X)}(k,k)&amp;#8217; \Rightarrow H^*(\Omega X)' alt='Tor_{H^*(X)}(k,k)&amp;#8217; \Rightarrow H^*(\Omega X)' align='middle' /></p>
<p>Variations of this spectral sequence allow us to compute <img src='/latexrender/pictures/7b6306ce97bd676ad849c0b68bd46106.png' title='H^*(Map(X,Y))' alt='H^*(Map(X,Y))' align='middle' />. A homotopy class of maps thus corresponds to a cohomology element from <img src='/latexrender/pictures/5972c601ddb4ce9c449ad068ef9c7331.png' title='H^*(F(X,Y))' alt='H^*(F(X,Y))' align='middle' />.</p>
<h2>Monad approximation</h2>
<p>Define<br />
<img src='/latexrender/pictures/13df48c200db51646079eac6e467c4ed.png' title='Sp^2(X) = X \times_{\mathbb Z/2} X' alt='Sp^2(X) = X \times_{\mathbb Z/2} X' align='middle' /> (unordered pairs)<br />
and similarily unordered tuples<br />
<img src='/latexrender/pictures/3a4edb4b9c6c0dc33db0086cba8f9aaa.png' title='Sp^n(X) = X^n/\Sigma_n' alt='Sp^n(X) = X^n/\Sigma_n' align='middle' /><br />
we can get a map, for pointed spaces <img src='/latexrender/pictures/e678778186e1fd232c27f98e503c3705.png' title='(X,*)' alt='(X,*)' align='middle' /><br />
<img src='/latexrender/pictures/523603cb51eb401f5a93dc943763558f.png' title='Sp^n(X) \to Sp^{n+1}(X)' alt='Sp^n(X) \to Sp^{n+1}(X)' align='middle' /><br />
<img src='/latexrender/pictures/14eae37b5881b3a6a6ac7f9f5b040610.png' title='(x_1,\dots,x_n)\mapsto(x_1,\dots,x_n,*)' alt='(x_1,\dots,x_n)\mapsto(x_1,\dots,x_n,*)' align='middle' /></p>
<p>In the limit, we get the union <img src='/latexrender/pictures/c2d34ef4436574e1341c0ac4e4fba3ac.png' title='Sp^\infty(X)' alt='Sp^\infty(X)' align='middle' />.</p>
<p>The Dold-Thom theorem tells us:<br />
<img src='/latexrender/pictures/f5384e3eae6472abc41622b48f916dcd.png' title='\pi_i(Sp^\infty(X)) = H_i(X)' alt='\pi_i(Sp^\infty(X)) = H_i(X)' align='middle' /></p>
<p>Suppose we are really looking for maps <img src='/latexrender/pictures/03221fb866beb0e41e83e53df6c31087.png' title='Z\to Sp^\infty(X,*) \supseteq X = Sp^1(X)' alt='Z\to Sp^\infty(X,*) \supseteq X = Sp^1(X)' align='middle' />.</p>
<p>We pick chain complexes <img src='/latexrender/pictures/daa23756436e9545a9debd1c8448b7b2.png' title='C_*, D_*' alt='C_*, D_*' align='middle' />. There is a hom chain complex <img src='/latexrender/pictures/25c20015c704c9fbe48528018ce4b680.png' title='Hom(C_*,D_*)' alt='Hom(C_*,D_*)' align='middle' /> consisting of graded maps <img src='/latexrender/pictures/1f905c8580b7edcb95a677159ed139c2.png' title='C_*\to D_*' alt='C_*\to D_*' align='middle' /> with the homotopy/induced boundary<br />
<img src='/latexrender/pictures/204d908299845193d9723c00046b6b69.png' title='\Delta f = \partial_Df\pm f\partial_C' alt='\Delta f = \partial_Df\pm f\partial_C' align='middle' /></p>
<p>For this complex, we get<br />
<img src='/latexrender/pictures/a025672061535ddf2e7858115806d213.png' title='H_0(Hom(C_*,D_*))' alt='H_0(Hom(C_*,D_*))' align='middle' /> is the family of chain homotopy classes of chain maps <img src='/latexrender/pictures/1f905c8580b7edcb95a677159ed139c2.png' title='C_*\to D_*' alt='C_*\to D_*' align='middle' />.</p>
<p>Recall: <img src='/latexrender/pictures/9049a848dae63b78d444bb938a7de466.png' title='f,g' alt='f,g' align='middle' /> are chain homotopic if there is a family <img src='/latexrender/pictures/4683e6ba08551d7ad78c442b4dbe248a.png' title='h_i: C_i\to D_{i+1}' alt='h_i: C_i\to D_{i+1}' align='middle' /> such that <img src='/latexrender/pictures/34a71fda819a1f156c18d00ec44ff8af.png' title='f-g = \partial_D h_i + h_{i-1}\partial_C' alt='f-g = \partial_D h_i + h_{i-1}\partial_C' align='middle' />.</p>
<p>Homotopic space maps yield homotopic chain complex maps. And thus<br />
<img src='/latexrender/pictures/2916a30ae0f353cc4b23e5901d3ef386.png' title='Top_*(Z,Sp^\infty(X)) = H_*(Hom(C_*,D_*),\Delta)' alt='Top_*(Z,Sp^\infty(X)) = H_*(Hom(C_*,D_*),\Delta)' align='middle' /></p>
<p>How, though, do we get from <img src='/latexrender/pictures/fd0bba61b6dfa256cf73e479bd9845e7.png' title='[Z,Sp^\infty(X)]' alt='[Z,Sp^\infty(X)]' align='middle' /> to <img src='/latexrender/pictures/6e643ef9d5ed52970f589c63b3e42540.png' title='[Z,X]' alt='[Z,X]' align='middle' />?</p>
<h2>Cosimplicial spaces</h2>
<p>A simplicial space is a contravariant <img src='/latexrender/pictures/8bad30511496d987d0d11f74a6e0e7fb.png' title='\Delta\to X' alt='\Delta\to X' align='middle' />. It has a <em>total space</em> or <em>realization</em> given by<br />
<img src='/latexrender/pictures/d1b9714668d5e1dd4ecd46986b3a9cee.png' title='\coprod X_n\times\Delta[n]/\sim' alt='\coprod X_n\times\Delta[n]/\sim' align='middle' /></p>
<p>In the dual setting of cosimplicial spaces, the total space is a subspace of <img src='/latexrender/pictures/a32ddfcbcc00aa625661ed682822c8a3.png' title='X^0\times(X^1)^{\Delta[1]}\times(X^2)^{\Delta[2]}\times(X^3)^{\Delta[3]}\times\dots' alt='X^0\times(X^1)^{\Delta[1]}\times(X^2)^{\Delta[2]}\times(X^3)^{\Delta[3]}\times\dots' align='middle' />.</p>
<p>There is a cosimplicial space<br />
<img src='/latexrender/pictures/eb3ba7500d673ea4677d3bad96f4b749.png' title='Sp^\infty(X) \leftrightarrow Sp^\infty Sp^\infty(X) \leftrightarrow \dots' alt='Sp^\infty(X) \leftrightarrow Sp^\infty Sp^\infty(X) \leftrightarrow \dots' align='middle' /><br />
whose total space is <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' />. </p>
<p>Furthermore, there is a spectral sequence starting at <img src='/latexrender/pictures/dc994233d52be6b24430741f721a9f26.png' title='H_*(Sp^\infty(X))' alt='H_*(Sp^\infty(X))' align='middle' /> (well understood space!)<br />
going through<br />
<img src='/latexrender/pictures/d991c819be2ca0eb6ae8a6d936156dd3.png' title='\pi_*(Top_*(Z,Sp^\infty Sp^\infty Sp^\infty X)) \leftrightarrow \pi_*(Top_*(Z,Sp^\infty  Sp^\infty X)) \leftrightarrow \pi_*(Top_*(Z,Sp^\infty  X))' alt='\pi_*(Top_*(Z,Sp^\infty Sp^\infty Sp^\infty X)) \leftrightarrow \pi_*(Top_*(Z,Sp^\infty  Sp^\infty X)) \leftrightarrow \pi_*(Top_*(Z,Sp^\infty  X))' align='middle' /><br />
which recovers <img src='/latexrender/pictures/ff1b8f06a4b4ffe2fb9dd14ce1b3281c.png' title='\pi_*(Top_*(Z,X))' alt='\pi_*(Top_*(Z,X))' align='middle' /> for us.</p>
<p>The mapping space <img src='/latexrender/pictures/c0547dfffa5536d9d42473c5be15b265.png' title='Top_*(Z,X)' alt='Top_*(Z,X)' align='middle' /> maps to <img src='/latexrender/pictures/158dd486167098051bc7609b7418b7bb.png' title='Top_*(Z,Sp^\infty X)' alt='Top_*(Z,Sp^\infty X)' align='middle' />, which sends <img src='/latexrender/pictures/b98d91c0c31e9744f375d31198d43ffc.png' title='H_*(Hom(C_*Z,C_*X))' alt='H_*(Hom(C_*Z,C_*X))' align='middle' /> to chain maps. Differentials give us conditions on chain maps to come from actual maps on the topological level <img src='/latexrender/pictures/f892a0dd0c0635937b911aa416b45385.png' title='Z\to X' alt='Z\to X' align='middle' />.</p>
<p>Suppose now that <img src='/latexrender/pictures/02129bb861061d1a052c592e2dc6b383.png' title='X' alt='X' align='middle' /> is a simplicial complex, and <img src='/latexrender/pictures/6d576ce6dee607ab8c36823747bdde3e.png' title='H_*X' alt='H_*X' align='middle' /> is known, say isomorphic to <img src='/latexrender/pictures/8d9ab1e8e97ebe6e83b6823c3ad067a8.png' title='H_*S^1' alt='H_*S^1' align='middle' />.</p>
<p>We pick <img src='/latexrender/pictures/679c4c927f816045befe573024ddd21b.png' title='S^1' alt='S^1' align='middle' /> as a model space, and work in <img src='/latexrender/pictures/27bdf889e1dc3e7b9d92bce75a27878f.png' title='Hom(C_*X,C_*S^1)' alt='Hom(C_*X,C_*S^1)' align='middle' />. We pick out conditions form the spectral sequence above to pick out chain maps that might come from topological maps.</p>
<p>Suppose we had some chain map <img src='/latexrender/pictures/6aa47fb9380f66fc33a3203cb17fb375.png' title='C_*X\overset{\varphi}{\to}C_*S^1' alt='C_*X\overset{\varphi}{\to}C_*S^1' align='middle' /> that sends <img src='/latexrender/pictures/e2b84a8d10865458b52a3f9638e61780.png' title='\sigma\mapsto\sum_{i=0}^n\eta_i' alt='\sigma\mapsto\sum_{i=0}^n\eta_i' align='middle' />.</p>
<p>We look for a chain homotopic map <img src='/latexrender/pictures/deb91d5ad889541f13fb0fdbe50cb465.png' title='\hat\varphi' alt='\hat\varphi' align='middle' /> such that <img src='/latexrender/pictures/672c34d7e86aa2f9d36d723e839905d7.png' title='\hat\varphi(\sigma)' alt='\hat\varphi(\sigma)' align='middle' /> is a simplex (this will be WAY too optimistic, usually) or at least <img src='/latexrender/pictures/76af92f70407245bf83fcad21cd44ffe.png' title='\hat\varphi(\sigma) = \sum_{i=0}^n\eta_i' alt='\hat\varphi(\sigma) = \sum_{i=0}^n\eta_i' align='middle' /> for small <img src='/latexrender/pictures/7b8b965ad4bca0e41ab51de7b31363a1.png' title='n' alt='n' align='middle' /> and <img src='/latexrender/pictures/0cd55065f5366e853225383434efc0a1.png' title='\eta_i' alt='\eta_i' align='middle' /> close together in graph distances.</p>
<p>Yi Ding: there are likely many simplicial maps <img src='/latexrender/pictures/9112868fb2412bf46b638359cbf0ae9b.png' title='X\to S^1' alt='X\to S^1' align='middle' /> inducing any given <img src='/latexrender/pictures/2ec47654285e3cde82835f5108ed02e6.png' title='H_*X\to H_*S^1' alt='H_*X\to H_*S^1' align='middle' />. This makes optimizations on quality of maps (as measured in smallness properties of preimages of given simplices) troublesome, since we have a large search space and are likely to get stuck in local minima.</p>
<p>The topological approach creates very many maps, but we just want ONE &#8211; albeit with quality assurances. The big question is how to get there:</p>
<p>Shrinking the space? Homotopy collapses to reduce the number of generators?</p>
<p>Ask for more side conditions? If so, which?</p>
<p>Minimize the size of preimages and kernels &#8211; smoothing the resulting map?</p>
<p>Run with one condition until we reach a minimum, then change conditions to get out of that particular sink, repeat until it all looks stable?</p>
<p>Thus we need to search for strategies to improve convergence to actually good maps. </p>
<p>The questions we pose are similar to:</p>
<p>Jeff Ericksson, et al.: Given X, <img src='/latexrender/pictures/f37de6c8678aeeb25c8db5fea63941dc.png' title='x\in H_n(X)' alt='x\in H_n(X)' align='middle' />, how do we find a good representative <img src='/latexrender/pictures/469abcb4c4e81c81a68bea82ff6de380.png' title='\xi\in x' alt='\xi\in x' align='middle' />?</p>
<p>Finding good maps is really about finding good representatives in <img src='/latexrender/pictures/b2dd1894936c89847097bfec74edcae6.png' title='Hom(C_*X,C_*Y)' alt='Hom(C_*X,C_*Y)' align='middle' />. Given simplicial bases <img src='/latexrender/pictures/503a61d501d42064de556150d75e1fa3.png' title='\{\sigma_i\}\subseteq X, \{\eta_i\}\subseteq Y' alt='\{\sigma_i\}\subseteq X, \{\eta_i\}\subseteq Y' align='middle' /> we can pick out a first basis<br />
<img src='/latexrender/pictures/247a2e3627b8cb8620d00ea6a9b7cd2a.png' title='\varphi_{\sigma_i\eta_j}(\sigma_k)=\delta_{ik}\eta_j' alt='\varphi_{\sigma_i\eta_j}(\sigma_k)=\delta_{ik}\eta_j' align='middle' /> (Kronecker <img src='/latexrender/pictures/77a3b715842b45e440a5bee15357ad29.png' title='\delta' alt='\delta' align='middle' />) for <img src='/latexrender/pictures/43d0b5d9c180f05c90e5b879b74a1ebb.png' title='Hom(C_*X,C_*Y' alt='Hom(C_*X,C_*Y' align='middle' />.</p>
<p>Finally: many problems in data analysis call for analyzing contractible spaces. So if we pick out the notion of a boundary, doing all of this relative to a boundary would give us increased power to use the resulting methods in data analysis.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2009/12/coordinatization-with-hom-complexes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[MATH198] Lecture 10 (last lecture) posted</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/12/math198-lecture-10-last-lecture-posted/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2009/12/math198-lecture-10-last-lecture-posted/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 22:17:22 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[English]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2009/12/math198-lecture-10-last-lecture-posted/</guid>
		<description><![CDATA[Now up: Lecture 10 with the definition of a topos and a derivation of internal, inutitionistic logic within a topos.
]]></description>
			<content:encoded><![CDATA[<p>Now up: <a href=http://haskell.org/haskellwiki/User:Michiexile/MATH198/Lecture_10>Lecture 10</a> with the definition of a topos and a derivation of internal, inutitionistic logic within a topos.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2009/12/math198-lecture-10-last-lecture-posted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[MATH198] Lecture 9 posted and lectured</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/11/math198-lecture-9-posted-and-lectured/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2009/11/math198-lecture-9-posted-and-lectured/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 18:44:22 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[English]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2009/11/math198-lecture-9-posted-and-lectured/</guid>
		<description><![CDATA[Lecture 9: Catamorphisms, Anamorphisms, more from that zoo; adjunctions, some properties and some examples.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://haskell.org/haskellwiki/User:Michiexile/MATH198/Lecture_9">Lecture 9</a>: Catamorphisms, Anamorphisms, more from that zoo; adjunctions, some properties and some examples.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2009/11/math198-lecture-9-posted-and-lectured/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[MATH198] Multiple lectures posted</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/11/math198-multiple-lectures-posted/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2009/11/math198-multiple-lectures-posted/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 19:31:11 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[English]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2009/11/math198-multiple-lectures-posted/</guid>
		<description><![CDATA[I have been remiss in updating here. Since the last time I posted, I have posted:
Lecture 6, featuring some interesting limits and colimits, culminating in the introduction of adjoints.
Lecture 7, featuring the introduction of monads based in adjoints, with the connection between the monoid of endofunctors and the Haskellite specification of monads.
Lecture 8, featuring Eilenberg-Moore [...]]]></description>
			<content:encoded><![CDATA[<p>I have been remiss in updating here. Since the last time I posted, I have posted:<br />
<a href=http://haskell.org/haskellwiki/User:Michiexile/MATH198/Lecture_6>Lecture 6</a>, featuring some interesting limits and colimits, culminating in the introduction of adjoints.</p>
<p><a href=http://haskell.org/haskellwiki/User:Michiexile/MATH198/Lecture_7>Lecture 7</a>, featuring the introduction of monads based in adjoints, with the connection between the <i>monoid of endofunctors</i> and the Haskellite specification of monads.</p>
<p><a href=http://haskell.org/haskellwiki/User:Michiexile/MATH198/Lecture_8>Lecture 8</a>, featuring Eilenberg-Moore algebras, initial algebras for datatype specification, Lambek&#8217;s lemma and structural induction and recursion with endofunctor algebras.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2009/11/math198-multiple-lectures-posted/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[MATH198] Lecture 5 is up</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/10/math198-lecture-5-is-up/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2009/10/math198-lecture-5-is-up/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 17:07:14 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[English]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2009/10/math198-lecture-5-is-up/</guid>
		<description><![CDATA[And, as it turns out, my logic-fu is lacking. Next time around, it&#8217;s likely I talk about the CCC = typed &#955;-calculus correspondence, but won&#8217;t try to actually produce the correspondence explicitly.
]]></description>
			<content:encoded><![CDATA[<p>And, as it turns out, my logic-fu is lacking. Next time around, it&#8217;s likely I talk about the CCC = typed &lambda;-calculus correspondence, but won&#8217;t try to actually produce the correspondence explicitly.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2009/10/math198-lecture-5-is-up/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[MATH 198] Lecture 4 and a question for the community</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/10/math-198-lecture-4-and-a-question-for-the-community/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2009/10/math-198-lecture-4-and-a-question-for-the-community/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 05:56:03 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[English]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2009/10/math-198-lecture-4-and-a-question-for-the-community/</guid>
		<description><![CDATA[Lecture 4 was held, and the notes are up on the wiki: Lecture 4 notes
During class, and in unrelated conversations afterwards, though, the question emerged:
If Formally differentiating datatypes gives us zippers? What happens if we formally integrate datatypes?
]]></description>
			<content:encoded><![CDATA[<p>Lecture 4 was held, and the notes are up on the wiki: <a href="http://haskell.org/haskellwiki/User:Michiexile/MATH198/Lecture_4">Lecture 4 notes</a></p>
<p>During class, and in unrelated conversations afterwards, though, the question emerged:</p>
<p>If Formally differentiating datatypes gives us zippers? What happens if we formally integrate datatypes?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2009/10/math-198-lecture-4-and-a-question-for-the-community/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>[MATH198] Third lecture is up</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/10/math198-third-lecture-is-up/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2009/10/math198-third-lecture-is-up/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 07:09:56 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[English]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2009/10/math198-third-lecture-is-up/</guid>
		<description><![CDATA[The third lecture is up on the haskell wiki.
]]></description>
			<content:encoded><![CDATA[<p>The third lecture is up on the <a href="http://haskell.org/haskellwiki/User:Michiexile/MATH198/Lecture_3">haskell wiki</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2009/10/math198-third-lecture-is-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[MATH 198] Second lecture</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/10/math-198-second-lecture/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2009/10/math-198-second-lecture/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 20:25:48 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[English]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2009/10/math-198-second-lecture/</guid>
		<description><![CDATA[I&#8217;ve been maddeningly slow lately. With everything.
Since last week Wednesday, the second lecture is up on the Haskell wiki.
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been maddeningly slow lately. With everything.</p>
<p>Since last week Wednesday, the <a href=http://haskell.org/haskellwiki/User:Michiexile/MATH198/Lecture_2>second lecture</a> is up on the Haskell wiki.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2009/10/math-198-second-lecture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[MATH198] Lecture 1 now online</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/09/math198-lecture-1-now-online/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2009/09/math198-lecture-1-now-online/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 20:18:11 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[MATH198]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2009/09/math198-lecture-1-now-online/</guid>
		<description><![CDATA[The first lecture has been successfully held. The notes &#8211; which may well be augmented once I get hold of the students&#8217; notes &#8211; are online on the Haskell Wiki
]]></description>
			<content:encoded><![CDATA[<p>The first lecture has been successfully held. The notes &#8211; which may well be augmented once I get hold of the students&#8217; notes &#8211; are online on <a href=http://haskell.org/haskellwiki/User:Michiexile/MATH198>the Haskell Wiki</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2009/09/math198-lecture-1-now-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Stanford] MATH 198: Category Theory and Functional Programming</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/08/stanford-math-198-category-theory-and-functional-programming/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2009/08/stanford-math-198-category-theory-and-functional-programming/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 06:19:27 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[Category theory]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=226</guid>
		<description><![CDATA[Category theory, with an origin in algebra and topology, has found use in recent decades for computer science and logic applications. Possibly most clearly, this is seen in the design of the programming language Haskell &#8211; where the categorical paradigm suffuses the language design, and gives rise to several of the language constructs, most prominently [...]]]></description>
			<content:encoded><![CDATA[<p>Category theory, with an origin in algebra and topology, has found use in recent decades for computer science and logic applications. Possibly most clearly, this is seen in the design of the programming language Haskell &#8211; where the categorical paradigm suffuses the language design, and gives rise to several of the language constructs, most prominently the Monad.</p>
<p>In this course, we will teach category theory from first principles with an eye towards its applications to and correspondences with Haskell and the theory of functional programming. We expect students to previously or currently be taking CS242 and to have some level of mathematical maturity. We also expect students to have had contact with linear algebra and discrete mathematics in order to follow the motivating examples behind the theory expounded.</p>
<p>Wednesdays at 4.15.</p>
<p>Online notes will appear successively on the Haskell wiki on http://haskell.org/haskellwiki/User:Michiexile/MATH198</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2009/08/stanford-math-198-category-theory-and-functional-programming/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Soliciting advice</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/07/soliciting-advice/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2009/07/soliciting-advice/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 14:28:55 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[Category theory]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=224</guid>
		<description><![CDATA[Dear blogosphere, 
come this fall, I shall be teaching. My first lecture course, ever.
The subject shall be on introducing Category Theory from the bottom up, in a manner digestible for Computer Science Undergraduates who have seen Haskell and been left wanting more from that contact.
And thus comes my question to you all: what would you [...]]]></description>
			<content:encoded><![CDATA[<p>Dear blogosphere, </p>
<p>come this fall, I shall be teaching. My first lecture course, ever.</p>
<p>The subject shall be on introducing Category Theory from the bottom up, in a manner digestible for Computer Science Undergraduates who have seen Haskell and been left wanting more from that contact.</p>
<p>And thus comes my question to you all: what would you like to see in such a course? Is there any advice you want to give me on how to make the course awesome?</p>
<p>The obvious bits are obvious. I shall have to discuss categories, functors, (co)products, (co)limits, monads, monoids, adjoints, natural transformations, the Curry-Howard isomorphism, the Hom-Tensor adjunction, categorical interpretation of data types. And all of it with explicit reference to how all these things influence Haskell, as well as plenty of mathematical examples.</p>
<p>But what ideas can you give me to make this greater than I&#8217;d make it on my own?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2009/07/soliciting-advice/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Guess the plots!</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/06/guess-the-plots/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2009/06/guess-the-plots/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 16:30:26 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[English]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/archive/2009/06/guess-the-plots/</guid>
		<description><![CDATA[What do these depict?


Here are two others. Different data source, different point in time, but what are they?


They are all linked in pairs &#8211; one coloured and one black linked together. They are not sports related. And they are taken from real world data. The colours are relevant and constitute a hint in their own [...]]]></description>
			<content:encoded><![CDATA[<p>What do these depict?</p>
<p><img src="http://blog.mikael.johanssons.org/wp-content/quizplot1.png" /><br />
<img src="http://blog.mikael.johanssons.org/wp-content/quizplot2.png" /></p>
<p>Here are two others. Different data source, different point in time, but what <i>are</i> they?</p>
<p><img src="http://blog.mikael.johanssons.org/wp-content/quiz3.png" /><br />
<img src="http://blog.mikael.johanssons.org/wp-content/quiz4.png" /></p>
<p>They are all linked in pairs &#8211; one coloured and one black linked together. They are not sports related. And they are taken from real world data. The colours are relevant and constitute a hint in their own right.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2009/06/guess-the-plots/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Mapping zipcodes in R</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/05/mapping-zipcodes-in-r/</link>
		<comments>http://blog.mikael.johanssons.org/archive/2009/05/mapping-zipcodes-in-r/#comments</comments>
		<pubDate>Wed, 13 May 2009 14:51:51 +0000</pubDate>
		<dc:creator>Michi</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[R]]></category>

		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=209</guid>
		<description><![CDATA[I started fiddling around with R again, and ended up playing with a zipcode database.
So, first I downloaded the zipcode database at Mapping Hacks, and unpacked the zipfile in my working directory. 
Then, I loaded the data into R

&#62; zips &#60;- read.table(&#34;zipcode.csv&#34;,sep=&#34;,&#34;,quote=&#34;\&#34;&#34;,header=TRUE)
&#62; names(zips)
[1] &#34;zip&#34; &#160; &#160; &#160; &#34;city&#34; &#160; &#160; &#160;&#34;state&#34; &#160; &#160; &#34;latitude&#34; &#160;&#34;longitude&#34;
[6] [...]]]></description>
			<content:encoded><![CDATA[<p>I started fiddling around with R again, and ended up playing with a zipcode database.</p>
<p>So, first I downloaded the zipcode database at <a href="http://www.mappinghacks.com/data">Mapping Hacks</a>, and unpacked the zipfile in my working directory. </p>
<p>Then, I loaded the data into R</p>
<div class="dean_ch" style="white-space: wrap;">
&gt; zips &lt;- read.table(&quot;zipcode.csv&quot;,sep=&quot;,&quot;,quote=&quot;\&quot;&quot;,header=TRUE)<br />
&gt; names(zips)<br />
[1] &quot;zip&quot; &nbsp; &nbsp; &nbsp; &quot;city&quot; &nbsp; &nbsp; &nbsp;&quot;state&quot; &nbsp; &nbsp; &quot;latitude&quot; &nbsp;&quot;longitude&quot;<br />
[6] &quot;timezone&quot; &nbsp;&quot;dst&quot; &nbsp; &nbsp; &nbsp;<br />
&nbsp;</div>
<p>So, now I have an R frame containing a lot of US cities, their geographical coordinates, and their zip codes. So we can start playing with the plot command! After rooting around a bit, I ended up settling on the smallest footprint plot dot I could make R produce, by setting the option <span lang="R">pch=20</span> in the plot options. Hence, I ended up with a command basically like this:</p>
<div class="dean_ch" style="white-space: wrap;">
&gt; plot(zips$longitude,zips$latitude,type=&quot;p&quot;,col=((zips$zip/10000)%%10)+1,pch=20,axes=FALSE,xlab=&quot;&quot;,ylab=&quot;&quot;,cex=0.1)<br />
&nbsp;</div>
<p>where the +1 after the modulus is to make even 0-values plot, and the cex parameter sets the point size to something small and pretty.<br />
<a href="http://blog.mikael.johanssons.org/wp-content/usZip1.png"><img src="http://blog.mikael.johanssons.org/wp-content/usZip1.png" alt="First digit of the USPS zip code" width="400" /></a></p>
<p>We can continue this, tweaking the divisor to extract all the other digits of the zip code, and we end up getting:</p>
<div class="dean_ch" style="white-space: wrap;">
&gt; plot(zips$longitude,zips$latitude,type=&quot;p&quot;,col=((zips$zip/1000)%%10)+1,pch=20,axes=FALSE,xlab=&quot;&quot;,ylab=&quot;&quot;,cex=0.1)<br />
&nbsp;</div>
<p>and the result<br />
<a href="http://blog.mikael.johanssons.org/wp-content/usZip2.png"><img src="http://blog.mikael.johanssons.org/wp-content/usZip2.png" alt="Second digit of the USPS zip code" width="400" /></a></p>
<div class="dean_ch" style="white-space: wrap;">
&gt; plot(zips$longitude,zips$latitude,type=&quot;p&quot;,col=((zips$zip/100)%%10)+1,pch=20,axes=FALSE,xlab=&quot;&quot;,ylab=&quot;&quot;,cex=0.1)<br />
&nbsp;</div>
<p>and the result<br />
<a href="http://blog.mikael.johanssons.org/wp-content/usZip3.png"><img src="http://blog.mikael.johanssons.org/wp-content/usZip3.png" alt="Third digit of the USPS zip code" width="400" /></a></p>
<div class="dean_ch" style="white-space: wrap;">
&gt; plot(zips$longitude,zips$latitude,type=&quot;p&quot;,col=((zips$zip/10)%%10)+1,pch=20,axes=FALSE,xlab=&quot;&quot;,ylab=&quot;&quot;,cex=0.1)<br />
&nbsp;</div>
<p>and the result<br />
<a href="http://blog.mikael.johanssons.org/wp-content/usZip4.png"><img src="http://blog.mikael.johanssons.org/wp-content/usZip4.png" alt="Fourth digit of the USPS zip code" width="400" /></a></p>
<p>and finally</p>
<div class="dean_ch" style="white-space: wrap;">
&gt; plot(zips$longitude,zips$latitude,type=&quot;p&quot;,col=((zips$zip/1)%%10)+1,pch=20,axes=FALSE,xlab=&quot;&quot;,ylab=&quot;&quot;,cex=0.1)<br />
&nbsp;</div>
<p>and the result<br />
<a href="http://blog.mikael.johanssons.org/wp-content/usZip5.png"><img src="http://blog.mikael.johanssons.org/wp-content/usZip5.png" alt="Fifth digit of the USPS zip code" width="400" /></a></p>
<p>And then, of course, we can zoom in on data too. So we can do things like extracting Californian zip codes</p>
<div class="dean_ch" style="white-space: wrap;">
&gt; cazips &lt;- zips[zips$state == &quot;CA&quot;,]<br />
&gt; plot(cazips$longitude,cazips$latitude,type=&quot;p&quot;,col=((cazips$zip/1000)%%10)+1,pch=20,axes=FALSE,xlab=&quot;&quot;,ylab=&quot;&quot;,cex=0.5)<br />
&nbsp;</div>
<p>to get<br />
<a href="http://blog.mikael.johanssons.org/wp-content/caZip2.png"><img src="http://blog.mikael.johanssons.org/wp-content/caZip2.png" alt="Second digit of the Californian USPS zip code" width="400" /></a><br />
or, we could extract New York zip codes:</p>
<div class="dean_ch" style="white-space: wrap;">
&gt; nyzips &lt;- zips[zips$state == &quot;NY&quot;,]<br />
&gt; plot(nyzips$longitude,nyzips$latitude,type=&quot;p&quot;,col=((nyzips$zip/100)%%10)+1,pch=20,axes=FALSE,xlab=&quot;&quot;,ylab=&quot;&quot;,cex=0.5)<br />
&nbsp;</div>
<p><a href="http://blog.mikael.johanssons.org/wp-content/nyZip3.png"><img src="http://blog.mikael.johanssons.org/wp-content/nyZip3.png" alt="Third digit of the New York USPS zip code" width="400" /></a><br />
or even extract, say, the zip codes starting with 10 or 11, covering New York City and surroundings and take a closer look</p>
<div class="dean_ch" style="white-space: wrap;">
&gt; ny10zips &lt;- nyzips[nyzips$zip&lt;12000,]<br />
&gt; ny10zips &lt;- ny10zips[ny10zips$zip&gt;9999,]<br />
&gt; plot(ny10zips$longitude,ny10zips$latitude,type=&quot;p&quot;,col=((ny10zips$zip/100)%%10)+1,pch=20,axes=FALSE,xlab=&quot;&quot;,ylab=&quot;&quot;,cex=1.0)<br />
&nbsp;</div>
<p><a href="http://blog.mikael.johanssons.org/wp-content/ny10Zip3.png"><img src="http://blog.mikael.johanssons.org/wp-content/ny10Zip3.png" alt="Third digit of the USPS zip codes 10xxx and 11xxx" width="400" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mikael.johanssons.org/archive/2009/05/mapping-zipcodes-in-r/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
