<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>统计学 - 标签 - 灿若星河 | 郝建锋</title><link>https://philohao.com/tags/%E7%BB%9F%E8%AE%A1%E5%AD%A6/</link><description>统计学 - 标签 - 灿若星河 | 郝建锋</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><managingEditor>haojianfeng1997@gmail.com (Jianfeng.Hao)</managingEditor><webMaster>haojianfeng1997@gmail.com (Jianfeng.Hao)</webMaster><lastBuildDate>Tue, 30 Oct 2018 16:20:03 +0800</lastBuildDate><atom:link href="https://philohao.com/tags/%E7%BB%9F%E8%AE%A1%E5%AD%A6/index.xml" rel="self" type="application/rss+xml"/><item><title>stargazer：R 语言输出统计表</title><link>https://philohao.com/2018/10/20181030/</link><pubDate>Tue, 30 Oct 2018 16:20:03 +0800</pubDate><dc:creator>Jianfeng.Hao</dc:creator><author>haojianfeng1997@gmail.com (Jianfeng.Hao)</author><guid isPermaLink="true">https://philohao.com/2018/10/20181030/</guid><description>stargazer 包使用笔记，记录 R 模型结果和统计表的输出方法。</description><content:encoded><![CDATA[<center>
    <i>
    	使用 stargazer 可以将 R 构建的模型结果以 LATEX 、 HTML 和 ASCII 格式输出，方便我们生成标准格式的表格<br />
    	结合 rmarkdown 来进行使用，会使我们优雅地写出一篇拥有期刊级统计表的文章
    </i>
</center>
<h2 id="简介">简介</h2>
<p>R 包 <code>stargazer</code> 可以将 <strong>数据统计汇总</strong> （格式可以为数据框、向量和矩阵等）和 <strong>统计模型结果</strong> 输出为标准统计表格式的 <code>LATEX</code> 、<code>HTML</code> 和 <code>ASCII</code> 格式的字符文本，<em><strong>将其复制到对应的软件中</strong></em> 即可生成标准的统计表，当然也可以配合 <code>rmarkdown</code> 使用直接渲染输出为表格，更加方便直接。</p>
<h2 id="安装及加载">安装及加载</h2>
<p>可以使用常规方法导入 <code>stargazer</code> 包：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-R" data-lang="R"><span class="line"><span class="cl"><span class="nf">install.packages</span><span class="p">(</span><span class="s">&#34;stargazer&#34;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="nf">library</span><span class="p">(</span><span class="n">stargazer</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><div class="note info"><p>
stargazer 包的输出结果是相应格式的，例如输出 LATEX 格式，可以直接将结果粘贴进在线编辑器 [Overleaf](https://www.overleaf.com) 中输出表格。下文直接将结果以对应表格的形式展示。
</p></div>
<hr>
<h2 id="数据统计汇总">数据统计汇总</h2>
<h3 id="统计汇总数据">统计汇总数据</h3>
<p>如果要展示数据集的基本描述性分析数据（由 R 函数 <code>summary</code> 得到），可以使用以下命令直接得到：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-R" data-lang="R"><span class="line"><span class="cl"><span class="nf">stargazer</span><span class="p">(</span><span class="n">attitude</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p><img
        class="lazyload"
        data-src="https://static.datartisan.com/upload/attachment/2016/12/qCOW9qcQ.png"
        data-srcset="https://static.datartisan.com/upload/attachment/2016/12/qCOW9qcQ.png, https://static.datartisan.com/upload/attachment/2016/12/qCOW9qcQ.png 1.5x, https://static.datartisan.com/upload/attachment/2016/12/qCOW9qcQ.png 2x"
        data-sizes="auto"
        alt="https://static.datartisan.com/upload/attachment/2016/12/qCOW9qcQ.png"
        title="统计汇总数据"
    /></p>
<h3 id="原始数据展示">原始数据展示</h3>
<p>如果想输出某些数据框的特定行的原始内容，需要指定要查看的数据框的一部分，并将设置参数 <code>summary = FALSE</code>, 如下所示：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-R" data-lang="R"><span class="line"><span class="cl"><span class="nf">data</span><span class="p">(</span><span class="s">&#34;attitude&#34;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="nf">stargazer</span><span class="p">(</span><span class="n">attitude[1</span><span class="o">:</span><span class="m">4</span><span class="p">,</span><span class="n">]</span><span class="p">,</span> <span class="n">summary</span> <span class="o">=</span> <span class="kc">FALSE</span><span class="p">,</span> <span class="n">rownames</span> <span class="o">=</span> <span class="kc">TRUE</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p><img
        class="lazyload"
        data-src="https://static.datartisan.com/upload/attachment/2016/12/O5nnDnBH.png"
        data-srcset="https://static.datartisan.com/upload/attachment/2016/12/O5nnDnBH.png, https://static.datartisan.com/upload/attachment/2016/12/O5nnDnBH.png 1.5x, https://static.datartisan.com/upload/attachment/2016/12/O5nnDnBH.png 2x"
        data-sizes="auto"
        alt="https://static.datartisan.com/upload/attachment/2016/12/O5nnDnBH.png"
        title="展示数据集"
    /></p>
<p>可以看到，<code>attitude</code> 数据集中包括 <code>rating</code>、<code>complaints</code> 等多个变量，数据展示形式为 <strong>三线表</strong> 。</p>
<h3 id="列联表">列联表</h3>
<p><code>stargazer </code> 也可以用来展示向量、矩阵或者数据框的内容。在这里我们建立了 <code>attitude</code> 数据集中变量 <code>rating</code>、<code>complaints</code>、<code>privileges</code> 的相关系数矩阵，并予以展示：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-R" data-lang="R"><span class="line"><span class="cl"><span class="n">correlation.matrix</span> <span class="o">&lt;-</span> <span class="nf">cor</span><span class="p">(</span><span class="n">attitude[</span><span class="p">,</span><span class="nf">c</span><span class="p">(</span><span class="s">&#34;rating&#34;</span><span class="p">,</span> <span class="s">&#34;complaints&#34;</span><span class="p">,</span> <span class="s">&#34;privileges&#34;</span><span class="p">)</span><span class="n">]</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="nf">stargazer</span><span class="p">(</span><span class="n">correlation.matrix</span><span class="p">,</span> <span class="n">title</span> <span class="o">=</span> <span class="s">&#34;Correlation Matrix&#34;</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p><img
        class="lazyload"
        data-src="https://static.datartisan.com/upload/attachment/2016/12/cC2cR66K.png"
        data-srcset="https://static.datartisan.com/upload/attachment/2016/12/cC2cR66K.png, https://static.datartisan.com/upload/attachment/2016/12/cC2cR66K.png 1.5x, https://static.datartisan.com/upload/attachment/2016/12/cC2cR66K.png 2x"
        data-sizes="auto"
        alt="https://static.datartisan.com/upload/attachment/2016/12/cC2cR66K.png"
        title="矩阵展示"
    /></p>
<hr>
<h2 id="统计模型结果">统计模型结果</h2>
<h3 id="回归表">回归表</h3>
<p>在 R 中可以很方便的使用 <code>lm()</code> 和 <code>glm()</code> 函数来构建回归模型，我们同样可以在同一张表中对这些模型进行比较，参数 <code>title</code> 用来设定表的标题，参数 <code>align</code> 使每列中的系数沿小数点对齐：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-R" data-lang="R"><span class="line"><span class="cl"><span class="c1">## 构建两个线性回归模型</span>
</span></span><span class="line"><span class="cl"><span class="n">linear.1</span> <span class="o">&lt;-</span> <span class="nf">lm</span><span class="p">(</span><span class="n">rating</span> <span class="o">~</span> <span class="n">complaints</span> <span class="o">+</span> <span class="n">privileges</span> <span class="o">+</span> <span class="n">learning</span> <span class="o">+</span> <span class="n">raises</span> <span class="o">+</span> <span class="n">critical</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"><span class="n">data</span> <span class="o">=</span> <span class="n">attitude</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">linear.2</span> <span class="o">&lt;-</span> <span class="nf">lm</span><span class="p">(</span><span class="n">rating</span> <span class="o">~</span> <span class="n">complaints</span> <span class="o">+</span> <span class="n">privileges</span> <span class="o">+</span> <span class="n">learning</span><span class="p">,</span> <span class="n">data</span> <span class="o">=</span> <span class="n">attitude</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="c1">## 构建一个 probit 模型</span>
</span></span><span class="line"><span class="cl"><span class="n">attitude</span><span class="o">$</span><span class="n">high.rating</span> <span class="o">&lt;-</span> <span class="p">(</span><span class="n">attitude</span><span class="o">$</span><span class="n">rating</span> <span class="o">&gt;</span> <span class="m">70</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">probit.model</span> <span class="o">&lt;-</span> <span class="nf">glm</span><span class="p">(</span><span class="n">high.rating</span> <span class="o">~</span> <span class="n">learning</span> <span class="o">+</span> <span class="n">critical</span> <span class="o">+</span> <span class="n">advance</span><span class="p">,</span> <span class="n">data</span> <span class="o">=</span> <span class="n">attitude</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"><span class="n">family</span> <span class="o">=</span> <span class="nf">binomial</span><span class="p">(</span><span class="n">link</span> <span class="o">=</span> <span class="s">&#34;probit&#34;</span><span class="p">))</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nf">stargazer</span><span class="p">(</span><span class="n">linear.1</span><span class="p">,</span> <span class="n">linear.2</span><span class="p">,</span> <span class="n">probit.model</span><span class="p">,</span> <span class="n">title</span> <span class="o">=</span> <span class="s">&#34;Results&#34;</span><span class="p">,</span> <span class="n">align</span> <span class="o">=</span> <span class="kc">TRUE</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p><img
        class="lazyload"
        data-src="https://static.datartisan.com/upload/attachment/2016/12/Cyqs7adZ.png"
        data-srcset="https://static.datartisan.com/upload/attachment/2016/12/Cyqs7adZ.png, https://static.datartisan.com/upload/attachment/2016/12/Cyqs7adZ.png 1.5x, https://static.datartisan.com/upload/attachment/2016/12/Cyqs7adZ.png 2x"
        data-sizes="auto"
        alt="https://static.datartisan.com/upload/attachment/2016/12/Cyqs7adZ.png"
        title="回归表"
    /></p>
<h4 id="回归表的修饰">回归表的修饰</h4>
<p>为了使表格更加标准，我们还可以通过调整参数进行以下操作：</p>
<ul>
<li>删除表中的空白行：<code>no.space</code></li>
<li>移除不关心的统计量：<code>omit.stat</code></li>
<li>修改因变量和自变量的名称：<code>dep.var.labels</code> 、 <code>covariate.labels</code></li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-R" data-lang="R"><span class="line"><span class="cl"><span class="nf">stargazer</span><span class="p">(</span><span class="n">linear.1</span><span class="p">,</span> <span class="n">linear.2</span><span class="p">,</span> <span class="n">probit.model</span><span class="p">,</span> <span class="n">title</span> <span class="o">=</span> <span class="s">&#34;Regression Results&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"><span class="n">align</span> <span class="o">=</span> <span class="kc">TRUE</span><span class="p">,</span> <span class="n">dep.var.labels</span> <span class="o">=</span> <span class="nf">c</span><span class="p">(</span><span class="s">&#34;Overall Rating&#34;</span><span class="p">,</span><span class="s">&#34;High Rating&#34;</span><span class="p">),</span>
</span></span><span class="line"><span class="cl"><span class="n">covariate.labels</span> <span class="o">=</span> <span class="nf">c</span><span class="p">(</span><span class="s">&#34;Handling of Complaints&#34;</span><span class="p">,</span> <span class="s">&#34;No Special Privileges&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"><span class="s">&#34;Opportunity to Learn&#34;</span><span class="p">,</span> <span class="s">&#34;Performance-Based Raises&#34;</span><span class="p">,</span> <span class="s">&#34;Too Critical&#34;</span><span class="p">,</span><span class="s">&#34;Advancement&#34;</span><span class="p">),</span>
</span></span><span class="line"><span class="cl"><span class="n">omit.stat</span> <span class="o">=</span> <span class="nf">c</span><span class="p">(</span><span class="s">&#34;LL&#34;</span><span class="p">,</span> <span class="s">&#34;ser&#34;</span><span class="p">,</span> <span class="s">&#34;f&#34;</span><span class="p">),</span> <span class="n">no.space</span> <span class="o">=</span> <span class="kc">TRUE</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p><img
        class="lazyload"
        data-src="https://static.datartisan.com/upload/attachment/2016/12/xHMLhXyR.png"
        data-srcset="https://static.datartisan.com/upload/attachment/2016/12/xHMLhXyR.png, https://static.datartisan.com/upload/attachment/2016/12/xHMLhXyR.png 1.5x, https://static.datartisan.com/upload/attachment/2016/12/xHMLhXyR.png 2x"
        data-sizes="auto"
        alt="https://static.datartisan.com/upload/attachment/2016/12/xHMLhXyR.png"
        title="回归表的修饰"
    /></p>
<p>本例中对原表格做了以下修改：</p>
<blockquote>
<ol>
<li>
<p>使用 <code>dep.var.labels</code> 和 <code>covariate.lables</code> 参数分别将因变量和自变量重命名为容易理解的形式；</p>
</li>
<li>
<p>使用 <code>omit.stat</code> 参数移除对数似然比（<code>&quot;LL&quot;</code>）、标准化残差（<code>&quot;ser&quot;</code>）和 F 统计量（<code>&quot;f&quot;</code>）；</p>
</li>
<li>
<p>使用<code>no.space</code>参数将输出表格中的空行删去。</p>
</li>
</ol>
</blockquote>
<h4 id="展示置信区间">展示置信区间</h4>
<ul>
<li>设置是否展示置信区间：<code>ci</code></li>
<li>设置置信区间的置信度：<code>ci.level</code></li>
<li>使回归系数与置信区间并排展示：<code>single.row</code></li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-R" data-lang="R"><span class="line"><span class="cl"><span class="nf">stargazer</span><span class="p">(</span><span class="n">linear.1</span><span class="p">,</span> <span class="n">linear.2</span><span class="p">,</span> <span class="n">title</span> <span class="o">=</span> <span class="s">&#34;Regression Results&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"><span class="n">dep.var.labels</span> <span class="o">=</span> <span class="nf">c</span><span class="p">(</span><span class="s">&#34;Overall Rating&#34;</span><span class="p">,</span> <span class="s">&#34;High Rating&#34;</span><span class="p">),</span>
</span></span><span class="line"><span class="cl"><span class="n">covariate.labels</span> <span class="o">=</span> <span class="nf">c</span><span class="p">(</span><span class="s">&#34;Handling of Complaints&#34;</span><span class="p">,</span> <span class="s">&#34;No Special Privileges&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"><span class="s">&#34;Opportunity to Learn&#34;</span><span class="p">,</span> <span class="s">&#34;Performance-Based Raises&#34;</span><span class="p">,</span> <span class="s">&#34;Too Critical&#34;</span><span class="p">,</span> <span class="s">&#34;Advancement&#34;</span><span class="p">),</span>
</span></span><span class="line"><span class="cl"><span class="n">omit.stat</span> <span class="o">=</span> <span class="nf">c</span><span class="p">(</span><span class="s">&#34;LL&#34;</span><span class="p">,</span><span class="s">&#34;ser&#34;</span><span class="p">,</span><span class="s">&#34;f&#34;</span><span class="p">),</span> <span class="n">ci</span> <span class="o">=</span> <span class="kc">TRUE</span><span class="p">,</span> <span class="n">ci.level</span> <span class="o">=</span> <span class="m">0.90</span><span class="p">,</span> <span class="n">single.row</span> <span class="o">=</span> <span class="kc">TRUE</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p><img
        class="lazyload"
        data-src="https://static.datartisan.com/upload/attachment/2016/12/rUe11IM4.png"
        data-srcset="https://static.datartisan.com/upload/attachment/2016/12/rUe11IM4.png, https://static.datartisan.com/upload/attachment/2016/12/rUe11IM4.png 1.5x, https://static.datartisan.com/upload/attachment/2016/12/rUe11IM4.png 2x"
        data-sizes="auto"
        alt="https://static.datartisan.com/upload/attachment/2016/12/rUe11IM4.png"
        title="展示置信区间"
    /></p>
<h4 id="其他修饰功能">其他修饰功能</h4>
<blockquote>
<p>控制自变量展示的顺序：<code>order</code>
控制要展示的统计量：<code>keep.stat</code> , <code>keep.stat = &quot;n&quot;</code> 即只展示样本量的大小，并移除其他统计量</p>
</blockquote>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-R" data-lang="R"><span class="line"><span class="cl"><span class="nf">stargazer</span><span class="p">(</span><span class="n">linear.1</span><span class="p">,</span> <span class="n">linear.2</span><span class="p">,</span> <span class="n">title</span> <span class="o">=</span> <span class="s">&#34;Regression Results&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"><span class="n">dep.var.labels</span> <span class="o">=</span> <span class="nf">c</span><span class="p">(</span><span class="s">&#34;Overall Rating&#34;</span><span class="p">,</span> <span class="s">&#34;High Rating&#34;</span><span class="p">),</span>
</span></span><span class="line"><span class="cl"><span class="n">order</span> <span class="o">=</span> <span class="nf">c</span><span class="p">(</span><span class="s">&#34;learning&#34;</span><span class="p">,</span> <span class="s">&#34;privileges&#34;</span><span class="p">),</span>
</span></span><span class="line"><span class="cl"><span class="n">keep.stat</span> <span class="o">=</span> <span class="s">&#34;n&#34;</span><span class="p">,</span> <span class="n">ci</span> <span class="o">=</span> <span class="kc">TRUE</span><span class="p">,</span> <span class="n">ci.level</span> <span class="o">=</span> <span class="m">0.90</span><span class="p">,</span> <span class="n">single.row</span> <span class="o">=</span> <span class="kc">TRUE</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p><img
        class="lazyload"
        data-src="https://static.datartisan.com/upload/attachment/2016/12/u0K7suc0.png"
        data-srcset="https://static.datartisan.com/upload/attachment/2016/12/u0K7suc0.png, https://static.datartisan.com/upload/attachment/2016/12/u0K7suc0.png 1.5x, https://static.datartisan.com/upload/attachment/2016/12/u0K7suc0.png 2x"
        data-sizes="auto"
        alt="https://static.datartisan.com/upload/attachment/2016/12/u0K7suc0.png"
        title="其他修饰功能"
    /></p>
<h4 id="控制输出格式">控制输出格式</h4>
<p>可以使用 <code>type</code> 参数控制以 <code>ASCII</code> 、<code>text</code>、<code>html</code>、<code>latex</code> 格式输出，默认为<code>LATEX</code> 格式。</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-R" data-lang="R"><span class="line"><span class="cl"><span class="nf">stargazer</span><span class="p">(</span><span class="n">linear.1</span><span class="p">,</span> <span class="n">linear.2</span><span class="p">,</span> <span class="n">type</span> <span class="o">=</span> <span class="s">&#34;text&#34;</span><span class="p">,</span> <span class="n">title</span> <span class="o">=</span> <span class="s">&#34;Regression Results&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl"><span class="n">dep.var.labels</span> <span class="o">=</span> <span class="nf">c</span><span class="p">(</span><span class="s">&#34;Overall Rating&#34;</span><span class="p">,</span> <span class="s">&#34;High Rating&#34;</span><span class="p">),</span>
</span></span><span class="line"><span class="cl"><span class="n">order</span> <span class="o">=</span> <span class="nf">c</span><span class="p">(</span><span class="s">&#34;learning&#34;</span><span class="p">,</span> <span class="s">&#34;privileges&#34;</span><span class="p">),</span> 
</span></span><span class="line"><span class="cl"><span class="n">keep.stat</span> <span class="o">=</span> <span class="s">&#34;n&#34;</span><span class="p">,</span> <span class="n">ci</span> <span class="o">=</span> <span class="kc">TRUE</span><span class="p">,</span> <span class="n">ci.level</span> <span class="o">=</span> <span class="m">0.90</span><span class="p">,</span> <span class="n">single.row</span> <span class="o">=</span> <span class="kc">TRUE</span><span class="p">,</span> <span class="n">header</span> <span class="o">=</span> <span class="bp">F</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p><img
        class="lazyload"
        data-src="https://static.datartisan.com/upload/attachment/2016/12/gOA9wyCN.png"
        data-srcset="https://static.datartisan.com/upload/attachment/2016/12/gOA9wyCN.png, https://static.datartisan.com/upload/attachment/2016/12/gOA9wyCN.png 1.5x, https://static.datartisan.com/upload/attachment/2016/12/gOA9wyCN.png 2x"
        data-sizes="auto"
        alt="https://static.datartisan.com/upload/attachment/2016/12/gOA9wyCN.png"
        title="控制输出格式"
    /></p>
<h4 id="自定义统计量">自定义统计量</h4>
<p>我们使用 <code>sandwich</code> 包来计算异方差-稳健标准误，并将其与默认计算的标准差一同展示。</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-R" data-lang="R"><span class="line"><span class="cl"><span class="nf">library</span><span class="p">(</span><span class="n">sandwich</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">cov</span> <span class="o">&lt;-</span> <span class="nf">vcovHC</span><span class="p">(</span><span class="n">linear.1</span><span class="p">,</span> <span class="n">type</span> <span class="o">=</span> <span class="s">&#34;HC&#34;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">robust.se</span> <span class="o">&lt;-</span> <span class="nf">sqrt</span><span class="p">(</span><span class="nf">diag</span><span class="p">(</span><span class="n">cov</span><span class="p">))</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nf">stargazer</span><span class="p">(</span><span class="n">linear.1</span><span class="p">,</span> <span class="n">linear.1</span><span class="p">,</span> <span class="n">se</span> <span class="o">=</span> <span class="nf">list</span><span class="p">(</span><span class="kc">NULL</span><span class="p">,</span> <span class="n">robust.se</span><span class="p">),</span>
</span></span><span class="line"><span class="cl"><span class="n">column.labels</span> <span class="o">=</span> <span class="nf">c</span><span class="p">(</span><span class="s">&#34;default&#34;</span><span class="p">,</span> <span class="s">&#34;robust&#34;</span><span class="p">))</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p><img
        class="lazyload"
        data-src="https://static.datartisan.com/upload/attachment/2016/12/PC8L8NoB.png"
        data-srcset="https://static.datartisan.com/upload/attachment/2016/12/PC8L8NoB.png, https://static.datartisan.com/upload/attachment/2016/12/PC8L8NoB.png 1.5x, https://static.datartisan.com/upload/attachment/2016/12/PC8L8NoB.png 2x"
        data-sizes="auto"
        alt="https://static.datartisan.com/upload/attachment/2016/12/PC8L8NoB.png"
        title="自定义统计量"
    /></p>
<h3 id="支持的模型">支持的模型</h3>
<p>目前 <code>stargazer</code> 支持以下模型结果的展示：</p>
<blockquote>
<p>aftreg (eha), arima (stats), betareg (betareg), binaryChoice (sampleSelection), bj (rms), brglm (brglm), censReg (censReg), coeftest (lmtest), coxph (survival), coxreg (eha), clm (ordinal), clogit (survival), cph (rms), dynlm (dynlm), ergm(ergm), errorsarlm (spdev), felm (lfe), gam (mgcv), garchFit (fGarch), gee (gee), glm (stats), Glm (rms), glmer (lme4), glmrob(robustbase), gls (nlme), Gls (rms), gmm (gmm), heckit (sampleSelection), hetglm (glmx), hurdle (pscl), ivreg (AER), lagarlm (spdep), lm(stats), lme (nlme), lmer (lme4), lmrob (robustbase), lrm (rms), maBina (erer), mclogit (mclogit), mlogit (mlogit), mnlogit (mnlogit), mlreg (eha), multinom (nnet), nlme (nlme), nlmer (lme4), ols (rms), pgmm(plm), phreg (eha), plm (plm), pmg (plm), polr (MASS), psm (rms), rem.dyad (relevent), rlm(MASS), rq (quantreg), Rq (rms), selection (sampleSelection), svyglm (survey), survreg (survival), tobit (AER), weibreg (eha), zeroinfl (pscl), as well as from the implementation of these in zelig. In addition, stargazer also supports the following zelig models: “relogit”, “cloglog.net”, “gamma.net”, “probit.net” and “logit.net”.</p>
</blockquote>
<h3 id="支持的模板">支持的模板</h3>
<p><code>style</code> 参数可以用来选择统计表的展现形式，你可以通过  <code>?stargazer</code> 查看具体参数的设置来获取具体支持的格式，目前支持的期刊统计图格式有 <code>American Economic Review</code>、 <code>Quarterly Journal of Economics</code>  等。</p>
<h2 id="结合-rmarkdown-使用">结合 rmarkdown 使用</h2>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="n">```{r, results=&#39;asis&#39;}
</span></span></span><span class="line"><span class="cl"><span class="n">stargazer(model, header = F)
</span></span></span><span class="line"><span class="cl"><span class="n">```</span>
</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p><strong>注意事项：</strong></p>
<ul>
<li>要加上 <code>results='asis'</code> 保证输出的是表格，而不是 LATEX 文本；</li>
<li>参数 <code>align</code> 失效，不能使用；</li>
<li>加上参数 <code>header=FALSE</code>，避免输出关于包作者的一些文本信息。</li>
</ul>
</blockquote>
<h2 id="致谢">致谢</h2>
<blockquote>
<h3 id="参考文章">参考文章</h3>
<ul>
<li><a href="https://cran.r-project.org/web/packages/stargazer/vignettes/stargazer.pdf" target="_blank" rel="noopener noreffer">stargazer.pdf</a></li>
<li>Hlavac, Marek (2018). stargazer: Well-Formatted Regression and Summary Statistics
Tables. R package version 5.2.2. <a href="https://CRAN.R-project.org/package=stargazer" target="_blank" rel="noopener noreffer">https://CRAN.R-project.org/package=stargazer</a></li>
</ul>
</blockquote>]]></content:encoded></item><item><title>回归分析系列2-简单线性回归</title><link>https://philohao.com/2018/03/20180311/</link><pubDate>Sun, 11 Mar 2018 10:00:00 +0800</pubDate><dc:creator>Jianfeng.Hao</dc:creator><author>haojianfeng1997@gmail.com (Jianfeng.Hao)</author><guid isPermaLink="true">https://philohao.com/2018/03/20180311/</guid><description>回归分析系列笔记，介绍简单线性回归的基本思想、模型形式和拟合逻辑。</description><content:encoded><![CDATA[<center><i>
    与大多数统计方法一样，回归也是一种简化数据的技术。<br>回归分析利用变量间的简单函数关系，用自变量对困变量进行"预测"，使"预测值"尽可能地接近因变量的"观测值" 。
</i></center>
<h2 id="本节综述">本节综述</h2>
<p>简单线性回归属于回归分析中最基础的一部分内容，仅仅涉及到两个变量之间的线性关系，但其作为学习多元回归乃至其他更复杂统计方法的基础，所以本节将先从理解&quot;回归&quot;这一概念人手，并讨论只有一个因变量和一个自变量的简单线性回归模型。</p>
<h2 id="理解回归">理解回归</h2>
<p>如何根据回归模型的构成形式理解回归模型的现实意义呢？在此，我们提出理解回归的三种视角：</p>
<div class="note info"><p>
    1. 因果性：观测项 = 机制项 + 干扰项<br>
    2. 预测性：观测项 = 预测项 + 误差项<br>
    3. 描述性：观测项 = 概括项 + 残差项
</p></div>
<p>这三种理解方式提供了定量分析的三种不同视角：</p>
<ul>
<li>第一种方式接近于 <strong>古典计量经济学</strong> 的视角，这种方法试图找出具有决定性的模型并以此发现数据产生的机制。但当前更多的方法论研究者认为，所谓的&quot;真实&quot;模型并不存在，好的模型只是相对于其他模型而言更实用、更有意义或者更接近真实。</li>
<li>第二种方式适用于 <strong>工程学</strong> 领域，它通常用于在已知一组自变量和因变量之间的关系后，应用新的数据给出有用的预测回答。这一理解方法的特点是我们只是通过经验规律来做预测，而对因果关系的机制不感兴趣或不在乎。</li>
<li>第三种方式反映了当今 <strong>定量社会科学和统计学</strong> 的主流观点。它希望在不曲解数据的情况下利用模型概括数据的基本特征。这种方法与第一种方法的不同之处在于它并不关注模型是否&quot;真实&quot;，而只关注其是否符合已被观察到的事实。</li>
</ul>
<div class="note primary"><p>
   在社会科学研究中，我们倾向于采用第三种视角，即统计模型的主要目标在于用最简单的结构和尽可能少的参数来概括大量数据所包含的主要信息。研究者需在精确性和简洁性之间进行权衡，从而找出最佳模型。
</p></div>
<h2 id="回归分析的步骤">回归分析的步骤</h2>
<blockquote>
<ol>
<li>问题的表述</li>
<li>变量的选择 - 专家论文、前人研究</li>
<li>数据的收集</li>
<li>模型设定 - 散点图、表达形式、基本假定</li>
<li>参数估计/模型拟合 - （加权）最小二乘法、极大似然法、岭估计法、主成分估计法</li>
<li>模型检验 - 假设检验、回归诊断</li>
<li>模型评价 - 拟合优度、交叉验证</li>
<li>解释预测</li>
</ol>
</blockquote>
<hr>
<h2 id="简单线性回归模型">简单线性回归模型</h2>
<h3 id="模型设定1--表达形式">模型设定1&ndash;表达形式</h3>
<p>开门见山，写出数学表达式：
$$
y_i=\beta_0 + \beta_1 x_i + \epsilon_i
$$</p>
<div class="note info"><p>
   这里：<br>
   Y 是一个随机变量；<br>
   X 虽被称作变量，但它的各个取值其实是已知的，只是其取值在不同的个体之间变动；<br>
   ε 是随机误差项，假定其为服从均值为 0、方差为 σ² 的正态分布的随机变量。
</p></div>
<p>对应指定的 $x_i$ 值，在一定的条件下，对公式求条件期望后得到 <strong>总体回归方程</strong>：
$$
E(Y|X=x_i) = \mu_i = \beta_0 + \beta_1x_i
$$
它表示，对于每一个特定的取值 $x_i$，观测值 y 实际上都来自一个均值为 μ、方差为 σ² 的正态分布，回归直线将穿过点 $(x_i,\mu_i)$，$\beta_0$ 就是回归直线在 y 轴上的截距，而 $\beta_1$ 则是回归直线的斜率。如下图所示：</p>
<p>![3_1 回归直线.PNG](<a href="https://blog-1255524710.cos.ap-beijing.myqcloud.com/images/3_1" target="_blank" rel="noopener noreffer">https://blog-1255524710.cos.ap-beijing.myqcloud.com/images/3_1</a> 回归直线.PNG)</p>
<p>无论回归模型还是回归方程，都是针对总体而言，是对总体恃征的总结和描述。所以，参数 $\beta_0$ 和 $\beta_1$ 也是总体的特征。当利用样本统计量 $b_0$ 和 $b_1$ 代替总体回归方程中的 $\beta_0$ 和 $\beta_1$ 时，就得到了 <strong>估计的回归方程或经验回归方程</strong>，其形式为：
$$
\hat{y} = b_0 + b_1x_i
$$
同时，我们也可以得到观测值与估计值之差，称为残差，记作 $e_i$，它对应的是公式中的总体随机误差项 $\epsilon_i$，观测值、估计值和残差这三者之间的关系可用下图加以说明。</p>
<p>![3_2 经验回归直线.PNG](<a href="https://blog-1255524710.cos.ap-beijing.myqcloud.com/images/3_2" target="_blank" rel="noopener noreffer">https://blog-1255524710.cos.ap-beijing.myqcloud.com/images/3_2</a> 经验回归直线.PNG)</p>
<br>
<hr>
<h3 id="模型设定2--基本假定诸多错误日后修正">模型设定2&ndash;基本假定[诸多错误，日后修正]</h3>
<p>可以看到在第一步的模型设定中我们首先做出了线性假定方可建立线性回归模型，同时假定 ε 的分布以便于确定 $y_i$ 的分布，接下来着重阐释简单线性回归模型中的诸多假定及这些假定存在的必要性。</p>
<h4 id="线性假定">线性假定</h4>
<p>该假定规定 Y 的条件均值是自变量 X 的线性函数：
$$
E(Y|X=x_i)=\mu_i = \beta_0 + \beta_1 x_i
$$</p>
<div class="note primary"><p>
   这里“线性”有双重含义，一方面可解释为变量 Y 和 X 之间是线性的，另一方面也可解释为回归函数关于参数是线性的。在某些情况下，我们可能会碰到非线性函数的情形。借助于数学上的恒等变换，我们有时可以将非线性函数转换成线性函数的形式。
</p></div>
<p>例如，对于 $y_i = \alpha x_i^\gamma \sigma_i$，通过变换可以得到:
$$
\ln y_i = \beta_0 + \beta_1 \ln x_i + \epsilon_i
$$
其中， $\beta_0=\ln \alpha ,\beta_1=\gamma ,\epsilon_i=\ln\sigma_i$。经过转换后的方程便可以运用最小二乘法，并使得估计值仍然保持最小二乘法估计值的性质。</p>
<h4 id="正交假定">正交假定</h4>
<p>正交假定包括：</p>
<blockquote>
<ol>
<li>误差项 ε 和 x 不相关，即 $Cov(X,\epsilon)=0$ ;</li>
<li>误差项 ε 的期望值为0，即 $E(\epsilon)=0$ ;
推导： 由正交假定可得 $Cov(\hat{y},\epsilon)=0$ 。</li>
</ol>
</blockquote>
<p>在线性假定和正交假定下，可以将简单线性回归方程中 y 的条件期望定义为:
$$
E(Y|x)=\beta_0 + \beta_1 x
$$
正交假定是一个关键的识别假定，它帮助我们从条件期望 E(Y|x) 中剥离出误差项。在这假定下，<strong>利用最小二乘估计得到的 β0 和 βl 的估计值 b0 和 b1 是无偏的</strong>[详见下方-各随机变量的分布]，即：
$$
\begin{align*}
E(b_0)&amp;=\beta_0 \
&amp; \
E(b_1)&amp;=\beta_1
\end{align*}
$$
这一假定是最小二乘估计的计算的理论依据，所以 <strong>最小二乘估计的结果一定无例外地满足如下公式</strong>:
$$
\begin{cases}
&amp;\sum_{i=1}^{n}e_i=0 \
&amp; \
&amp;\sum_{i=1}^{n}x_ie_i=0
\end{cases}
\rightleftharpoons
\begin{cases}
&amp; \frac{\partial D}{\partial b_0} = -2\sum_{i=1}^{n}(y_i-b_0-b_1x_i) = 0 \
&amp; \
&amp; \frac{\partial D}{\partial b_1} = -2\sum_{i=1}^{n}x_i(y_i-b_0-b_1x_i) = 0
\end{cases}
$$</p>
<h4 id="独立同分布假定">独立同分布假定</h4>
<p>也称 i.i.d 假定，是指误差项 ε 相互独立，并且遵循同一分布，有：
$$
\begin{align*}
\sigma_\epsilon^2 &amp;= \sigma^2 \
&amp; \
Cov(\epsilon_i,\epsilon_j)&amp;=0,\left (i\neq j  \right )
\end{align*}
$$</p>
<div class="note info"><p>
   尽管在没有 i. i. d 假定的情况下，最小二乘估计已经可以满足无偏性和一致性，但是同时满足前三个假定时，最小二乘估计值将是总体参数的"最佳线性无偏估计值"，也就是通常所说的BLUE (best linear unbiased estimator)。这里，"最佳"表示"最有效"，即抽样标准误最小。
</p></div>
<h4 id="正态分布假定">正态分布假定</h4>
<p>尽管 i.i.d 假定规定误差项 ε 独立且同分布，但是它仍然无法确定 ε 的实际分布。不过，对于大样本数据，我们可以根据中心极限定理对 β 进行统计推断。然而在小样本情况下，我们只有在假定 ε 服从正态分布时才能使用 t检验
$$
\epsilon_i \sim N(0,\sigma^2)
$$
此时，最小二乘估计与总体参数的最大似然估计(MLE) 结果一致(Lehmann &amp; CaseUa, 1998),也就是说 b0 和 b1 不仅是 β0 和 β1 的最佳线性无偏估计，而且是所有的 β0 和 β1 (线性和非线性的)无偏估计中的最佳选择。</p>
<div class="note primary"><p>
   之所以这么说是因为在所有无偏估计中，最大似然估计是最佳无偏估计值。需要注意的是，由于最大似然估计可以是非线性的，因此最大似然解释的有效性将比最小二乘解释的有效性更广。进一步讲，最大似然估计的统计推断在大样本情况下具有渐近性质。也就是说，当样本规模趋于无穷大时，最大似然估计不仅满足一致性(渐近无偏)，而且能够取得一致估计量中的最小方差。
</p></div>
<br>
<hr>
<h3 id="参数估计--最小二乘估计">参数估计&ndash;最小二乘估计</h3>
<p>回顾一下，前文建立的线性回归模型如下：
$$
y_i = \beta_0 + \beta_1x_i + \epsilon_i = E(y_i|x_i) + \epsilon_i = \mu_i + \epsilon_i
$$
在样本数据下得到拟合回归模型如下：
$$
y_i = b_0 + b_1x_i + e_i = \hat{y_i} + e_i
$$
各关系如图所示：</p>
<p><img
        class="lazyload"
        data-src="https://blog-1255524710.cos.ap-beijing.myqcloud.com/cover/%e5%b0%81%e9%9d%a23.PNG"
        data-srcset="https://blog-1255524710.cos.ap-beijing.myqcloud.com/cover/%e5%b0%81%e9%9d%a23.PNG, https://blog-1255524710.cos.ap-beijing.myqcloud.com/cover/%e5%b0%81%e9%9d%a23.PNG 1.5x, https://blog-1255524710.cos.ap-beijing.myqcloud.com/cover/%e5%b0%81%e9%9d%a23.PNG 2x"
        data-sizes="auto"
        alt="https://blog-1255524710.cos.ap-beijing.myqcloud.com/cover/封面3.PNG"
        title="封面3.PNG"
    /></p>
<p>最小二乘估计的基本思路便是 <strong>找到一条与所有现有数据垂直距离平方和最小的直线</strong>，即确保观测值和预测值的残差平方和最小：
$$
D = \sum_{i=1}^{n}e_i^2 = \sum_{i=1}^{n}(y_i-\hat{y_i})^2 = \sum_{i=1}^{n}(y_i-b_0-b_1x_i)^2
$$</p>
<div class="note info"><p>
   注意是残差平方和而非误差平方和！！！<br>
   这是因为当使用总体数据时得到的与所有观测点垂直距离平方和最小的直线便是总体回归线；当使用样本数据时得到的与所有观测点垂直距离平方和最小的直线只能是估计回归线。所以误差与总体回归线相匹配，残差与估计回归线相匹配，在样本数据下，我们得到的只能是估计回归线，最小二乘法中的"最小"也只能是"残差平方和最小"。
</p></div>
<p>为使残差平方和达到最小值，有：
$$
\begin{cases}
&amp; \frac{\partial D}{\partial b_0} = -2\sum_{i=1}^{n}(y_i-b_0-b_1x_i) = 0 \
&amp; \
&amp; \frac{\partial D}{\partial b_1} = -2\sum_{i=1}^{n}x_i(y_i-b_0-b_1x_i) = 0
\end{cases}
$$
整理得正态方程组：
$$
\begin{cases}
&amp; nb_0 + b_1\sum_{i=1}^{n}x_i = \sum_{i=1}^{n}y_i \
&amp; \
&amp; b_0\sum_{i=1}^{n}x_i + b_1\sum_{i=1}^{n}x_i^2 = \sum_{i=1}^{n}x_iy_i
\end{cases}
$$
求解得：
$$
\begin{align*}
b_0 &amp;= \frac{\sum x_i^2 \sum y_i - \sum x_i \sum x_iy_i}{n \sum x_i^2 - (\sum x_i)^2} \
&amp; \
b_1 &amp;= \frac{n \sum x_iy_i - \sum x_i \sum y_i}{n \sum x_i^2 - (\sum x_i)^2} \
&amp; \
&amp;= \frac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sum (x_i - \bar{x})^2} \
\end{align*}
$$
在实际计算时，我们通常使用下列两个化简后的式子：
$$
\begin{align*}
b_1 &amp;= \frac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sum (x_i - \bar{x})^2} \
&amp; \
&amp;= \frac{\sum (x_i - \bar{x})(y_i - \bar{y})/(n-1)}{\sum (x_i - \bar{x})^2/(n-1)} \
&amp; \
&amp;= S_{xy}/S_x^2 \
&amp;\
&amp;= r\frac{S_y}{S_x} \
&amp; \
b_0 &amp;= \bar{y} - b_1\bar{x}
\end{align*}
$$</p>
<br>
<hr>
<h3 id="小结--各随机变量的分布">小结&ndash;各随机变量的分布</h3>
<p>在上面的运算中，我们接触到的随机变量有 $\epsilon$、$y_i$、$b_0$、$b_1$ 等，接下来我们对这些随机变量的分布做个总结。</p>
<h4 id="epsilon">$\epsilon$</h4>
<p>根据简单线性回归的假定前提可知：$\epsilon \sim N(0,\sigma^2)$</p>
<h4 id="y_i">$y_i$</h4>
<p>由关系式 $y_i=\beta_0+\beta_1x_i+\epsilon_i$ 及 $\epsilon$ 的分布推知：$y_i \sim N(\beta_0+\beta_1x_i,\sigma^2)$</p>
<h4 id="b_0--b_1">$b_0$ 、 $b_1$</h4>
<p>求解 $b_0$ 和 $b_1$ 的分布需要一些技巧，首先对 $b_0$ 和 $b_1$ 的表达式稍加变形：
$$
\begin{cases}
b_0&amp;=\frac{\sum x_i^2 \sum y_i - \sum x_i \sum x_iy_i}{n \sum x_i^2 - (\sum x_i)^2} \
&amp; \
&amp;=\sum \left [ \frac{1}{n}-\frac{(x_i-\bar{x})\bar{x}}{\sum (x_i-\bar{x})^2} \right ]y_i \
&amp; \
b_1&amp;=\frac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sum (x_i - \bar{x})^2} \
&amp; \
&amp;=\sum \frac{x_i-\bar{x}}{\sum (x_i-\bar{x})^2}y_i
\end{cases}
$$
可以看到，当 $x_i$ 确定，等式右端仅有 $y_i$ 为随机变量，并且现在 $y_i$ 的分布已知，$b_0$ 和 $b_1$ 的分布自然可以求出：</p>
<ul>
<li>期望
$$
\begin{align*}
E(b_1)&amp;= \sum \frac{x_i-\bar{x}}{\sum (x_i-\bar{x})^2} E(y_i) \
&amp; \
&amp;= \sum \frac{x_i-\bar{x}}{\sum (x_i-\bar{x})^2} (\beta_0+\beta_1x_i) \
&amp; \
&amp;= \sum \frac{x_i-\bar{x}}{\sum (x_i-\bar{x})^2} (\beta_0+\beta_1x_i) \leftarrow \beta_0=\bar{y}-\beta_1\bar{x} \bigstar  \
&amp; \
&amp;= \frac{\sum \left [ (x_i-\bar{x})\bar{y}+\beta_1 (x_i-\bar{x})^2 \right ]}{\sum (x_i-\bar{x})^2}
&amp; \
&amp;= \beta_1
\end{align*}
$$</li>
</ul>
<p>$\bigstar$：我们知道对样本数据有 $b_0=\bar{y}-b_1\bar{x}$，同时可推导出在总体数据中存在以下关系式：
$$
\begin{cases}
&amp;\beta_0 = y_i-\beta_1x_i-\epsilon_i \
&amp; \
&amp; \Rightarrow  E(\beta_0)=E(y_i-\beta_1x_i-\epsilon_i)  \
&amp; \
&amp;\Rightarrow  \beta_0=E(y)-\beta_1E(x_i)
\end{cases}
$$</p>
<div class="note info"><p>
   需要注意的是：<br>
   在第一个式子中，x 和 y 使用的是样本数据，得出的均值是样本均值；<br>
   在第二个式子中，x 和 y 使用的是总体数据，得出的期望是总体均值。<br>
   由于样本均值是总体均值的无偏估计，所以我们在推导 b1 的期望时使用的 β0 代换式是成立的。
</p></div>
<p>再次应用这个性质 ——— 无偏估计，可以很容易的得到 $b_0$ 的期望：
$$
\begin{align*}
E(b_0)&amp;=E(\bar{y}-b_1\bar{x}) \
&amp; \
&amp;= E(y)-\beta_1E(x) \
&amp; \
&amp;= \beta_0
\end{align*}
$$</p>
<ul>
<li>方差
$$
\begin{align*}
Var(b_0)&amp;= \sum  \left { \left [ \frac{1}{n}-\frac{(x_i-\bar{x})\bar{x}}
{\sum (x_i-\bar{x})^2} \right ]^2 Var(y_i) \right }  \
&amp; \
&amp;= \sigma^2 \sum \left [ \frac{1}{n}-\frac{(x_i-\bar{x})\bar{x}}
{\sum (x_i-\bar{x})^2} \right ]^2 \
&amp; \
&amp;= \sigma^2 \sum \left [ \frac{1}{n^2}-\frac{(x_i-\bar{x})\bar{x}}{2n\sum (x_i-\bar{x})^2}+
\frac{(x_i-\bar{x})^2\bar{x}^2}{\sum (x_i-\bar{x})^2} \right ] \
&amp; \
&amp;= \sigma^2 \left [ \frac{1}{n}+\frac{\bar{x}^2}{\sum (x_i-\bar{x})^2} \right ] \
&amp; \
&amp; \
Var(b_1)&amp;= \sum \left { \left [ \frac{x_i-\bar{x}}{\sum (x_i-\bar{x})^2} \right ]^2 Var(y_i) \right } \
&amp; \
&amp;= \sigma^2 \frac{\sum (x_i-\bar{x})^2}{[\sum (x_i-\bar{x})^2]^2}  \
&amp; \
&amp;= \frac{\sigma^2}{\sum (x_i-\bar{x})^2}
\end{align*}
$$</li>
</ul>
<p>可以看到在 $\epsilon$、$y_i$、$b_0$、$b_1$ 的分布中都有 $\sigma^2$ 的身影，但 $\sigma^2$ 目前还属于未知参数，所以接下来要做的就是构造 $\sigma^2$ 的估计量 $\hat{\sigma}^2$ 。</p>
<h4 id="hatsigma2">$\hat{\sigma}^2$</h4>
<p>由于 $\sigma^2$ 是总体中误差的方差，自然想到用样本中误差（即残差）的方差来做无偏估计：
$$
\hat{\sigma}^2 = \frac{\sum e_i^2}{n-2} = \frac{\sum (y_i-\hat{y_i})^2}{n-2}
= \frac{SSE}{n-2}
$$</p>
<p>这里，$n-2$ 为总体误差方差的自由度。因为我们需要以回归直线为基准来计算 $e_i$ ( 即以 $y_i-\hat{y}_i$ 进行估计)，而决定这条直线需要估计截距和斜率两个参数，所以消耗了两个自由度。</p>
<br>
<hr>
<h3 id="模型检验--假设检验">模型检验&ndash;假设检验</h3>
<h4 id="模型整体检验">模型整体检验</h4>
<h4 id="回归系数检验">回归系数检验</h4>
<br>
<hr>
<h3 id="模型评价--拟合优度">模型评价&ndash;拟合优度</h3>
<br>
<hr>
<h3 id="模型预测--响应值响应均值">模型预测&ndash;响应值、响应均值</h3>
<br>
<hr>
<h2 id="前景展望">前景展望</h2>
<ol>
<li>需要提醒的是 OLS 回归方法找出的是两个变量间最佳的线性关系，但实际情况中两个变量间可能并不是简单的线性关系。因为社会现象往往受到诸多因素的共同影响，单因素造成某一社会现象的情况几乎不存在。但是，了解简单回归的原理是学习多元回归乃至其他更复杂统计方法的基础。</li>
<li>同时，在简单线性回归中除了最小二乘法还有多种进行参数估计的方法可以运用，其中最大似然法的思想其实是与最小二乘法相通的。</li>
<li>此外，尽管我们可以根据基本假定估计出回归模型，但是我们不知道这些假定是否成立。诊断数据仍然是必不可少的一个环节。这部分内容我们将在之后的系列 <strong>回归诊断</strong> 中进行详细讨论。</li>
</ol>
<blockquote>
<h3 id="参考文章">参考文章</h3>
<p>[1]谢宇著.回归分析[M].北京：社会科学文献出版社.2010.
[2]（美）查特吉著.例解回归分析 原书第5版[M].北京：机械工业出版社.2013.</p>
</blockquote>]]></content:encoded></item><item><title>回归分析系列1-统计概念基础</title><link>https://philohao.com/2018/03/20180310/</link><pubDate>Sat, 10 Mar 2018 12:19:00 +0800</pubDate><dc:creator>Jianfeng.Hao</dc:creator><author>haojianfeng1997@gmail.com (Jianfeng.Hao)</author><guid isPermaLink="true">https://philohao.com/2018/03/20180310/</guid><description>回归分析入门笔记，梳理定量研究、变量、描述统计和推论统计等基础概念。</description><content:encoded><![CDATA[<center><i>
    尽管定量研究的结论建立在一定假设条件上，不一定具有普遍意义，但定量研究方法却是研究社会现象不可缺少的工具。<br>这是因为，如果没有这种方法，我们就无法很好地捕捉和表述研究对象的变异性
</i></center>
<h2 id="本节综述">本节综述</h2>
<p>本章着重介绍一些最基本的统计概念，比如总体、样本、随机变量、概率、期望、方差、标准差、协方差和相关系数等。这些概念着似简单，但却是线性回归方法的基础。只有真正熟练掌握并理解这些概念，才能在后面的学习中游刃有余。</p>
<h2 id="概念掌握">概念掌握</h2>
<h3 id="期望与条件期望">期望与条件期望</h3>
<ol>
<li>期望
离散型： $E(X)=\sum_{i=1}^{n}x_{i}P(x_{i})$<br>
连续型： $E(X)=\int_{-\infty }^{+\infty}xf(x)dx$</li>
</ol>
<div class="note info"><p>期望其实与均值类似，是个平均数，但两者之间的区别在于均值是根据某一变量的一系列已知取值求得的，因此，均值往往被特定地用来指称样本的一个特征，而期望代表的是整个总体的平均数、一个未知的总体参数，因此，它只是一个理论值。</p></div>
2. 条件期望
离散型：$E(Y|X=x_{i})=\sum_{i=1}^{n}y_{i}p(Y=y_{i}|X=x_{i})$
连续型：$E(Y|X)=\int yf_{Y|X}(y|x)dy$
<div class="note info"><p>条件期望有以下性质：<br>
2.1 若 X 与 Y 相互独立，则 $E(Y|X)=E(Y)$ <br>
2.2 若 $k_{1}$,$k_{2}$ 为常数，则 $E[(k_{1}Y_{1}+k_{2}Y_{2})|X]=k_{1}E(Y_{1}|X)+k_{2}E(Y_{2}|X)$ <br>
2.3 全期望公式/迭代期望法则 $E(Y)=E_{x}[E(Y|X)]$</p></div>
<h3 id="总体方差与样本方差">总体方差与样本方差</h3>
<ol>
<li>总体方差</li>
</ol>
<p>$$
\begin{align*}
Var(X)&amp;=\sum_{i=1}^{n}[x_{i}-E(X)]^{2}P(x_{i}) \
&amp; \
&amp;=E[X-E(X)]^{2} \<br>
&amp; \
&amp;=E(X^{2})-[E(X)]^{2}
\end{align*}
$$</p>
<ol start="2">
<li>样本方差</li>
</ol>
<p>$$
S^{2}=\frac{1}{n-1}\sum_{i=1}^{n}(x_{i}-\bar{X})^{2}
$$</p>
<h3 id="总体标准差样本标准差与标准误">总体标准差、样本标准差与标准误</h3>
<p>总体标准差：$\sigma (X)=\sqrt{Var(X)}$
样本标准差：$S=\sqrt{S^{2}}$
标准误：$S.E.=\sigma /\sqrt{n}$</p>
<p>![1_2 三种分布.PNG](<a href="https://blog-1255524710.cos.ap-beijing.myqcloud.com/images/1_2" target="_blank" rel="noopener noreffer">https://blog-1255524710.cos.ap-beijing.myqcloud.com/images/1_2</a> 三种分布.PNG)</p>
<h3 id="标准化随机变量">标准化随机变量</h3>
<p>$$z=\frac{X-E(X)}{\sigma (X)}$$
在多元线性回归中，由于不同自变量的测量单位通常并不一致，因而得到的回归系数通常也不能直接进行相对大小的比较。但如果我们对随机变量进行标准化，消除了变量各自测量单位的影响，得到的标准化回归系数之间就能够进行比较了。标准化经常被用来解决由于变量测量单位不同而导致的结果不可比的问题。</p>
<div class="note info"><p>标准化以后的新变量变成了一个均值为0 、方差为1 的变量。</p></div>
<h3 id="协方差与相关系数">协方差与相关系数</h3>
<ol>
<li>总体协方差
协方差用于测量两个随机变量之间的线性关系。注意，这里强调了 <strong>线性</strong> 这个词。
$$
\begin{align*}
Cov(X,Y)&amp;=\sum_{i}\sum_{j}[x_{i}-E(X)][y_{i}-E(Y)]P(x_{i},y_{i}) \
&amp; \
&amp;=E\left {[X-E(X)][Y-E(Y)] \right }  \
&amp; \
&amp;=E(XY)-E(X)E(Y)
\end{align*}
$$</li>
</ol>
<div class="note primary"><p>其实，方差是协方差的一个特例，也就是说，X 的方差就是X 与其自身的协方差。</p></div>
2. 总体相关系数
$$
\rho (X,Y)=\frac{Cov(X,Y)}{\sigma (X)\sigma (Y)}
$$
3. 样本协方差
$$
S_{yx}=\frac{\sum_{i=1}^{n}(x_{i}-\bar{x})(y_{i}-\bar{y})}{n-1}
$$
4. 样本相关系数
$$
\begin{align*} 
 S_{yx}&=\frac{\sum_{i=1}^{n}(x_{i}-\bar{x})(y_{i}-\bar{y})}{n-1} \\ 
 & \\
 &\xrightarrow[standardized]{z_{i}=\frac{y_{i}-\bar{y}}{S_{y}}} \\ 
 & \\
 r_{yx}&=\frac{1}{n-1}\sum_{i=1}^{n} (\frac{y_{i}-\bar(y)}{s_{y}}) (\frac{x_{i}-\bar(x)}{s_{x}}) \\
 & \\
 &= S_{yx}/S_yS_x \\
 & \\
 &=\frac{\sum_{i=1}^{n} (y_{i}-\bar(y)) (x_{i}-\bar(x))}{\sqrt{\sum_{i=1}^{n} (y_{i}-\bar(y))^2 (x_{i}-\bar(x))^2}}
\end{align*}
$$
<div class="note primary"><p>相关系数，即标准化协方差，消除了量纲的影响，所以相关系数之间可以直接进行比较，刻画了线性相关关系的强弱与方向。</p></div>
<h2 id="性质掌握">性质掌握</h2>
<h3 id="随机变量的和与差">随机变量的和与差</h3>
<ol>
<li>如果X 和Y 是两个随机变量，那么X+Y 的期望与方差为:
期望：$E(X+Y)=E(X)+E(Y)$
方差：$Var(X+Y)=Var(X)+Var(Y)+2Cov(X,Y)$</li>
</ol>
<div class="note info"><p>作为特例，如果X 和Y 相互独立，并且都服从正态分布，它们的和将服从均值为μ1+μ2、方差为σ1²+σ2² 的正态分布。</p></div>
2. 如果X 和Y 是两个随机变量，那么X-Y 的期望与方差为：
期望：$E(X-Y)=E(X)-E(Y)$
方差：$Var(X-Y)=Var(X)+Var(Y)-2Cov(X,Y)$
<div class="note info"><p>作为特例，如果X 和Y 相互独立，并且都服从正态分布，它们的差将服从均值为μ1-μ2、方差为σ1²+σ2² 的正态分布。</p></div>
3. 依此类推，如果 $T=X_1 +X_2 +...+X_s$ 是S 个独立随机变量的和，那么T 的期望与方差为:
期望：$E(T)=\sum_{i=1}^{S}E(X_{i})$
方差：$Var(T)=\sum_{i=1}^{S}Var(X_{i})$
<h3 id="期望的简单代数运算性质">期望的简单代数运算性质</h3>
<p>$$E(a+bX)=a+bE(X)$$</p>
<h3 id="方差的简单代数运算性质">方差的简单代数运算性质</h3>
<p>$$Var(a+bX)=b^2Var(X)$$</p>
<h3 id="协方差的简单代数运算性质">协方差的简单代数运算性质</h3>
<ol>
<li>$Cov(X,X)=Var(X)$</li>
<li>$Cov(X,Y)=Cov(Y,X)$</li>
<li>$Cov(C,Y)=0$，C 为任意常数</li>
<li>$Cov(X_{1}+X_{2},Y)=Cov(X_{1},Y)+Cov(X_{2},Y)$</li>
<li>$Cov(a+bX,c+dY)=bd[Cov(X,Y)]$</li>
</ol>
<div class="note warning"><p>再次强调，对于方差和协方差，其变化只涉及测度，而不涉及位置。</p></div>
6. $\rho (a+bX,c+dY)=\rho (X,Y)$
<div class="note warning"><p>这个性质表明，无论是测度变化还是位置变化都不会影响相关系数。</p></div>
<h2 id="下节引读">下节引读</h2>
<p>由于个体异质性的存在，我们不能利用样本对总体中的个体进行任何推断，但是，概括性的总体特征——<strong>参数</strong>是相对稳定的，总体参数可以通过总体中的一个样本构建<strong>样本统计量</strong>来进行估计。
然而，样本提供的信息是有限的。那么，接下来的问题就在于如何依据样本信息来认识所研究的总体。统计推断在这里扮演着关键角色。所谓统计推断，就是通过样本统计量来推断未知的总体参数。</p>
<blockquote>
<h3 id="参考文章">参考文章</h3>
<p>[1]谢宇著.回归分析[M].北京：社会科学文献出版社.2010.</p>
</blockquote>
<p>（yyyy-mm-dd@xx）</p>]]></content:encoded></item></channel></rss>