<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Regression on TouchingFish.top</title><link>https://touchingfish.top/tags/regression/</link><description>Recent content in Regression on TouchingFish.top</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Wed, 20 Dec 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://touchingfish.top/tags/regression/index.xml" rel="self" type="application/rss+xml"/><item><title>回归能做的事 / Simple Linear Regression Universe</title><link>https://touchingfish.top/2023/regression-universal-advantage/</link><pubDate>Wed, 20 Dec 2023 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2023/regression-universal-advantage/</guid><description>&lt;p&gt;这个系列走到了最后一篇。&lt;/p&gt;
&lt;p&gt;前面七篇文章论证了一件事：t检验、ANOVA、相关分析——你在基础统计课上学到的几乎所有参数检验，都是线性回归的特例。有些等价于简单回归，有些等价于加了固定效应的回归，有些等价于标准化后的回归。但归根结底，它们都住在 $Y = X\beta + \varepsilon$ 这栋楼里。&lt;/p&gt;
&lt;p&gt;这栋楼本身还远不止如此。今天聊聊：回归的框架为什么比传统检验&amp;quot;能打&amp;quot;那么多。&lt;/p&gt;
&lt;h2 id="t检验只能问一个是或否"&gt;t检验只能问一个&amp;quot;是或否&amp;quot;&lt;/h2&gt;
&lt;p&gt;t检验能回答的问题是：两组均值是否不同？&lt;/p&gt;
&lt;p&gt;能给你的输出是：t值、p值、&amp;ldquo;显著还是不显著&amp;rdquo;。&lt;/p&gt;
&lt;p&gt;就这样。&lt;/p&gt;
&lt;p&gt;如果你想问&amp;quot;控制年龄之后，两组均值是否仍然不同？&amp;quot;——t检验答不了。如果你想问&amp;quot;剂量每增加一个单位，血压下降多少？&amp;quot;——t检验答不了。如果你想问&amp;quot;男性和女性对治疗的反应是否有差异？&amp;quot;——t检验可以分组做，但不能在一个模型里同时估计主效应和交互效应。&lt;/p&gt;
&lt;p&gt;回归框架下，这些问题全都是在一个模型里多加一行 $X$ 的事。&lt;/p&gt;
&lt;h2 id="加协变量从有没有差异到为什么有差异"&gt;加协变量：从&amp;quot;有没有差异&amp;quot;到&amp;quot;为什么有差异&amp;quot;&lt;/h2&gt;
&lt;p&gt;成组t检验告诉你：治疗组和对照组的血压有显著差异。&lt;/p&gt;
&lt;p&gt;回归可以告诉你：&lt;strong&gt;在控制了年龄、性别和基线血压之后&lt;/strong&gt;，治疗组和对照组的血压仍然有显著差异。&lt;/p&gt;
&lt;p&gt;只需要把模型从&lt;/p&gt;
$$
Y = \beta_0 + \beta_1 \cdot \rm{treatment} + \varepsilon
$$&lt;p&gt;扩展为&lt;/p&gt;
$$
Y = \beta_0 + \beta_1 \cdot \rm{treatment} + \beta_2 \cdot \rm{age} + \beta_3 \cdot \rm{sex} + \beta_4 \cdot \rm{baseline} + \varepsilon
$$&lt;p&gt;$\beta_1$ 的含义从&amp;quot;两组均值之差&amp;quot;变成了&amp;quot;&lt;strong&gt;其他条件不变时&lt;/strong&gt;，治疗组与对照组的血压差异&amp;quot;。从 association 到 conditional association，这是一大步。&lt;/p&gt;
&lt;p&gt;在医学研究中，不加协变量的分析几乎是不可发表的。因为随机对照试验（RCT）虽然理论上保证了组间可比性，但实际中总有运气不好的时候——万一治疗组平均年龄偏高呢？加协变量就是在统计上抹平这些偶然的不均衡。&lt;/p&gt;
&lt;p&gt;而t检验没有&amp;quot;加协变量&amp;quot;这个选项。你得另找方法——通常是回归。&lt;/p&gt;
&lt;h2 id="交互项效应不是一成不变的"&gt;交互项：效应不是一成不变的&lt;/h2&gt;
&lt;p&gt;t检验默认治疗效应在所有子群体中相同。回归可以加交互项：&lt;/p&gt;
$$
Y = \beta_0 + \beta_1 \cdot \rm{treatment} + \beta_2 \cdot \rm{sex} + \beta_3 \cdot (\rm{treatment} \times \rm{sex}) + \varepsilon
$$&lt;p&gt;$\beta_3$ 告诉你：男性和女性的治疗效应是否有显著差异？&lt;/p&gt;</description></item><item><title>r = β*</title><link>https://touchingfish.top/2023/pearson-correlation-regression/</link><pubDate>Fri, 08 Dec 2023 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2023/pearson-correlation-regression/</guid><description>&lt;p&gt;Pearson相关系数 $r$ 是统计101的必修内容。定义是：&lt;/p&gt;
$$
r = \frac{\sum (X_i - \bar{X})(Y_i - \bar{Y})}{\sqrt{\sum (X_i - \bar{X})^2 \sum (Y_i - \bar{Y})^2}}
$$&lt;p&gt;就是&amp;quot;协方差除以两个标准差的乘积&amp;quot;。取值范围 $[-1, 1]$，绝对值越大说明线性相关越强。&lt;/p&gt;
&lt;p&gt;而回归系数 $\beta_1$ 是：&lt;/p&gt;
$$
\beta_1 = \frac{\sum (X_i - \bar{X})(Y_i - \bar{Y})}{\sum (X_i - \bar{X})^2}
$$&lt;p&gt;长得有点像，但不是同一个东西。$\beta_1$ 可以大于 $1$，单位取决于 $Y$ 和 $X$ 的单位。&lt;/p&gt;
&lt;p&gt;这两个公式之间有什么精确的关系？如果你把 $X$ 和 $Y$ 都标准化（减去均值再除以标准差），回归系数就变成了 $r$。&lt;/p&gt;
&lt;h2 id="标准化回归"&gt;标准化回归&lt;/h2&gt;
&lt;p&gt;定义标准化变量：&lt;/p&gt;
$$
X_i^* = \frac{X_i - \bar{X}}{s_X}, \quad Y_i^* = \frac{Y_i - \bar{Y}}{s_Y}
$$&lt;p&gt;其中 $s_X$ 和 $s_Y$ 分别是 $X$ 和 $Y$ 的样本标准差。标准化后，两个变量的均值都是 $0$，标准差都是 $1$。&lt;/p&gt;</description></item><item><title>固定效应回归的视角 / Paired T-test</title><link>https://touchingfish.top/2023/paired-t-test-fixed-effects/</link><pubDate>Mon, 20 Nov 2023 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2023/paired-t-test-fixed-effects/</guid><description>&lt;p&gt;前面的文章一直在讲&amp;quot;某某检验等价于回归&amp;quot;。这一篇要讲一个&lt;strong&gt;不完全等价&lt;/strong&gt;的情况。&lt;/p&gt;
&lt;p&gt;配对t检验（paired t-test）不等价于普通的简单线性回归。但它等价于另一种回归——带个体固定效应的回归（fixed effects regression）。这种&amp;quot;不完全等价&amp;quot;反而能帮你理解回归框架的灵活性。&lt;/p&gt;
&lt;h2 id="配对t检验在做什么"&gt;配对t检验在做什么？&lt;/h2&gt;
&lt;p&gt;配对设计：每个受试者接受两种处理（或前后测量两次），你关心的是两种处理下结果是否有差异。比如：10个人吃药前和吃药后的血压变化。&lt;/p&gt;
&lt;p&gt;配对t检验的做法是：对每个人算差值 $D_i = Y_{i,\rm after} - Y_{i,\rm before}$，然后对差值做单样本t检验，$H_0: \mu_D = 0$。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;before&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="nf"&gt;c&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;130&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;142&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;128&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;135&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;140&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;132&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;138&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;129&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;136&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;133&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;after&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="nf"&gt;c&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;125&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;138&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;126&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;130&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;135&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;128&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;134&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;125&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;131&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;130&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;t.test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;after&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;before&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;paired&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Paired&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;after&lt;/span&gt; &lt;span class="n"&gt;and&lt;/span&gt; &lt;span class="n"&gt;before&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;-13.038&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;3.787e-07&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;alternative&lt;/span&gt; &lt;span class="n"&gt;hypothesis&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;true&lt;/span&gt; &lt;span class="n"&gt;mean&lt;/span&gt; &lt;span class="n"&gt;difference&lt;/span&gt; &lt;span class="n"&gt;is&lt;/span&gt; &lt;span class="n"&gt;not&lt;/span&gt; &lt;span class="n"&gt;equal&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;95&lt;/span&gt; &lt;span class="n"&gt;percent&lt;/span&gt; &lt;span class="n"&gt;confidence&lt;/span&gt; &lt;span class="n"&gt;interval&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;-4.811372&lt;/span&gt; &lt;span class="m"&gt;-3.388628&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;sample&lt;/span&gt; &lt;span class="n"&gt;estimates&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;mean&lt;/span&gt; &lt;span class="n"&gt;difference&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;-4.1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="为什么普通回归不行"&gt;为什么普通回归不行？&lt;/h2&gt;
&lt;p&gt;如果你不管配对结构，直接把前后数据当独立样本做成组t检验：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;t.test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;after&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;before&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var.equal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;TRUE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Two&lt;/span&gt; &lt;span class="n"&gt;Sample&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;after&lt;/span&gt; &lt;span class="n"&gt;and&lt;/span&gt; &lt;span class="n"&gt;before&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;-2.0014&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;18&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;0.06066&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;alternative&lt;/span&gt; &lt;span class="n"&gt;hypothesis&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;true&lt;/span&gt; &lt;span class="n"&gt;difference&lt;/span&gt; &lt;span class="kr"&gt;in&lt;/span&gt; &lt;span class="n"&gt;means&lt;/span&gt; &lt;span class="n"&gt;is&lt;/span&gt; &lt;span class="n"&gt;not&lt;/span&gt; &lt;span class="n"&gt;equal&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;95&lt;/span&gt; &lt;span class="n"&gt;percent&lt;/span&gt; &lt;span class="n"&gt;confidence&lt;/span&gt; &lt;span class="n"&gt;interval&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;-8.4039&lt;/span&gt; &lt;span class="m"&gt;0.2039&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;sample&lt;/span&gt; &lt;span class="n"&gt;estimates&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;mean&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="n"&gt;mean&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;130.2&lt;/span&gt; &lt;span class="m"&gt;134.3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;你会发现t值和p值都跟配对检验不一样——通常配对检验的p值更小（因为它消除了个体间差异的干扰）。&lt;/p&gt;
&lt;p&gt;同样的，如果你跑一个&amp;quot;处理前后&amp;quot;的虚拟变量回归：&lt;/p&gt;
$$
Y = \beta_0 + \beta_1 \cdot \rm{after} + \varepsilon
$$&lt;p&gt;$\beta_1$ 的t检验等价于上面的独立样本t检验，不是配对t检验。因为这个回归把同一个人的前后两次测量当成两个独立的观测，忽略了个体间的相关性。&lt;/p&gt;
&lt;p&gt;配对设计的核心是：&lt;strong&gt;同一个人的两次测量不是独立的&lt;/strong&gt;。张三的血压无论吃药前后都可能比李四高——如果不控制这个&amp;quot;张三效应&amp;quot;，个体差异就会淹没处理效应。&lt;/p&gt;
&lt;h2 id="个体固定效应回归"&gt;个体固定效应回归&lt;/h2&gt;
&lt;p&gt;解决方案：给每个人加一个单独的截距。这就是个体固定效应模型（individual fixed effects model）：&lt;/p&gt;
$$
Y_{it} = \alpha_i + \beta \cdot \rm{after}_{it} + \varepsilon_{it}
$$&lt;p&gt;其中 $\alpha_i$ 是第 $i$ 个人的固定效应（一个只属于他/她的截距项），$\rm{after}_{it}$ 是&amp;quot;是否为处理后测量&amp;quot;的虚拟变量，$\beta$ 是我们关心的处理效应。&lt;/p&gt;</description></item><item><title>多个虚拟变量的回归 / One-way ANOVA</title><link>https://touchingfish.top/2023/one-way-anova-regression/</link><pubDate>Wed, 08 Nov 2023 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2023/one-way-anova-regression/</guid><description>&lt;p&gt;前一篇文章证明了在两组比较中 $t^2 = F$，t检验、ANOVA、回归三者等价。&lt;/p&gt;
&lt;p&gt;现在从两组推广到多组。单因素ANOVA有 $k$ 个处理组（$k \ge 2$），想知道各组均值是否有差异。传统做法：算组间平方和、组内平方和、F统计量，查表做结论。&lt;/p&gt;
&lt;p&gt;回归视角：把 $k$ 个组编码为 $k-1$ 个虚拟变量，做多元线性回归，然后做整体F检验。&lt;/p&gt;
&lt;h2 id="从两组到多组问题在哪"&gt;从两组到多组：问题在哪？&lt;/h2&gt;
&lt;p&gt;两组时，一个虚拟变量就够了——$X=0$ 表示A组，$X=1$ 表示B组。多组时，你不能用一个变量编码&amp;quot;A、B、C&amp;quot;三种取值（因为 C 和 A 的差距不一定刚好是 B 和 A 的两倍，假设线性的数值关系毫无道理）。&lt;/p&gt;
&lt;p&gt;解决方案：用 $k-1$ 个虚拟变量。&lt;/p&gt;
&lt;p&gt;以三组为例。设对照组为A组，构造两个虚拟变量：&lt;/p&gt;
$$
X_{B} =
\begin{cases}
1, &amp; \rm{B组} \\
0, &amp; \rm{其他}
\end{cases}
\quad
X_{C} =
\begin{cases}
1, &amp; \rm{C组} \\
0, &amp; \rm{其他}
\end{cases}
$$&lt;p&gt;A组对应 $(X_B, X_C) = (0, 0)$，作为参照组（reference group）。回归模型：&lt;/p&gt;
$$
Y = \beta_0 + \beta_B X_B + \beta_C X_C + \varepsilon
$$&lt;p&gt;OLS估计结果：&lt;/p&gt;</description></item><item><title>t² = F</title><link>https://touchingfish.top/2023/t-squared-equals-f/</link><pubDate>Sun, 10 Sep 2023 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2023/t-squared-equals-f/</guid><description>&lt;p&gt;如果你在统计课上认真听了两组比较那两章，你可能隐约记得：t检验的t值和ANOVA的F值之间好像有点关系。&lt;/p&gt;
&lt;p&gt;但大多数教材不会把这件事说透。t检验在第四章，ANOVA在第六章，它们被当作两个独立的工具来讲。你忙着记公式、背适用条件、算自由度，没时间去想&amp;quot;这两个东西本质上是不是同一个&amp;quot;。&lt;/p&gt;
&lt;p&gt;答案是：在两组比较的情形下，$t^2 = F$。这不是近似，是严格的数学恒等式。&lt;/p&gt;
&lt;h2 id="从两个分布说起"&gt;从两个分布说起&lt;/h2&gt;
&lt;p&gt;t 分布的定义是这样的：如果 $Z \sim \mathcal{N}(0, 1)$ 和 $V \sim \chi^2_{df}$ 独立，那么&lt;/p&gt;
$$
t = \frac{Z}{\sqrt{V / df}} \sim t_{df}
$$&lt;p&gt;F 分布的定义是这样的：如果 $U \sim \chi^2_{d_1}$ 和 $V \sim \chi^2_{d_2}$ 独立，那么&lt;/p&gt;
$$
F = \frac{U / d_1}{V / d_2} \sim F_{d_1, d_2}
$$&lt;p&gt;把 t 的定义平方一下：&lt;/p&gt;
$$
t^2 = \frac{Z^2}{V / df}
$$&lt;p&gt;$Z^2$ 服从自由度为 $1$ 的 $\chi^2$ 分布。所以 $t^2$ 恰好是分子自由度为 $1$、分母自由度为 $df$ 的 F 分布：&lt;/p&gt;
$$
t^2_{df} = F_{1, df}
$$&lt;p&gt;这就是分布层面的等价性。不是&amp;quot;差不多&amp;quot;，是&amp;quot;平方之后完全一样&amp;quot;。&lt;/p&gt;</description></item><item><title>虚拟变量 / Independent T-test</title><link>https://touchingfish.top/2023/independent-t-test-regression/</link><pubDate>Tue, 01 Aug 2023 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2023/independent-t-test-regression/</guid><description>&lt;p&gt;在特定条件下，它们本质上是同一个统计检验，只是表达形式不同。&lt;/p&gt;
&lt;p&gt;如果把&amp;quot;成组 t 检验&amp;quot;理解为&amp;quot;两组均值比较的独立样本 t 检验&amp;quot;，那么它与&amp;quot;只有一个二元自变量的简单线性回归中的回归系数显著性检验&amp;quot;是完全等价的。&lt;/p&gt;
&lt;h2 id="两种写法同一个模型"&gt;两种写法，同一个模型&lt;/h2&gt;
&lt;p&gt;t检验的设定：比较A组与B组均值是否不同。你有两组独立样本，想知道它们来自的总体均值是否相等。&lt;/p&gt;
&lt;p&gt;回归的设定：设&lt;/p&gt;
$$
Y = \beta_0 + \beta_1 X + \varepsilon
$$&lt;p&gt;其中 $X$ 是一个虚拟变量（dummy variable）：&lt;/p&gt;
$$
X =
\begin{cases}
0, &amp; \rm{A组} \\
1, &amp; \rm{B组}
\end{cases}
$$&lt;p&gt;最小二乘估计的结果是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$\hat\beta_0 = \bar{Y}_{\rm A}$，A组的样本均值&lt;/li&gt;
&lt;li&gt;$\hat\beta_1 = \bar{Y}_{\rm B} - \bar{Y}_{\rm A}$，两组均值之差&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;然后检验 $H_0: \beta_1 = 0$。&lt;/p&gt;
&lt;p&gt;这里得到的：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;t 值相同&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;p 值相同&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自由度相同&lt;/strong&gt;（都是 $n_{\rm A} + n_{\rm B} - 2$）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;结论相同&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;从数学上看，它们是同一个模型的两种写法。&lt;/p&gt;
&lt;h2 id="一个数值验证"&gt;一个数值验证&lt;/h2&gt;
&lt;p&gt;算一个具体例子比讲十遍理论更有说服力。假设A组有5个数据：$[3.2, 4.1, 3.8, 3.5, 4.0]$，B组有5个数据：$[5.1, 5.8, 5.3, 5.5, 5.0]$。&lt;/p&gt;</description></item><item><title>截距项 / One Sample t-test</title><link>https://touchingfish.top/2023/one-sample-t-test-regression/</link><pubDate>Thu, 20 Jul 2023 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2023/one-sample-t-test-regression/</guid><description>&lt;p&gt;我们从最简情形开始。&lt;/p&gt;
&lt;p&gt;单样本t检验是你在统计课上学到的第一个检验：有一组数据，想知道它的均值是否等于某个特定值 $\mu_0$。比如：这批药片的平均重量是不是 $500\rm{mg}$？这个班级的平均成绩是不是 $70$ 分？&lt;/p&gt;
&lt;p&gt;标准做法：算t统计量，查t分布表，看p值，做结论。&lt;/p&gt;
&lt;p&gt;而&amp;quot;回归视角&amp;quot;的做法更简单：跑一个&lt;strong&gt;只有截距项&lt;/strong&gt;的回归。&lt;/p&gt;
&lt;h2 id="只有截距的回归"&gt;只有截距的回归&lt;/h2&gt;
&lt;p&gt;考虑模型：&lt;/p&gt;
$$
Y_i = \beta_0 + \varepsilon_i, \quad \varepsilon_i \sim \mathcal{N}(0, \sigma^2)
$$&lt;p&gt;没有自变量，只有截距 $\beta_0$。对这个模型做最小二乘估计（OLS），$\hat\beta_0$ 恰好是样本均值 $\bar{Y}$。这应该不意外——当你只能用一条水平线去拟合数据时，最好的选择就是取平均值。&lt;/p&gt;
&lt;p&gt;检验 $H_0: \beta_0 = \mu_0$ 的 t 统计量为：&lt;/p&gt;
$$
t = \frac{\hat\beta_0 - \mu_0}{\rm{SE}(\hat\beta_0)}
$$&lt;p&gt;其中 $\rm{SE}(\hat\beta_0) = s / \sqrt{n}$，$s$ 是样本标准差。&lt;/p&gt;
&lt;p&gt;而单样本t检验的公式是：&lt;/p&gt;
$$
t = \frac{\bar{Y} - \mu_0}{s / \sqrt{n}}
$$&lt;p&gt;一样。&lt;/p&gt;
&lt;p&gt;因为 $\hat\beta_0 = \bar{Y}$，所以两个公式完全等价。t值相同，自由度相同（都是 $n-1$），p值相同，结论相同。&lt;/p&gt;
&lt;h2 id="拟合一个空模型"&gt;拟合一个&amp;quot;空&amp;quot;模型&lt;/h2&gt;
&lt;p&gt;在 R 里，你可以这样拟合：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="nf"&gt;c&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;5.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;4.8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;5.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;5.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;4.9&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;summary&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;lm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;~&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Call&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;lm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;formula&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;~&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Residuals&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;2.000e-01&lt;/span&gt; &lt;span class="m"&gt;-2.000e-01&lt;/span&gt; &lt;span class="m"&gt;1.000e-01&lt;/span&gt; &lt;span class="m"&gt;1.041e-16&lt;/span&gt; &lt;span class="m"&gt;-1.000e-01&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Coefficients&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Estimate&lt;/span&gt; &lt;span class="n"&gt;Std.&lt;/span&gt; &lt;span class="n"&gt;Error&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="nf"&gt;Pr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;|&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Intercept&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="m"&gt;5.00000&lt;/span&gt; &lt;span class="m"&gt;0.07071&lt;/span&gt; &lt;span class="m"&gt;70.71&lt;/span&gt; &lt;span class="m"&gt;2.4e-07&lt;/span&gt; &lt;span class="o"&gt;***&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;---&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Signif.&lt;/span&gt; &lt;span class="n"&gt;codes&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;***&amp;#39;&lt;/span&gt; &lt;span class="m"&gt;0.001&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;**&amp;#39;&lt;/span&gt; &lt;span class="m"&gt;0.01&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;*&amp;#39;&lt;/span&gt; &lt;span class="m"&gt;0.05&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;.&amp;#39;&lt;/span&gt; &lt;span class="m"&gt;0.1&lt;/span&gt; &lt;span class="s"&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Residual&lt;/span&gt; &lt;span class="n"&gt;standard&lt;/span&gt; &lt;span class="n"&gt;error&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0.1581&lt;/span&gt; &lt;span class="n"&gt;on&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt; &lt;span class="n"&gt;degrees&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;freedom&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;Estimate&lt;/code&gt; 那一栏就是样本均值，t值和p值和单样本t检验的输出一模一样。&lt;/p&gt;</description></item><item><title>y=ax+b这么能打？ / Simple Linear Regression Universe</title><link>https://touchingfish.top/2023/linear-model-unified-perspective/</link><pubDate>Sat, 10 Jun 2023 00:00:00 +0000</pubDate><guid>https://touchingfish.top/2023/linear-model-unified-perspective/</guid><description>&lt;p&gt;学了这么多年统计，有一个问题我直到很晚才想明白。&lt;/p&gt;
&lt;p&gt;为什么基础统计课要教那么多互不相关的检验方法？t检验、ANOVA、Pearson相关、线性回归——它们各自有各自的公式、各自的适用条件、各自的查表方式。考试的时候，你得先判断&amp;quot;这道题该用哪种检验&amp;quot;，然后再套对应的公式。&lt;/p&gt;
&lt;p&gt;我当时就是这么学的。背了一堆检验，考完就忘，需要考试的时候又背一遍。&lt;/p&gt;
&lt;p&gt;直到某天我突然意识到：&lt;/p&gt;
&lt;p&gt;它们其实都是同一个公式的不同写法。&lt;/p&gt;
&lt;p&gt;更准确地说，它们都是线性回归模型 $Y = X\beta + \varepsilon$ 在 $X$ 取不同形式时的特例。&lt;/p&gt;
&lt;p&gt;这个发现让我整个人有点懵。倒不是因为数学有多难——恰恰相反，是因为数学太简单了。简单到你会怀疑：为什么当初没人告诉我？&lt;/p&gt;
&lt;p&gt;当然，老师不这样教是有原因的（可能是怕我们一时接受不了？也可能教材就是从各种检验分别讲起的，历史惯性使然）。但站在&amp;quot;事后诸葛亮&amp;quot;的视角，用回归统一一切，确实能让统计的版图变得异常清晰。&lt;/p&gt;
&lt;h2 id="回归是最通用的语言"&gt;回归是最通用的语言&lt;/h2&gt;
&lt;p&gt;考虑最简单的线性回归：&lt;/p&gt;
$$
Y = \beta_0 + \beta_1 X + \varepsilon
$$&lt;p&gt;这里 $\beta_0$ 是截距，$\beta_1$ 是斜率，$\varepsilon$ 是误差项。你关心的问题是：$X$ 对 $Y$ 有没有影响？统计上就是检验 $H_0: \beta_1 = 0$。&lt;/p&gt;
&lt;p&gt;现在，如果我告诉你 $X$ 可以是什么，你就知道为什么回归能统一一切了：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果 $X$ 只有 $0$ 和 $1$ 两个取值（比如：$0$ = 对照组，$1$ = 实验组），这个回归就是&lt;strong&gt;成组t检验&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;如果根本没有 $X$，只保留截距 $\beta_0$，这个回归就是&lt;strong&gt;单样本t检验&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;如果把 $X$ 扩展为多个 $0/1$ 虚拟变量（表示多组分类），就变成了&lt;strong&gt;单因素ANOVA&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;如果 $X$ 是连续的，并且先把 $X$ 和 $Y$ 都标准化，回归系数 $\beta_1$ 恰好等于&lt;strong&gt;Pearson相关系数 $r$&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;如果加入个体固定效应（每个受试者一个截距），就变成了&lt;strong&gt;配对t检验&lt;/strong&gt;的等价形式。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这就有意思了。五个看起来八竿子打不着的检验方法，在回归的框架下全是一个东西。&lt;/p&gt;</description></item></channel></rss>