]> unremediatedgender.space Git - Ultimately_Untrue_Thought.git/commitdiff
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 53c52323366713465008f8cfa00c83e7f5ccec74..6535c40e1a2b177b57787c5597f1d8dd8d969dfb 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 a21a53df7888c4aa08a1fb1e898b8855aebf970e..43b68a91b9f439b243e55ff7b48e91b0299b55ae 100644 (file)
Binary files a/content/images/genderspace_cluster_choice.png and b/content/images/genderspace_cluster_choice.png differ
index 889073f1382468692ff1512cfd07fbedef19cb15..bc1c7f3ebbc89edafbad16b74cba8ce1b6794319 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 a32ebdb7278a4c701844d63c2b5c8001b8b88272..6adaa982790c1d23407f4e2e1b38c3f63708f966 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;
+}