label axes (albeit uninformatively), explain diagram in a boxed aside
authorM. Taylor Saotome-Westlake <ultimatelyuntruethought@gmail.com>
Thu, 22 Feb 2018 00:20:08 +0000 (16:20 -0800)
committerM. Taylor Saotome-Westlake <ultimatelyuntruethought@gmail.com>
Thu, 22 Feb 2018 00:41:50 +0000 (16:41 -0800)
content/drafts/the-categories-were-made-for-man-to-make-predictions.md
content/images/genderspace_cluster_choice.png
content/images/genderspace_cluster_choice_source.xcf
content/pages/ancillary/categories-scatterplot-source.md [new file with mode: 0644]
theme/static/css/main.css

index 53c5232..6535c40 100644 (file)
@@ -94,6 +94,8 @@ What makes this difficult is that—_conditional_ the two-types hypothesis and s
 
 <a href="/images/genderspace_cluster_choice.png"><img src="/images/genderspace_cluster_choice.png" width="532" height="421" alt="genderspace cluster choice"></a>
 
+<aside class="boxout"><strong>Figure.</strong> A schematic visualization of genderspace using fictitious but hopefully illustrative data <a href="/ancillary/categories-scatterplot-source/">(scatterplot source code)</a>. Suppose that the distributions of cis men (represented by the <span style="color: #1E90FF;">light blue</span> datapoints) and cis women (the <span style="color: #FF1493;">hot pink</span> points) have the same variance, but their means differ by 3.5 standard deviations in each of the <em>x₁</em>, <em>x₂</em>, and <em>x₃</em> variables, and that the distribution of non-exclusively-androphilic trans women (the <span style="color: #B000B0;">purple</span> points) is the same as that of cis men for the <em>x₁</em> and <em>x₂</em> variables, but resembles that of cis women for <em>x₃</em>. People who care more about predicting <em>x₁</em> and <em>x₂</em> have reason to prefer categories and corresponding language that group by biological sex (<span style="color: #0000C8;">blue</span> category boundary); people who care more about predicting <em>x₃</em> have reason to prefer categories and language that group by gender identity (<span style="color: #E00000;">red</span> boundary).</aside>
+
 In less tolerant places and decades, where MtF transsexuals were very rare and had to try very hard to pass as (natal) women out of dire necessity, their impact on the social order and how people think about gender was minimal—there were just too few trans people to make much of a difference. [This is why](/2018/Feb/blegg-mode/) experienced crossdressers often report it being easier to pass in rural or suburban areas rather than cities with a larger LGBT presence—not as a matter of tolerant social attitudes, but as a matter of _base rates_: it's harder to get [clocked](https://www.urbandictionary.com/define.php?term=clocked&defid=4884301) by people who aren't aware that being trans is even a thing.[ref]In [predictive processing](http://slatestarcodex.com/2017/09/05/book-review-surfing-uncertainty/) terms: the prediction errors caused by observations of a trans woman failing to match the observer's generative model of women get silenced for lack of alternative hypotheses if "She's trans" isn't in the observer's hypothesis space.[/ref]
 
 Nowadays, in progressive enclaves of Western countries, transness is definitely known to be a thing—and in particular subcultures that form around [non-sex-balanced interests](http://slatestarcodex.com/2017/08/07/contra-grant-on-exaggerated-differences/), the numbers can be quite dramatic. For example, on the [2018 _Slate Star Codex_ reader survey](http://slatestarcodex.com/2018/01/03/ssc-survey-results-2018/), 9.4% of respondents selected _F (cisgender)_ for the gender question, compared to 1.4% of respondents selecting _F (transgender m → f)_. So, if trans women are women, _13.4%_ (!!) of women who read _Slate Star Codex_ are trans.
index a21a53d..43b68a9 100644 (file)
Binary files a/content/images/genderspace_cluster_choice.png and b/content/images/genderspace_cluster_choice.png differ
index 889073f..bc1c7f3 100644 (file)
Binary files a/content/images/genderspace_cluster_choice_source.xcf and b/content/images/genderspace_cluster_choice_source.xcf differ
diff --git a/content/pages/ancillary/categories-scatterplot-source.md b/content/pages/ancillary/categories-scatterplot-source.md
new file mode 100644 (file)
index 0000000..6549bc2
--- /dev/null
@@ -0,0 +1,75 @@
+Title: Source Code for Scatterplot Figure in "The Categories Were Made for Man to Make Predictions"
+Status: Hidden
+
+Requires [NumPy](http://www.numpy.org/), [Matplotlib](https://matplotlib.org/).
+
+```python
+import functools
+import itertools
+
+import matplotlib.pyplot as plot
+from matplotlib.colors import ListedColormap
+from mpl_toolkits.mplot3d import Axes3D
+from numpy import array
+from numpy.random import normal
+
+
+class Person:
+    def __init__(self, a, b, c):
+        self.a = a
+        self.b = b
+        self.c = c
+
+    def trait_vector(self):
+        return [self.a, self.b, self.c]
+
+    @classmethod
+    def generate_cis_male(cls):
+        a = normal(0, 1)
+        b = normal(0, 1)
+        c = normal(0, 1)
+        return cls(a, b, c)
+
+    @classmethod
+    def generate_cis_female(cls):
+        a = normal(3.5, 1)
+        b = normal(3.5, 1)
+        c = normal(3.5, 1)
+        return cls(a, b, c)
+
+    @classmethod
+    def generate_agp(cls):
+        a = normal(0, 1)
+        b = normal(0, 1)
+        c = normal(3.8, 1)
+        return cls(a, b, c)
+
+def my_plot():
+    group_size = 50
+
+    p1 = [Person.generate_cis_female().trait_vector()
+          for _ in range(group_size)]
+    p2 = [Person.generate_agp().trait_vector()
+          for _ in range(group_size)]
+    p3 = [Person.generate_cis_male().trait_vector()
+          for _ in range(group_size)]
+
+    p = array(p1 + p2 + p3)
+
+    target = list(functools.reduce(itertools.chain,
+                                   [itertools.repeat(i, group_size)
+                                    for i in range(1, 4)]))
+
+    figure = plot.figure(figsize=(6, 5))
+    axes = Axes3D(figure)
+
+    axes.scatter(p[:, 0], p[:, 1], p[:, 2],
+                 c=target,
+                 cmap=ListedColormap(["#FF1493", "#B000B0", "#1E90FF"]))
+    plot.show()
+
+
+if __name__ == "__main__":
+    my_plot()
+
+```
\ No newline at end of file
index a32ebdb..6adaa98 100644 (file)
@@ -335,3 +335,15 @@ p#notes-header {
 ol.simple-footnotes {
     font-size: 85%;
 }
+
+
+/* sidebar-aside */
+aside.boxout {
+    width: 80%;
+    font-size: 12px;
+    background-color: #E5E5E5;
+    outline-style: solid;
+    outline-color: black;
+    outline-width: 1px;
+    padding: 6px;
+}