<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Markdown | Yuan Zhuang</title><link>https://yuanzhuang.site/tag/markdown/</link><atom:link href="https://yuanzhuang.site/tag/markdown/index.xml" rel="self" type="application/rss+xml"/><description>Markdown</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Thu, 13 Jul 2023 00:00:00 +0000</lastBuildDate><image><url>https://yuanzhuang.site/media/icon_hu0b7a4cb9992c9ac0e91bd28ffd38dd00_9727_512x512_fill_lanczos_center_3.png</url><title>Markdown</title><link>https://yuanzhuang.site/tag/markdown/</link></image><item><title>Display Jupyter Notebooks with Academic</title><link>https://yuanzhuang.site/post/jupyter/</link><pubDate>Thu, 13 Jul 2023 00:00:00 +0000</pubDate><guid>https://yuanzhuang.site/post/jupyter/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">IPython.core.display&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">Image&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Image&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;https://www.python.org/static/community_logos/python-logo-master-v3-TM-flattened.png&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="./index_1_0.png" alt="png" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Welcome to Academic!&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;pre>&lt;code>Welcome to Academic!
&lt;/code>&lt;/pre>
&lt;h2 id="install-python-and-jupyterlab">Install Python and JupyterLab&lt;/h2>
&lt;p>&lt;a href="https://www.anaconda.com/distribution/#download-section" target="_blank" rel="noopener">Install Anaconda&lt;/a> which includes Python 3 and JupyterLab.&lt;/p>
&lt;p>Alternatively, install JupyterLab with &lt;code>pip3 install jupyterlab&lt;/code>.&lt;/p>
&lt;h2 id="create-or-upload-a-jupyter-notebook">Create or upload a Jupyter notebook&lt;/h2>
&lt;p>Run the following commands in your Terminal, substituting &lt;code>&amp;lt;MY-WEBSITE-FOLDER&amp;gt;&lt;/code> and &lt;code>&amp;lt;SHORT-POST-TITLE&amp;gt;&lt;/code> with the file path to your Academic website folder and a short title for your blog post (use hyphens instead of spaces), respectively:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">mkdir -p &amp;lt;MY-WEBSITE-FOLDER&amp;gt;/content/post/&amp;lt;SHORT-POST-TITLE&amp;gt;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> &amp;lt;MY-WEBSITE-FOLDER&amp;gt;/content/post/&amp;lt;SHORT-POST-TITLE&amp;gt;/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">jupyter lab index.ipynb
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The &lt;code>jupyter&lt;/code> command above will launch the JupyterLab editor, allowing us to add Academic metadata and write the content.&lt;/p>
&lt;h2 id="edit-your-post-metadata">Edit your post metadata&lt;/h2>
&lt;p>The first cell of your Jupter notebook will contain your post metadata (&lt;a href="https://sourcethemes.com/academic/docs/front-matter/" target="_blank" rel="noopener">front matter&lt;/a>).&lt;/p>
&lt;p>In Jupter, choose &lt;em>Markdown&lt;/em> as the type of the first cell and wrap your Academic metadata in three dashes, indicating that it is YAML front matter:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">---
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">title: My post&amp;#39;s title
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">date: 2023-07-13
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Put any other Academic metadata here...
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">---
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Edit the metadata of your post, using the &lt;a href="https://sourcethemes.com/academic/docs/managing-content" target="_blank" rel="noopener">documentation&lt;/a> as a guide to the available options.&lt;/p>
&lt;p>To set a &lt;a href="https://sourcethemes.com/academic/docs/managing-content/#featured-image" target="_blank" rel="noopener">featured image&lt;/a>, place an image named &lt;code>featured&lt;/code> into your post&amp;rsquo;s folder.&lt;/p>
&lt;p>For other tips, such as using math, see the guide on &lt;a href="https://wowchemy.com/docs/content/writing-markdown-latex/" target="_blank" rel="noopener">writing content with Academic&lt;/a>.&lt;/p>
&lt;h2 id="convert-notebook-to-markdown">Convert notebook to Markdown&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">jupyter nbconvert index.ipynb --to markdown --NbConvertApp.output_files_dir&lt;span class="o">=&lt;/span>.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="example">Example&lt;/h2>
&lt;p>This post was created with Jupyter. The orginal files can be found at &lt;a href="https://github.com/gcushen/hugo-academic/tree/master/exampleSite/content/post/jupyter" target="_blank" rel="noopener">https://github.com/gcushen/hugo-academic/tree/master/exampleSite/content/post/jupyter&lt;/a>&lt;/p></description></item><item><title>Using Rstudio to Blog</title><link>https://yuanzhuang.site/post/usingr/</link><pubDate>Thu, 13 Jul 2023 00:00:00 +0000</pubDate><guid>https://yuanzhuang.site/post/usingr/</guid><description>&lt;p>死亡率的预测一直是保险精算行业非常关注的事情。在前面的课中我们已经学习了如何使用Lee-Carter、CBD和二维P样条进行死亡率的拟合，但如何使用这些模型对未来的死亡率进行预测呢？下面我将分别使用之前学过的模型进行死亡率的预测。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="nf">library&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">gnm&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="c1"># 做Lee-Carter的相关包&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">library&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">astsa&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="c1"># 时间序列分析的相关包&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">library&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">svcm&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">library&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">MortalitySmooth&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="c1"># 死亡率修匀的关键包&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h1 id="1-数据准备">1. 数据准备&lt;/h1>
&lt;p>这一次需要用到的数据是1961-2013年，英国50-90岁男性的数据。数据来自HMD（Human
Mortality
Database）。数据已经下载到本地了，是个txt文件。首先，我们定义一下&lt;code>Read.HMD&lt;/code>这个函数，它可以自动读取我们下载来的txt文件。代码在下一面，我参考了&lt;em>Modelling
Mortality with Actuarial Applications&lt;/em>这本书。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="n">check.integer&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">function&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">x&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="nf">round&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Read.HMD&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">function&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">file&lt;/span>&lt;span class="p">){&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">x&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">scan&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">file&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">skip&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">what&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;character&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">x&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">matrix&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ncol&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">byrow&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="bp">T&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># 删除110岁以上的数据&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Select&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">rep&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">nrow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Select&lt;/span>&lt;span class="nf">[check.integer&lt;/span>&lt;span class="p">((&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="nf">nrow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">))&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="m">111&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">]&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="m">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">x&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">x[Select&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">x&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">matrix&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">as.numeric&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">)),&lt;/span> &lt;span class="n">ncol&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">5&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># 把年份找出来，分成男女&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Age&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="m">0&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="m">109&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Year&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">min&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x[&lt;/span> &lt;span class="p">,&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">:&lt;/span> &lt;span class="nf">max&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x[&lt;/span> &lt;span class="p">,&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Female&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">x[&lt;/span> &lt;span class="p">,&lt;/span>&lt;span class="m">3&lt;/span>&lt;span class="n">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Female.Matrix&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">matrix&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Female&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">nrow&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">110&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">dimnames&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Female.Matrix&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">list&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Age&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Year&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Male&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">x[&lt;/span> &lt;span class="p">,&lt;/span>&lt;span class="m">4&lt;/span>&lt;span class="n">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Male.Matrix&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">matrix&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Male&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">nrow&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">110&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">dimnames&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Male.Matrix&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">list&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Age&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Year&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">return&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">list&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Age&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Age&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Year&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Year&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Female.Matrix&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Female.Matrix&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Male.Matrix&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Male.Matrix&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>我们利用刚才编写的函数，把数据读进来，找到想要的年份和年龄后，计算一些常用的变量：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="n">Death.Data&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">Read.HMD&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;C:\\Users\\lenovo\\Desktop\\lt\\leecarter\\Lee-Carter Application\\HMD_UK_Deaths_2013.txt&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Exposure.Data&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">Read.HMD&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;C:\\Users\\lenovo\\Desktop\\lt\\leecarter\\Lee-Carter Application\\HMD_UK_Exposures_2013.txt&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 年龄和年份，一个是所有年龄，一个是目标年龄&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Age&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Death.Data&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">Age&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Year&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Death.Data&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">Year&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">AGE&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="m">50&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="m">90&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">YEAR&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="m">1961&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="m">2013&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 1961-2013年，英国50-90岁男性&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Dth&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Death.Data&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">Male.Matrix&lt;/span>&lt;span class="nf">[&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">49&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="n">Age&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">Age&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="m">91&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">(&lt;/span>&lt;span class="m">1960&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="n">Year&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">Year&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="m">2014&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Exp&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Exposure.Data&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">Male.Matrix&lt;/span>&lt;span class="nf">[&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">49&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="n">Age&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">Age&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="m">91&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">(&lt;/span>&lt;span class="m">1960&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="n">Year&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">Year&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="m">2014&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Obs是中心死亡率取对数&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Obs&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">log&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Dth&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Exp&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 取得死亡率矩阵的维度&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n.x&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">nrow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Dth&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n.y&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">ncol&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Dth&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h1 id="2-使用时间序列方法做lee-carter模型的预测">2. 使用时间序列方法做Lee-Carter模型的预测&lt;/h1>
&lt;h2 id="21-参数估计">2.1 参数估计&lt;/h2>
&lt;p>Lee-Carter模型同时对年龄和时间这两个影响死亡率的因素进行建模，相关假设如下：&lt;/p>
$$\log \left(\mu_{x+1 / 2, y+1 / 2}\right)=\alpha_x+\beta_x \kappa_y, x=x_1, \ldots, x_{n_x}, y=y_1, \ldots, y_{n_y}$$
&lt;p>这里，
$x$表示的是不同的年龄，
$y$表示的是不同的年份。想要预测未来年份的死亡率，只需要预测
$\kappa_y$即可，因为
$\alpha_x$和
$\beta_x$只跟年龄有关，跟年份无关。&lt;/p>
&lt;p>不管怎么说，让我们先使用&lt;code>gnm()&lt;/code>，用极大似然法拟合一个模型：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 把年龄和年份重复很多遍，直到行数为nx*ny，方便做交叉项&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Age.F&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">factor&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">rep&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">AGE&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">n.y&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Year.F&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">factor&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">rep&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">each&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">n.x&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Dth.V&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Dth&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="c1"># 把矩阵压成一个向量&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 这种向量是另一种展示面板数据的方式，有点像Stata里面的方式&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 相同年份的聚成一堆，一个年份中按照年龄来排序&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Exp.V&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Exp&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 最重要的函数是Mult，制作了交叉项&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 回归没有截距，通过年龄确定唯一的alpha，通过年龄和年份确定唯一的交叉项&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 使用泊松分布的典则连接，offset项是暴露数，加了log&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">LC.Male&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">gnm&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Dth.V&lt;/span> &lt;span class="o">~&lt;/span> &lt;span class="m">-1&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">Age.F&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="nf">Mult&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Age.F&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Year.F&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">offset&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">log&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Exp.V&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">family&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">poisson&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">## Initialising
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## Running start-up iterations..
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## Running main iterations......
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## Done
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>但是，上一面得出来的参数并不满足Lee和Carter原文中的约束：&lt;/p>
$$\sum \beta_x=1 ; \sum \kappa_y=0$$
&lt;p>所以，在这里需要对这些参数做一下变换：&lt;/p>
$$\begin{aligned} \hat{\boldsymbol{\alpha}} &amp; =\hat{\boldsymbol{\alpha}}_R+\bar{\kappa}_R \hat{\boldsymbol{\beta}}_R \\ \hat{\boldsymbol{\kappa}} &amp; =n_x \bar{\beta}_R\left(\hat{\boldsymbol{\kappa}}_R-\bar{\kappa}_R \mathbf{1}_{n_y}\right) \\ \hat{\boldsymbol{\beta}} &amp; =\hat{\boldsymbol{\beta}}_R /\left(n_x \bar{\beta}_R\right)\end{aligned}$$
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 得到参数&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Alpha.gnm&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">LC.Male&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">coef[1&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="n">n.x]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Beta.gnm&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">LC.Male&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">coef&lt;/span>&lt;span class="nf">[&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n.x&lt;/span>&lt;span class="m">+1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">n.x&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Kappa.gnm&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">LC.Male&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">coef&lt;/span>&lt;span class="nf">[&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">n.x&lt;/span>&lt;span class="m">+1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">n.x&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="n">n.y&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 首先求一下均值&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Kappa.m&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">mean&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.gnm&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Beta.m&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">mean&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Beta.gnm&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 进行转换&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Alpha.hat&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Alpha.gnm&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">Kappa.m&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">Beta.gnm&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Beta.hat&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Beta.gnm&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n.x&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">Beta.m&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># kappa中的那个示性函数只是为了把均值（1*1）转成一个向量&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Kappa.hat&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">n.x&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">Beta.m&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.gnm&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">Kappa.m&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 得到最后的预测值&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Fitted.M.hat&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Alpha.hat&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">Beta.hat&lt;/span> &lt;span class="o">%*%&lt;/span> &lt;span class="nf">t&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.hat&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>现在我们已经记录好了参数，接下来就是看怎么对
$\kappa_y$进行预测。&lt;/p>
&lt;h2 id="22-时间序列分析">2.2 时间序列分析&lt;/h2>
&lt;p>一个对
$\kappa_y$的最简单假设是：
$$
\kappa_y=\mu+\kappa_{y-1}+\epsilon_y, y=2, \ldots, n_y
$$
这是一个带漂移项的随机游走过程。为何要这么假设？可以看看我们估计出的$\kappa_y$：&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="plot of chunk unnamed-chunk-3" srcset="
/post/usingr/figure/unnamed-chunk-3-1_hue7641e0c34b6b33d763039a1c252cfee_2675_b923fdc0fff8b051ad717a686812bd3e.webp 400w,
/post/usingr/figure/unnamed-chunk-3-1_hue7641e0c34b6b33d763039a1c252cfee_2675_8c1e44ed6b0d71ba6f22bf28dcb142fa.webp 760w,
/post/usingr/figure/unnamed-chunk-3-1_hue7641e0c34b6b33d763039a1c252cfee_2675_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yuanzhuang.site/post/usingr/figure/unnamed-chunk-3-1_hue7641e0c34b6b33d763039a1c252cfee_2675_b923fdc0fff8b051ad717a686812bd3e.webp"
width="504"
height="432"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>可以看出，
$\kappa_y$在每年下降，而刚才式中的$\mu$就代表了这个下降，被称为&lt;strong>漂移参数&lt;/strong>（drift
parameter）。误差项
$\epsilon_y$服从
$Normal(0,\sigma^2)$，在文献中通常被叫做innovations。现在目标就是估计
$\mu$和
$\sigma^2$。只需要做一次差分，就可以把这个模型估计出来：&lt;/p>
$$
\begin{aligned}
\Delta \kappa_y &amp; =\kappa_y-\kappa_{y-1}, y=2, \ldots, n_y \\
&amp; =\mu+\epsilon_y
\end{aligned}
$$
&lt;p>只需要找到差分项的样本均值和样本方差，估计出来的就是
$\mu$和
$\sigma^2$：&lt;/p>
$$
\hat{\mu}=\frac{\sum_2^{n_y} \Delta \kappa_y}{n_y-1}=\frac{\kappa_{n_y}-\kappa_1}{n_y-1} \\
\hat{\sigma}^2=\frac{\sum_2^{n_y}\left(\Delta \kappa_y-\hat{\mu}\right)^2}{n_y-2}
$$
&lt;p>但是，带漂移项和一阶滞后项的随机游走其实是个很简单的模型，我们有可能得到了一个预测效果很差的模型，在这种情况下，学者们对于模型进行了以下的改进：&lt;/p>
&lt;ol>
&lt;li>带漂移项和高阶滞后项的随机游走：
$$
\kappa_y=\mu+2 \kappa_{y-1}-\kappa_{y-2}+\epsilon_y, y=3, \ldots, n_y .
$$
模型中的最高阶滞后项的滞后阶数是多少，我们就对它差分多少次，肯定能估计出
$\mu$和
$\sigma^2$：&lt;/li>
&lt;/ol>
$$
\begin{aligned}
\Delta \kappa_y &amp; =\kappa_y-\kappa_{y-1}, y=2, \ldots, n_y, \\
&amp; =\mu+\epsilon_y .
\end{aligned}
$$
&lt;ol start="2">
&lt;li>自回归模型（AR）&lt;/li>
&lt;/ol>
&lt;p>刚才在带漂移项和高阶滞后项的随机游走中，高阶滞后项的系数是确定的，但是我们也可以通过回归来得出这个系数：
$$
\kappa_y=\mu+ \mathrm{ar}_1 \kappa_{y-1}+\epsilon_y, y=2, \ldots, n_y .
$$
$\mathrm{ar}_1$其实就是个系数，要通过时间序列回归才可以得出来。这样的模型被称为自回归模型。&lt;/p>
&lt;ol start="3">
&lt;li>
&lt;p>滑动平均模型（MA） 我们也可以把高阶滞后误差项加入模型：
$$
\kappa_y=\mu+m_1 \epsilon_{y-1}+\epsilon_y, y=2, \ldots, n_y
$$
$m_1$也只是个系数，这样的模型被称为滑动平均模型。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>更加复杂的模型
我们也可以把
$\kappa$的高阶滞后项与高阶滞后误差项同时加入模型，变成ARMA模型：
$$
\kappa_y=\mu+\text{ar}_1 \kappa_{y-1}+\text{ar}_2 \kappa_{y-2}+\mathrm{ma}_1 \epsilon_{y-1}+\epsilon_y, y=3, \ldots, n_y
$$
&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>要是一个模型差分
$d$次变为
ARMA(p,q)模型，我们就称这是一个ARIMA(p,d,q)模型，其中，
$p$和
$q$分别代表了模型中
$\kappa$的最高阶数和误差项的最高阶数。至于要差分多少次，时间序列分析这门课提供了单位根检验这种方法，这里就不再阐述。&lt;/p>
&lt;p>下面，我们直接用&lt;code>astsa&lt;/code>包中的&lt;code>sarima&lt;/code>函数对下面的最简单的方程进行估计：
$$
\kappa_y=\mu+\kappa_{y-1}+\epsilon_y, y=2, \ldots, n_y
$$
&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="n">n.y&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">length&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.hat&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 使用一阶差分法进行参数估计&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Mu&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">mean&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">diff&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.hat&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Sigma2&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">var&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">diff&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.hat&lt;/span>&lt;span class="p">))&lt;/span> &lt;span class="c1"># var的分母是ny-2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 使用sarima函数（时间序列回归）进行估计&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Sarima.out&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">sarima&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.hat&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">p&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">d&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">details&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">FALSE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 看看一阶差分法和时间序列回归有什么不同&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Mu&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Sarima.out&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">fit&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">coef&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">## constant
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## -0.7421723 -0.7421723
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="nf">c&lt;/span>&lt;span class="p">((&lt;/span>&lt;span class="n">n.y&lt;/span>&lt;span class="m">-2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n.y&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">Sigma2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Sarima.out&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">fit&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">sigma2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">## [1] 0.941579 0.941579
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>因此，这两种方法在带一阶滞后项与漂移项的随机游走过程参数估计中是相同的。但是，&lt;code>astsa&lt;/code>包好就好在，它可以使用&lt;code>sarima.for&lt;/code>函数对未来进行预测，还能出个图片。所以我们之后都用&lt;code>sarima.for&lt;/code>这个函数：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 往前预测25年&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">N.Ahead&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="m">25&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 拟合一个差分1次的模型，没有p和q&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># gg=True表示用ggplot2画图&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Kappa.for&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">sarima.for&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.hat&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">n.ahead&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">gg&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="kc">TRUE&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">p&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">d&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="plot of chunk unnamed-chunk-5" srcset="
/post/usingr/figure/unnamed-chunk-5-1_hu4a18611e4b5e4d6ff9cc9ef87843b1d4_5794_d94afad28aee2b4a84b111e3051b0527.webp 400w,
/post/usingr/figure/unnamed-chunk-5-1_hu4a18611e4b5e4d6ff9cc9ef87843b1d4_5794_42c888f7e9070777387c638e6b27f016.webp 760w,
/post/usingr/figure/unnamed-chunk-5-1_hu4a18611e4b5e4d6ff9cc9ef87843b1d4_5794_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yuanzhuang.site/post/usingr/figure/unnamed-chunk-5-1_hu4a18611e4b5e4d6ff9cc9ef87843b1d4_5794_d94afad28aee2b4a84b111e3051b0527.webp"
width="504"
height="504"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>
$\kappa$的预测值得出来了，接下来要得到死亡率的预测值，使用双侧5%的置信区间，可以预测死亡率：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="n">Central&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Kappa.for&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">pred&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">SE.Pred&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Kappa.for&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">se&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Z&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">qnorm&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">0.975&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Kappa.Up.Pred&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Central&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">Z&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">SE.Pred&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Kappa.Dn.Pred&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Central&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">Z&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">SE.Pred&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Forecast&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Alpha.hat&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">Beta.hat&lt;/span> &lt;span class="o">%*%&lt;/span> &lt;span class="nf">t&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Central&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Forecast.Up.Pred&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Alpha.hat&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">Beta.hat&lt;/span> &lt;span class="o">%*%&lt;/span> &lt;span class="nf">t&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.Up.Pred&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Forecast.Dn.Pred&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Alpha.hat&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">Beta.hat&lt;/span> &lt;span class="o">%*%&lt;/span> &lt;span class="nf">t&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.Dn.Pred&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Range&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="m">2014&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="m">2038&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>画出死亡率的图来（这里使用65岁作为例子画个二维图，因为Lee-Carter是个二维修匀模型，正确展示所有预测需要画一个曲面）：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="n">Plot.Age&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">65&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Plot.Row&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Plot.Age&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="nf">min&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">AGE&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">par&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">mfrow&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">par&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">mar&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">4.2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">4&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">mgp&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">las&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cex&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Year.For&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR[1]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">YEAR&lt;/span>&lt;span class="nf">[length&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="m">+25&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">plot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Obs[Plot.Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">axes&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">FALSE&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">xlab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;Year&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ylab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;log(mortality)&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">xlim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1961&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2040&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ylim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">min&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Forecast.Dn.Pred[Plot.Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="nf">max&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Obs[Plot.Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">las&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">at&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1950&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2040&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">10&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">-2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Forecast[Plot.Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Forecast.Up.Pred[Plot.Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Forecast.Dn.Pred[Plot.Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">legend&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;bottomleft&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">legend&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;Observed&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;Central forecast&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;95% PI&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">pch&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">bty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;n&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="plot of chunk unnamed-chunk-7" srcset="
/post/usingr/figure/unnamed-chunk-7-1_hud9bb76e2033c9f3f34dedffe3933b528_4761_41c47430ab59d7135452abb627fc4458.webp 400w,
/post/usingr/figure/unnamed-chunk-7-1_hud9bb76e2033c9f3f34dedffe3933b528_4761_8774c3aebc9408cad4e4a1f950436652.webp 760w,
/post/usingr/figure/unnamed-chunk-7-1_hud9bb76e2033c9f3f34dedffe3933b528_4761_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yuanzhuang.site/post/usingr/figure/unnamed-chunk-7-1_hud9bb76e2033c9f3f34dedffe3933b528_4761_41c47430ab59d7135452abb627fc4458.webp"
width="504"
height="504"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>看出来，这个最简单的模型预测的死亡率随年份的变化简直就是一条直线，忽视了死亡率改善曲线的曲率。所以我们一定要慎重地选择死亡率预测的模型。下面的图片列示了各种风险：&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="不正确的死亡率预测可能面临的各种风险" srcset="
/post/usingr/Risks_huaf90168008f131446936f66a27fe332d_161391_b9a8c68623994643a4cd87f2965ac330.webp 400w,
/post/usingr/Risks_huaf90168008f131446936f66a27fe332d_161391_973facac0da4c3bdb96f49fdefdcf010.webp 760w,
/post/usingr/Risks_huaf90168008f131446936f66a27fe332d_161391_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yuanzhuang.site/post/usingr/Risks_huaf90168008f131446936f66a27fe332d_161391_b9a8c68623994643a4cd87f2965ac330.webp"
width="760"
height="667"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>在死亡率预测中，很重要的一种风险就是模型风险。如果使用的死亡率预测模型本身都是错误的，那我们就白忙活了。下面的图显示，不同参数下的ARIMA模型得出的预测结果差别比较大，一定要审慎选择模型。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="n">Plot.Age&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="m">65&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Plot.Row&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Plot.Age&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="nf">min&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">AGE&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">par&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">mar&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">4.2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">4&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">mgp&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">las&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cex&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Year.For&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR[1]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">YEAR&lt;/span>&lt;span class="nf">[length&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="m">+25&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">plot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Obs[Plot.Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">axes&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">FALSE&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">xlab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;Year&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ylab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;log(mortality)&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">xlim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1961&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2040&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ylim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">min&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Forecast.Dn.Pred[Plot.Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="nf">max&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Obs[Plot.Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">las&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">at&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1950&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2040&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">10&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-6&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">-2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Forecast[Plot.Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">par&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">TRUE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Kappa.for&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">sarima.for&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.hat&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">plot&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">FALSE&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">n.ahead&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">p&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">d&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Central1&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Kappa.for&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">pred&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Forecast1&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Alpha.hat&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">Beta.hat&lt;/span> &lt;span class="o">%*%&lt;/span> &lt;span class="nf">t&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Central1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Forecast1[Plot.Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">par&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">TRUE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Kappa.for&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">sarima.for&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.hat&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">plot&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">FALSE&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">n.ahead&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">p&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">6&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">d&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Central2&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Kappa.for&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">pred&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Forecast2&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Alpha.hat&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">Beta.hat&lt;/span> &lt;span class="o">%*%&lt;/span> &lt;span class="nf">t&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Central2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Forecast2[Plot.Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">3&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">legend&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;bottomleft&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">legend&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;Observed&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;p = 0, d = 1, q = 0&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;p = 3, d = 1, q = 1&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;p = 6, d = 1, q = 0&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">3&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">pch&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="plot of chunk unnamed-chunk-8" srcset="
/post/usingr/figure/unnamed-chunk-8-1_hu44afd740c9cfecf1f1deca7f2ae5d0b0_4733_2ea1ad9dff14158670eeb9f976afdc9c.webp 400w,
/post/usingr/figure/unnamed-chunk-8-1_hu44afd740c9cfecf1f1deca7f2ae5d0b0_4733_8530c231eef313d7dd73077529e67279.webp 760w,
/post/usingr/figure/unnamed-chunk-8-1_hu44afd740c9cfecf1f1deca7f2ae5d0b0_4733_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yuanzhuang.site/post/usingr/figure/unnamed-chunk-8-1_hu44afd740c9cfecf1f1deca7f2ae5d0b0_4733_2ea1ad9dff14158670eeb9f976afdc9c.webp"
width="504"
height="504"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h2 id="23-情景生成和偏差分解">2.3 情景生成和偏差分解&lt;/h2>
&lt;p>“偿二代”的存在要求人们生成一定的经济情景。刚才的模型中还存在
$\epsilon_y$，之前一直假设其为0。现在我们把随机误差项加进来，做100个样本轨道，生成情景：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># N.Sim&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">N.Ahead&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="m">25&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">Range&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="m">2014&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="m">2038&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">N.Sim&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="m">100&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 生成一堆随机数，代表\epsilon的实现值&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Mat.Sim&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">matrix&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">rnorm&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">N.Sim&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Mu&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Sigma2&lt;/span>&lt;span class="p">)),&lt;/span>&lt;span class="n">nrow&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N.Sim&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ncol&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 使用apply函数，把\epsilon加上去&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Stoch&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Kappa.hat[n.y]&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="nf">apply&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Mat.Sim&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cumsum&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 绘制样本轨道&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">matplot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Stoch&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">type&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;l&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">col&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">las&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">at&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2010&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2040&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-70&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">-10&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="plot of chunk unnamed-chunk-9" srcset="
/post/usingr/figure/unnamed-chunk-9-1_hu28f9ba60a08dd2afbe51d58e5272d354_13890_140fa455c8aaa09adb1c7adc0cabbbb0.webp 400w,
/post/usingr/figure/unnamed-chunk-9-1_hu28f9ba60a08dd2afbe51d58e5272d354_13890_26ad0063280dbe693b1c58d19bc47ed0.webp 760w,
/post/usingr/figure/unnamed-chunk-9-1_hu28f9ba60a08dd2afbe51d58e5272d354_13890_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yuanzhuang.site/post/usingr/figure/unnamed-chunk-9-1_hu28f9ba60a08dd2afbe51d58e5272d354_13890_140fa455c8aaa09adb1c7adc0cabbbb0.webp"
width="504"
height="504"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>通过大量生成的样本轨道，我们就可以求出在每个时间点上预测$\kappa$的分位数。样本轨道的分位数和我们使用理论预测的分位数是否相同？下面这张图说明了这个事情：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="n">N.Ahead&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="m">25&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Forecast&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">sarima.for&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.hat&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">n.ahead&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">plot&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">FALSE&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">p&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">d&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">set.seed&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2120223132&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 生成1000条样本轨道&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">N.Sim&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="m">1000&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Mat.Sim&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">matrix&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">rnorm&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">N.Sim&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Mu&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Sigma2&lt;/span>&lt;span class="p">)),&lt;/span> &lt;span class="n">nrow&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N.Sim&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ncol&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 逐步加起来，得到样本轨道&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Stoc&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Kappa.hat[n.y]&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="nf">apply&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Mat.Sim&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cumsum&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 找到每个时间点上的2.5%、50%和97.5%分位点&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Quantile&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">function&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="nf">quantile&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">0.025&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0.975&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Sim.Q&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">apply&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Stoc&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Quantile&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">par&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">mar&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">4.2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">4&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">mgp&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">las&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cex&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">plot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Sim.Q[2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">type&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;l&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">axes&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">FALSE&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">xlab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;Year&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ylab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">expression&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">kappa&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">ylim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Sim.Q&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Sim.Q&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">las&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">at&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2010&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2040&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-70&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">-10&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Sim.Q[1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Sim.Q[3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 理论标准误&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Central&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Forecast&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">pred&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">SE.Stoch&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Forecast&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">se&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">PI.Up&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Central&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">1.96&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">SE.Stoch&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">PI.Dn&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Central&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="m">1.96&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">SE.Stoch&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Central&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">PI.Up&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">PI.Dn&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">legend&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;bottomleft&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">legend&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;95% PI: theoretical&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;95% PI: simulated&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">bty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;n&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="plot of chunk unnamed-chunk-10" srcset="
/post/usingr/figure/unnamed-chunk-10-1_hue7f621177234a7f2c89e399b19cec041_5561_bfe8dd34928105391b81883808913961.webp 400w,
/post/usingr/figure/unnamed-chunk-10-1_hue7f621177234a7f2c89e399b19cec041_5561_22652d37d63880bd4771d118eba2beac.webp 760w,
/post/usingr/figure/unnamed-chunk-10-1_hue7f621177234a7f2c89e399b19cec041_5561_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yuanzhuang.site/post/usingr/figure/unnamed-chunk-10-1_hue7f621177234a7f2c89e399b19cec041_5561_bfe8dd34928105391b81883808913961.webp"
width="504"
height="504"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>整体来看，各个分类点的距离也比较相近。但是需要注意，上面的图形只考虑到了stochastic error（随机误差项带来的后续波动），没有考虑到parameter error（估计量
$\hat{\mu}$本身的方差）。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="nf">set.seed&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">N.Sim&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="m">50&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Mat.Sim&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">matrix&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">rep&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">rnorm&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">N.Sim&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Mu&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Sigma2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="nf">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n.y&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">)),&lt;/span> &lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">nrow&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N.Sim&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ncol&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Param&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Kappa.hat[n.y]&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="nf">apply&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Mat.Sim&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cumsum&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">par&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">mar&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">4.2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">4&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">mgp&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">las&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cex&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">matplot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Param&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">type&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;l&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">col&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">xlab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;Year&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ylab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">expression&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">kappa&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">axes&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">FALSE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">las&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">at&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2010&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2040&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-70&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">-10&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="plot of chunk unnamed-chunk-11" srcset="
/post/usingr/figure/unnamed-chunk-11-1_hu04958f31bcca02abd3f77cf439139dc8_9332_5e644fbea1efd29f40c2957410691386.webp 400w,
/post/usingr/figure/unnamed-chunk-11-1_hu04958f31bcca02abd3f77cf439139dc8_9332_c64f8300c2979942fab03d82232ea48e.webp 760w,
/post/usingr/figure/unnamed-chunk-11-1_hu04958f31bcca02abd3f77cf439139dc8_9332_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yuanzhuang.site/post/usingr/figure/unnamed-chunk-11-1_hu04958f31bcca02abd3f77cf439139dc8_9332_5e644fbea1efd29f40c2957410691386.webp"
width="504"
height="504"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">set.seed&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">N.Sim&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="m">5000&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Mat.Sim&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">matrix&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">rep&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">rnorm&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">N.Sim&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Mu&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Sigma2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="nf">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n.y&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">)),&lt;/span> &lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">nrow&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N.Sim&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ncol&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Param&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Kappa.hat[n.y]&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="nf">apply&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Mat.Sim&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cumsum&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Sim.Q.Param&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">apply&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Param&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Quantile&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">par&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">mar&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">4.2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">4&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">mgp&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">las&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cex&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">plot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Sim.Q.Param[2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">type&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;l&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">axes&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">FALSE&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">xlab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;Year&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ylab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">expression&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">kappa&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ylim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Sim.Q.Param&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Sim.Q.Param&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">las&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">at&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2010&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2040&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-70&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">-10&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Sim.Q.Param[1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Sim.Q.Param[3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Central&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">SE&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="nf">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Sarima.out&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">fit&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">sigma2&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n.y&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">CI.Up&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Central&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">1.96&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">SE&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">CI.Dn&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Central&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="m">1.96&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">SE&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">CI.Up&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">CI.Dn&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">legend&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;bottomleft&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">legend&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;95% CI: theoretical&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;95% CI: simulated&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">bty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;n&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="plot of chunk unnamed-chunk-11" srcset="
/post/usingr/figure/unnamed-chunk-11-2_huce1eda72093202b47013b16a57a8a1c6_5384_ee7f2e0808d7cf74420c22de2f61a366.webp 400w,
/post/usingr/figure/unnamed-chunk-11-2_huce1eda72093202b47013b16a57a8a1c6_5384_fe6a7e41020c9dc34e1c0e918c4c39ce.webp 760w,
/post/usingr/figure/unnamed-chunk-11-2_huce1eda72093202b47013b16a57a8a1c6_5384_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yuanzhuang.site/post/usingr/figure/unnamed-chunk-11-2_huce1eda72093202b47013b16a57a8a1c6_5384_ee7f2e0808d7cf74420c22de2f61a366.webp"
width="504"
height="504"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>总之，对于任意的
$\hat{\kappa}_{n_y+m}$，我们有：
$$
\begin{aligned}
\operatorname{Var}\left(\hat{\kappa}_{n_y+m}\right) &amp; =\operatorname{Var}\left(m \hat{\mu}+\sum_{j=1}^m \epsilon_{n_y+j}\right) \\
&amp; =m^2 \operatorname{Var}(\hat{\mu})+\operatorname{Var}\left(\sum_{j=1}^m \epsilon_{n_y+j}\right) \\
&amp; =m^2 \frac{\sigma^2}{n_y-1}+m \sigma^2
\end{aligned}
$$
两种error加在一起，才是最终的标准误。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="nf">set.seed&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2120223132&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">N.Sim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">100&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># &lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># We simulate the stochastic error with mean zero&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># and then add the simulated values of mu&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Mat.Sim.1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">matrix&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">rnorm&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">N.Sim&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Sigma2&lt;/span>&lt;span class="p">)),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">nrow&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N.Sim&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ncol&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Mat.Sim.2&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">matrix&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">rep&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">rnorm&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">N.Sim&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Mu&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Sigma2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="nf">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n.y&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">)),&lt;/span> &lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">nrow&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N.Sim&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ncol&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Mat.Sim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Mat.Sim.1&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">Mat.Sim.2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Both&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Kappa.hat[n.y]&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="nf">apply&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Mat.Sim&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cumsum&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># &lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">par&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">mar&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">4.2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">4&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">mgp&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">las&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cex&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">matplot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Both&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">type&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;l&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">col&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">xlab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;Year&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ylab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">expression&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">kappa&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">axes&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">FALSE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">las&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">at&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2010&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2040&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-70&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">-10&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="plot of chunk unnamed-chunk-12" srcset="
/post/usingr/figure/unnamed-chunk-12-1_hu9e45813a617e300fc5bac6a423e72cbf_14341_cdc319d43d3aebd82d3b49d30e335f7e.webp 400w,
/post/usingr/figure/unnamed-chunk-12-1_hu9e45813a617e300fc5bac6a423e72cbf_14341_0be594dc27b340778d47e7a7da0a98d1.webp 760w,
/post/usingr/figure/unnamed-chunk-12-1_hu9e45813a617e300fc5bac6a423e72cbf_14341_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yuanzhuang.site/post/usingr/figure/unnamed-chunk-12-1_hu9e45813a617e300fc5bac6a423e72cbf_14341_cdc319d43d3aebd82d3b49d30e335f7e.webp"
width="504"
height="504"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">set.seed&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2120223132&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">N.Sim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1000&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Mat.Sim.1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">matrix&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">rnorm&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">N.Sim&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Sigma2&lt;/span>&lt;span class="p">)),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">nrow&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N.Sim&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ncol&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Mat.Sim.2&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">matrix&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">rep&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">rnorm&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">N.Sim&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Mu&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Sigma2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="nf">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n.y&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">)),&lt;/span> &lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">nrow&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N.Sim&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ncol&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Mat.Sim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Mat.Sim.1&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">Mat.Sim.2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Both&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Kappa.hat[n.y]&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="nf">apply&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Mat.Sim&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cumsum&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Sim.Q.Both&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">apply&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Both&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Quantile&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># &lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">par&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">mar&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">4.2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">4&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">mgp&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">las&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cex&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">plot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Sim.Q.Both[2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">type&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;l&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">axes&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">FALSE&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">xlab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;Year&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ylab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">expression&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">kappa&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ylim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Sim.Q.Both&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Sim.Q.Both&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">las&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">at&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2010&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2040&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-70&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">-10&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Sim.Q.Both[1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Sim.Q.Both[3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Central&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">VAR1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">Sigma2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">VAR2&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="n">N.Ahead&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">^2&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n.y&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">Sigma2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">SE.Both&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">VAR1&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">VAR2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">PI.CI.Up&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Central&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">1.96&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">SE.Both&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">PI.CI.Dn&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Central&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="m">1.96&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">SE.Both&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">PI.CI.Up&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Range&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">PI.CI.Dn&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">legend&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;bottomleft&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">legend&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;95%: theoretical&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;95%: simulated&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">bty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;n&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="plot of chunk unnamed-chunk-12" srcset="
/post/usingr/figure/unnamed-chunk-12-2_hu70bd60b5972402ce23eed038cfa6a551_5644_93c93c5dc91c1b548ffe56445066f152.webp 400w,
/post/usingr/figure/unnamed-chunk-12-2_hu70bd60b5972402ce23eed038cfa6a551_5644_182f32d5f502f4d37ab9ad4da35d884e.webp 760w,
/post/usingr/figure/unnamed-chunk-12-2_hu70bd60b5972402ce23eed038cfa6a551_5644_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yuanzhuang.site/post/usingr/figure/unnamed-chunk-12-2_hu70bd60b5972402ce23eed038cfa6a551_5644_93c93c5dc91c1b548ffe56445066f152.webp"
width="504"
height="504"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h1 id="3-使用pspline预测未来死亡率一维预测">3. 使用Pspline预测未来死亡率（一维预测）&lt;/h1>
&lt;p>如前面课程所述，Pspline是一个带惩罚项的方法。因为这里只是一个一维预测，所以我们需要重读一遍死亡率，用美国1961-2009年70岁女性的数据：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 直接从数据中拿到US1961-2009年70岁女性的死亡数和暴露数&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Death.Data&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">Read.HMD&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;C:\\Users\\lenovo\\Desktop\\lt\\HMD_USA_Deaths.txt&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Exposure.Data&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">Read.HMD&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;C:\\Users\\lenovo\\Desktop\\lt\\HMD_USA_Exposures.txt&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Age&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Death.Data&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">Age&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Year&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Death.Data&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">Year&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 拿到1961-2009年的70岁女性数据&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">YEAR&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="m">1961&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="m">2009&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Dth&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Death.Data&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">Female.Matrix[Age&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="m">70&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">Year&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="m">1960&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">Year&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="m">2010&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Exp&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Exposure.Data&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">Female.Matrix[Age&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="m">70&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">Year&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="m">1960&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;amp;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">(&lt;/span>&lt;span class="n">Year&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="m">2010&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Obs&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">log&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Dth&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Exp&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>在Pspline方法中，拟合与预测可以同时发生。怎么做呢？&lt;/p>
&lt;ul>
&lt;li>把年份加以扩充，要预测多少年就加多少年上去，生成变量&lt;code>YEAR.NEW&lt;/code>；&lt;/li>
&lt;li>在&lt;code>Mort1Dsmooth&lt;/code>函数中设置权重，预测年的权重为0，历史年的权重为1，表明仅用历史拟合；&lt;/li>
&lt;li>预测年的死亡数设置为1（其实可以设置为任何数）；&lt;/li>
&lt;li>预测年的暴露数设置为2（和死亡数一样，可以设置为任何数）；&lt;/li>
&lt;li>使用过度分散。&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 预测年的权重为0，历史年的权重为1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Weight&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">rep&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">length&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR&lt;/span>&lt;span class="p">)),&lt;/span> &lt;span class="nf">rep&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">25&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 年份扩充&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">YEAR.NEW&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">YEAR[1]&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR&lt;/span>&lt;span class="nf">[length&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">]&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">25&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 预测年的死亡数设置为1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Dth.NEW&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Dth&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">rep&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">25&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 预测年的暴露数设置为2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Exp.NEW&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Exp&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">rep&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">25&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 过度分散&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Smooth.Forecast&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">Mort1Dsmooth&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">y&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Dth.NEW&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">offset&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">log&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Exp.NEW&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">w&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Weight&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">over&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">TRUE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">## Warning: Interpolation and/or extrapolation is taking place
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>让我们来看看结果：这个模型本质上就相当于回归系数的线性外推：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="n">Range&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">max&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="nf">min&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 问题出在floor(length(x)/5)这里，将整体补上range/5做一个近似&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Xmax&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">max&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">0.01&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">Range&lt;/span> &lt;span class="c1"># Technical: look at Mort1Dsmooth code&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Xmin&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">min&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="m">0.01&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">Range&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ndx&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Smooth.Forecast&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">ndx&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Delta&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">Xmax&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">Xmin&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">ndx&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Knots&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Xmin&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Xmax&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Delta&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Coef&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Smooth.Forecast&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">coef&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 验证线性外推，做一阶差分&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">cbind&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">Knots&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">Coef&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">diff&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Coef&lt;/span>&lt;span class="p">)))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">## Coef
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## [1,] 0.000 -3.496457 0.00000000
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## [2,] 1960.270 -3.528606 -0.03214908
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## [3,] 1965.589 -3.569153 -0.04054709
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## [4,] 1970.907 -3.603589 -0.03443595
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## [5,] 1976.226 -3.728126 -0.12453715
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## [6,] 1981.544 -3.827552 -0.09942625
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## [7,] 1986.863 -3.850877 -0.02332484
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## [8,] 1992.181 -3.898453 -0.04757661
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## [9,] 1997.500 -3.921005 -0.02255162
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## [10,] 2002.819 -3.973485 -0.05247998
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## [11,] 2008.137 -4.102135 -0.12864956
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## [12,] 2013.456 -4.235561 -0.13342600
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## [13,] 2018.774 -4.368989 -0.13342846
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## [14,] 2024.093 -4.502418 -0.13342846
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## [15,] 2029.411 -4.635846 -0.13342846
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## [16,] 2034.730 -4.769274 -0.13342846
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## [17,] 0.000 -4.902703 -0.13342846
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="nf">par&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">mar&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">4.2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">4&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">mgp&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">las&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cex&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">plot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Obs&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">xlab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;Year&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">xlim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1960&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2035&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">ylim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-4.8&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">-3.5&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ylab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;log(mortality)&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">axes&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">FALSE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">las&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">at&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1950&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2040&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">10&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-5.2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">-3.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">0.1&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Smooth.Forecast&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">logm&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">points&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Knots&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Coef[2&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">length&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Coef&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">pch&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">15&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">legend&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1960&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">-4.2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">legend&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;Observed mortality&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;P-spline regression&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s">&amp;#34;P-spline coefficients&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">-1&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">-1&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pch&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">-1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">15&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">bty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;n&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="plot of chunk unnamed-chunk-15" srcset="
/post/usingr/figure/unnamed-chunk-15-1_hua083270707d584d31340401d8bddb868_5770_60829aa138a3f43e7d134ced25811471.webp 400w,
/post/usingr/figure/unnamed-chunk-15-1_hua083270707d584d31340401d8bddb868_5770_13459a98d71e7dfdaa7afd937b112415.webp 760w,
/post/usingr/figure/unnamed-chunk-15-1_hua083270707d584d31340401d8bddb868_5770_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yuanzhuang.site/post/usingr/figure/unnamed-chunk-15-1_hua083270707d584d31340401d8bddb868_5770_60829aa138a3f43e7d134ced25811471.webp"
width="504"
height="504"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>下面，我们简单说一下为什么这样做会自然地做线性外推。首先，优化的目标函数是：
$$
\ell_p(\boldsymbol{\theta})=\ell(\boldsymbol{\theta})-\frac{1}{2} \lambda P(\boldsymbol{\theta})
$$
我们让预测年的权重为0，所以预测年的加入不会影响似然函数
$\ell(\boldsymbol{\theta})$。现在我们假设已经得到了拟合年的系数预测
$\boldsymbol{\theta} = (\theta_1, \cdots,\theta_c)^{\prime}$，现在看加入第一个预测年的系数是多少时，能够让惩罚项
$P(\boldsymbol{\theta})$继续保持最小。一般来说，为了保障光滑程度，惩罚项与系数的二次差分正相关。这时，只要让二次差分最小（也即是为0），即可保证惩罚项的最小。&lt;/p>
$$
\left(\hat{\theta}_{c-1}-2 \hat{\theta}_c+\theta_{c+1}\right)^2=0 \\
\theta_{c+1} = 2 \hat{\theta}_c - \hat{\theta}_{c-1}
$$
&lt;p>所以系数在做线性外推，参照是拟合年的最后两个系数。刚才的推导其实有点复杂，但是我们可以轻易地使用&lt;code>predict()&lt;/code>进行预测：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="n">Smooth.Fit&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">Mort1Dsmooth&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">YEAR&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">y&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Dth&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">offset&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">log&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Exp&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">over&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">TRUE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 进行预测&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 惩罚项基于二阶差分（default）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Smooth.Forecast&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">predict&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Smooth.Fit&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">newdata&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">se.fit&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">TRUE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">par&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">mar&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">4.2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">4&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">mgp&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">las&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cex&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">plot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Obs&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">xlab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;Year&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">xlim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1960&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2035&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">ylim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-4.9&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">-3.4&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ylab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;log(mortality)&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">axes&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">FALSE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">las&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">at&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1950&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2040&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">10&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-5.0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">-3.4&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">0.2&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Smooth.Forecast&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">fit&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Smooth.Forecast&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">fit&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">1.96&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">Smooth.Forecast&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">se.fit&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Smooth.Forecast&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">fit&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="m">1.96&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">Smooth.Forecast&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">se.fit&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">legend&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1960&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">-4.2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">legend&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;Observed mortality&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;Fit and forecast&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s">&amp;#34;95% CI&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pch&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">-1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">-1&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">bty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;n&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="plot of chunk unnamed-chunk-16" srcset="
/post/usingr/figure/unnamed-chunk-16-1_hufad4eecb75824c1bcb5d3959d92024b7_5835_bdf3adac65192d1a35cfce945149d88b.webp 400w,
/post/usingr/figure/unnamed-chunk-16-1_hufad4eecb75824c1bcb5d3959d92024b7_5835_9b55fe6e282a77b326f9aafb7b4c4a3f.webp 760w,
/post/usingr/figure/unnamed-chunk-16-1_hufad4eecb75824c1bcb5d3959d92024b7_5835_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yuanzhuang.site/post/usingr/figure/unnamed-chunk-16-1_hufad4eecb75824c1bcb5d3959d92024b7_5835_bdf3adac65192d1a35cfce945149d88b.webp"
width="504"
height="504"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>使用不同阶数的差分，对于预测的结果影响非常大。如果使用一阶差分，那么预测期的死亡率将会被固定为常数。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 进行预测&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 惩罚项基于一阶差分（default）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Smooth.Fit1&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">Mort1Dsmooth&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">YEAR&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">y&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Dth&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">offset&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">log&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Exp&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="n">pord&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">over&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">TRUE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Smooth.Forecast1&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">predict&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Smooth.Fit1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">newdata&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">pord&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">se.fit&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">TRUE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">par&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">mar&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">4.2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">4&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">mgp&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">0&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">las&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cex&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">plot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Obs&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">xlab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;Year&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">xlim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1960&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2035&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">ylim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-4.9&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">-3.4&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ylab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;log(mortality)&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">axes&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">FALSE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">las&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">at&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1950&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2040&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">10&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">axis&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">seq&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">-5.0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">-3.4&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">0.2&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">tcl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">-0.4&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Smooth.Forecast1&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">fit&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 惩罚项基于二阶差分&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Smooth.Fit2&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">Mort1Dsmooth&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">YEAR&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">y&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Dth&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">offset&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">log&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Exp&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="n">pord&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">over&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">TRUE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Smooth.Forecast2&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">predict&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Smooth.Fit2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">newdata&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">se.fit&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">TRUE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Smooth.Forecast2&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">fit&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 惩罚项基于三阶差分&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Smooth.Fit3&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">Mort1Dsmooth&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">YEAR&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">y&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Dth&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">offset&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">log&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Exp&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="n">pord&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">over&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">TRUE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Smooth.Forecast3&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">predict&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Smooth.Fit3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">newdata&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">pord&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">se.fit&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">TRUE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Smooth.Forecast3&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">fit&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">3&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">legend&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;bottomleft&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">legend&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;order of penalty = 1&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;order of penalty = 2&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s">&amp;#34;order of penalty = 3&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">3&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">bty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;n&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="plot of chunk unnamed-chunk-17" srcset="
/post/usingr/figure/unnamed-chunk-17-1_huea705fc3f4f3e8d03fc3abc9dece36fc_5039_b9e42f691d33c1c3d096c0499dd54fef.webp 400w,
/post/usingr/figure/unnamed-chunk-17-1_huea705fc3f4f3e8d03fc3abc9dece36fc_5039_da72617e7725bc06d9df8facdd767000.webp 760w,
/post/usingr/figure/unnamed-chunk-17-1_huea705fc3f4f3e8d03fc3abc9dece36fc_5039_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yuanzhuang.site/post/usingr/figure/unnamed-chunk-17-1_huea705fc3f4f3e8d03fc3abc9dece36fc_5039_b9e42f691d33c1c3d096c0499dd54fef.webp"
width="504"
height="504"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>可以看出，三阶差分就已经能得到很好的效果了，能够得出一个弯曲的死亡率曲线。&lt;/p>
&lt;h1 id="4-cbd模型预测">4. CBD模型预测&lt;/h1>
&lt;p>令
$\kappa_y=\left(\kappa_y^{(1)}, \kappa_y^{(2)}\right)^{\prime}$，则可以假设两个
$\kappa$满足二维的带漂移项随机游走：
$$
\boldsymbol{\kappa}_y=\boldsymbol{\mu}+\boldsymbol{\kappa}_{y-1}+\boldsymbol{\epsilon}_y, y=2, \ldots, n_y
$$
差分一次就能得到估计，只不过是用矩阵表示了而已。中间的很多表示都能使用Cronecker积直接进行表示，这里就不赘述了。&lt;/p>
&lt;p>首先读入数据：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="n">Death.Data&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">Read.HMD&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;C:\\Users\\lenovo\\Desktop\\lt\\leecarter\\Lee-Carter Application\\HMD_UK_Deaths_2013.txt&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Exposure.Data&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">Read.HMD&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;C:\\Users\\lenovo\\Desktop\\lt\\leecarter\\Lee-Carter Application\\HMD_UK_Exposures_2013.txt&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 年龄和年份，一个是所有年龄，一个是目标年龄&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Age&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Death.Data&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">Age&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Year&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Death.Data&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">Year&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">AGE&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="m">50&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="m">90&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">YEAR&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="m">1961&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="m">2013&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 1961-2013年，英国50-90岁男性&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Dth&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Death.Data&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">Male.Matrix&lt;/span>&lt;span class="nf">[&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">49&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="n">Age&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">Age&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="m">91&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">(&lt;/span>&lt;span class="m">1960&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="n">Year&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">Year&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="m">2014&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Exp&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Exposure.Data&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">Male.Matrix&lt;/span>&lt;span class="nf">[&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">49&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="n">Age&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">Age&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="m">91&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">(&lt;/span>&lt;span class="m">1960&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="n">Year&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">Year&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="m">2014&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Obs是中心死亡率取对数&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Obs&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">log&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Dth&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Exp&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 取得死亡率矩阵的维度&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n.x&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">nrow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Dth&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n.y&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">ncol&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Dth&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>接着做一个Poission glm：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Convert data to vector form&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Dth.V&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Dth&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Exp.V&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Exp&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Obtain model matrix for CBD model&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">X1&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">kronecker&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">diag&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n.y&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="nf">rep&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">n.x&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Age.mean&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">AGE&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="nf">mean&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">AGE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">X2&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">kronecker&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">diag&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n.y&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">Age.mean&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">X&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">cbind&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">X1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">X2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Fit model&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">CBD.Male&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">glm&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Dth.V&lt;/span> &lt;span class="o">~&lt;/span> &lt;span class="m">-1&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">X&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">offset&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">log&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Exp.V&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">family&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">poisson&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Coef&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">CBD.Male&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">coef&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Kappa.1&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Coef[1&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="n">n.y]&lt;/span> &lt;span class="c1"># First n.y values&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Kappa.2&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="n">Coef[&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="n">n.y&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">]&lt;/span> &lt;span class="c1"># Drop first n.y values&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">CBD.Male&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">dev&lt;/span> &lt;span class="c1"># Deviance&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">## [1] 39251.92
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Fitted log(mortality) from (a) fitted deaths (b) X kappa&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Fitted.M.hat&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">matrix&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">log&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">CBD.Male&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">fit&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Exp.V&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">n.x&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">n.y&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Fitted.M.Hat&lt;/span> &lt;span class="o">&amp;lt;-&lt;/span> &lt;span class="nf">matrix&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">X&lt;/span> &lt;span class="o">%*%&lt;/span> &lt;span class="n">CBD.Male&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">coef&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">n.x&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">n.y&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">max&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">abs&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Fitted.M.hat&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">Fitted.M.Hat&lt;/span>&lt;span class="p">))&lt;/span> &lt;span class="c1"># Equal of course&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">## [1] 1.776357e-15
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>随后就可以对参数做出估计：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 二阶差分后均值可以求出\hat{\mu}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Diff&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">cbind&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">diff&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.1&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="nf">diff&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.2&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Mu&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">apply&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Diff&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">mean&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 也可以按照书上公式进行计算&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Mu.2&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.1[n.y]&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">Kappa.1[1]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Kappa.2[n.y]&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">Kappa.2[1]&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n.y&lt;/span>&lt;span class="m">-1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">max&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">abs&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Mu&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">Mu.2&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">## [1] 0
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 使用样本协方差矩阵求得\hat{\sigma}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">S2&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">apply&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Diff&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">var&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Cov&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">cov&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Diff[&lt;/span> &lt;span class="p">,&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Diff[&lt;/span> &lt;span class="p">,&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Sigma&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">matrix&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">S2[1]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Cov&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Cov&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">S2[2]&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Rho&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Cov&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="nf">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Sigma[1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">Sigma[2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 也可以直接套公式&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Sigma.2&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">matrix&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Sigma.2[1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="n">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">sum&lt;/span>&lt;span class="p">((&lt;/span>&lt;span class="nf">diff&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">Mu[1]&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">^2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n.y&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Sigma.2[2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="n">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">sum&lt;/span>&lt;span class="p">((&lt;/span>&lt;span class="nf">diff&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">Mu[1]&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">diff&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.2&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">-&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Mu[2]&lt;/span>&lt;span class="p">))&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n.y&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Sigma.2[1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="n">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Sigma.2[2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="n">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Sigma.2[2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="n">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">sum&lt;/span>&lt;span class="p">((&lt;/span>&lt;span class="nf">diff&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.2&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">Mu[2]&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">^2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n.y&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">max&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">abs&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Sigma&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">Sigma.2&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">## [1] 1.084202e-19
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>最后，就可以用kronecker积形式的CBD模型对未来做出预测：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Forecasting - follows text closely&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">n.f&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">25&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">I.f&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">diag&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n.f&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">X1.f&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">kronecker&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">I.f&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">rep&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">n.x&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">X2.f&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">kronecker&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">I.f&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Age.mean&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">X.f&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">cbind&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">X1.f&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">X2.f&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">c.f&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="n">n.f&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Kappa.f&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.1[n.y]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Kappa.2[n.y]&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">Mu&lt;/span> &lt;span class="o">%*%&lt;/span> &lt;span class="nf">t&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">c.f&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Kappa.f&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">t&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.f&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Forecast&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">X.f&lt;/span> &lt;span class="o">%*%&lt;/span> &lt;span class="n">Kappa.f&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">dim&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Forecast&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n.x&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">n.f&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Var.Mat.Forecast&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n.y&lt;/span> &lt;span class="m">-1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">X.f&lt;/span> &lt;span class="o">%*%&lt;/span> &lt;span class="nf">kronecker&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Sigma&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">c.f&lt;/span> &lt;span class="o">%*%&lt;/span> &lt;span class="nf">t&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">c.f&lt;/span>&lt;span class="p">))&lt;/span> &lt;span class="o">%*%&lt;/span> &lt;span class="nf">t&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">X.f&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Var.Forecast&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">diag&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Var.Mat.Forecast&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">dim&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Var.Forecast&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n.x&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">n.f&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">SD.Forecast&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Var.Forecast&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">SD.Forecast.CBD&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">SD.Forecast&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># \kappa_1预测&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Forecast.Years&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">YEAR[n.y]&lt;/span>&lt;span class="m">+1&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR[n.y]&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="n">n.f&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">par&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">mfrow&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">mar&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">4.5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">4.5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">plot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Kappa.1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">xlab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;Year&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ylab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">expression&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">kappa[1]&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">xlim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Forecast.Years&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">ylim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">Kappa.f[1&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="n">n.f]&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">cex&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Forecast.Years&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Kappa.f[1&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="n">n.f]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">pch&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">16&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cex&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># \kappa_2预测&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">plot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Kappa.2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">xlab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;Year&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ylab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">expression&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">kappa[2]&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">xlim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Forecast.Years&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">ylim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Kappa.2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">Kappa.f[&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="n">n.f&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">cex&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Forecast.Years&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Kappa.f[&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="n">n.f&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">pch&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">16&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cex&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 选60和80岁分别看死亡率的预测&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Plot.Age&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">60&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">80&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">for&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">i&lt;/span> &lt;span class="n">in&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">){&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Plot.Row&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Plot.Age[i]&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="nf">min&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">AGE&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">plot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Obs[Plot.Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">xlim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR[1]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">YEAR[n.y]&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">n.f&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ylim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Obs[Plot.Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Forecast[Plot.Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">xlab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;Year&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ylab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">expression&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">paste&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;log(&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">mu&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s">&amp;#34;)&amp;#34;&lt;/span>&lt;span class="p">)))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">SD&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">SD.Forecast[Plot.Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Forecast.Years&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Forecast[Plot.Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Forecast.Years&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Forecast[Plot.Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">1.96&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">SD&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Forecast.Years&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Forecast[Plot.Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="m">1.96&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">SD&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">legend&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;bottomleft&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">legend&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">paste&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;Age =&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Plot.Age[i]&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">bty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;n&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="plot of chunk unnamed-chunk-21" srcset="
/post/usingr/figure/unnamed-chunk-21-1_hub5d5bbe3a03ed427e3bceab7bc687085_7295_76a3d519e250a9949f9dcdc2a68d2506.webp 400w,
/post/usingr/figure/unnamed-chunk-21-1_hub5d5bbe3a03ed427e3bceab7bc687085_7295_3a0560b97772fe3c99f9092c48b70191.webp 760w,
/post/usingr/figure/unnamed-chunk-21-1_hub5d5bbe3a03ed427e3bceab7bc687085_7295_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yuanzhuang.site/post/usingr/figure/unnamed-chunk-21-1_hub5d5bbe3a03ed427e3bceab7bc687085_7295_76a3d519e250a9949f9dcdc2a68d2506.webp"
width="504"
height="504"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h1 id="5-2d-pspline预测">5. 2D Pspline预测&lt;/h1>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Forecasting&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Fit.2d&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">Mort2Dsmooth&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">AGE&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">YEAR&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Dth&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">offset&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">log&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Exp&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">over&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">TRUE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Fit.2d&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">lambda&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Fit.2d&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">df&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Fit.2d&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">dev&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Fit.2d&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">psi2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">## [1] 1000.00000 316.22777 44.94686 10311.56693 4.84554
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="n">YEAR.NEW&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1961&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="m">2038&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">NEW.DATA&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">list&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">AGE&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">y&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Forecast.2d&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">predict&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Fit.2d&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">newdata&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">NEW.DATA&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Central&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Forecast.2d&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># &lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">par&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">mfrow&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">mar&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">4.5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">4.5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Age.Plot&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">60&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">75&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">90&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="c1"># Set plotting age&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">for&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">i&lt;/span> &lt;span class="n">in&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="m">3&lt;/span>&lt;span class="p">){&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Row&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Age.Plot[i]&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="nf">min&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">AGE&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">plot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR&lt;/span>&lt;span class="m">+0.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Obs[Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">xlim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ylim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Obs[Row&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Central[Row&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">xlab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;Year&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ylab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">expression&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">paste&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;log(&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">mu&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s">&amp;#34;)&amp;#34;&lt;/span>&lt;span class="p">)),&lt;/span> &lt;span class="n">cex&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">pch&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">16&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR.NEW&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Central[Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">legend&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;bottomleft&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">paste&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;Age =&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Age.Plot[i]&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">bty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;n&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># &lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">plot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">AGE&lt;/span>&lt;span class="m">+0.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Forecast.2d[&lt;/span> &lt;span class="p">,&lt;/span> &lt;span class="m">53&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">type&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;l&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">xlab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;Age&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ylab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">expression&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">paste&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;log(&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">mu&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s">&amp;#34;)&amp;#34;&lt;/span>&lt;span class="p">)),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ylim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Forecast.2d[&lt;/span> &lt;span class="p">,&lt;/span> &lt;span class="m">53&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Forecast.2d[&lt;/span> &lt;span class="p">,&lt;/span> &lt;span class="m">78&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">AGE&lt;/span>&lt;span class="m">+0.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Forecast.2d[&lt;/span> &lt;span class="p">,&lt;/span> &lt;span class="m">78&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">legend&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;topleft&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">legend&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;Year = 2013&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;Year = 2038&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">bty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;n&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="plot of chunk unnamed-chunk-22" srcset="
/post/usingr/figure/unnamed-chunk-22-1_hu38197babd2bfbf697f3435583db05638_7572_2c2c91c023eb22d34bb61e04ca315224.webp 400w,
/post/usingr/figure/unnamed-chunk-22-1_hu38197babd2bfbf697f3435583db05638_7572_b38f9de2cbbd348ea9943dcdec500114.webp 760w,
/post/usingr/figure/unnamed-chunk-22-1_hu38197babd2bfbf697f3435583db05638_7572_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yuanzhuang.site/post/usingr/figure/unnamed-chunk-22-1_hu38197babd2bfbf697f3435583db05638_7572_2c2c91c023eb22d34bb61e04ca315224.webp"
width="504"
height="504"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Now force lambdas&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Fit.2d&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">Mort2Dsmooth&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">AGE&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">YEAR&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Dth&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">offset&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nf">log&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Exp&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">method&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lambdas&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2000&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="m">4000&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">## Warning in !lambdas.check &amp;amp;&amp;amp; lambdas &amp;lt; 0: &amp;#39;length(x) = 2 &amp;gt; 1&amp;#39; in coercion to
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## &amp;#39;logical(1)&amp;#39;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Fit.2d&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">lambda&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Fit.2d&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">df&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Fit.2d&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">dev&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">Fit.2d&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">psi2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">## [1] 2000.000000 4000.000000 44.710172 10404.096261 4.888477
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="n">YEAR.NEW&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">1961&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="m">2038&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">NEW.DATA&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">list&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">AGE&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">y&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Forecast.2d&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">predict&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Fit.2d&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">newdata&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">NEW.DATA&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">se.fit&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">TRUE&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Forecast.Pspline&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Forecast.2d&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">fit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Central&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Forecast.2d&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">fit&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">SE&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">sqrt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Fit.2d&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">psi2&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">Forecast.2d&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">se.fit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">CI.UP&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Central&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">1.96&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">SE&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">CI.DN&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Central&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="m">1.96&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">SE&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Graphical output&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">par&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">mfrow&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">mar&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">4.5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">4.5&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Age.Plot&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">60&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">75&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">90&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="c1"># Set plotting age&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">for&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">i&lt;/span> &lt;span class="n">in&lt;/span> &lt;span class="m">1&lt;/span>&lt;span class="o">:&lt;/span>&lt;span class="m">3&lt;/span>&lt;span class="p">){&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Row&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Age.Plot[i]&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="nf">min&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">AGE&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="m">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">plot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Obs[Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">xlim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ylim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Obs[Row&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">CI.DN[Row&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">xlab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;Year&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ylab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">expression&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">paste&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;log(&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">mu&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s">&amp;#34;)&amp;#34;&lt;/span>&lt;span class="p">)),&lt;/span> &lt;span class="n">cex&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">0.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">pch&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">16&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Central[Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">CI.UP[Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">YEAR.NEW&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">CI.DN[Row&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">legend&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;bottomleft&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nf">paste&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;Age =&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Age.Plot[i]&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">bty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;n&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># &lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">plot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">AGE&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Forecast.2d&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">fit[&lt;/span> &lt;span class="p">,&lt;/span> &lt;span class="m">53&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">type&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;l&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">xlab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;Age&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ylab&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">expression&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">paste&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;log(&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">mu&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s">&amp;#34;)&amp;#34;&lt;/span>&lt;span class="p">)),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ylim&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Forecast.2d&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">fit[&lt;/span> &lt;span class="p">,&lt;/span> &lt;span class="m">53&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Forecast.2d&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">fit[&lt;/span> &lt;span class="p">,&lt;/span> &lt;span class="m">78&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">lines&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">AGE&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Forecast.2d&lt;/span>&lt;span class="o">$&lt;/span>&lt;span class="n">fit[&lt;/span> &lt;span class="p">,&lt;/span> &lt;span class="m">78&lt;/span>&lt;span class="n">]&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nf">legend&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;topleft&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">legend&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;Year = 2013&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;Year = 2038&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">lty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">lwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="m">2&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">bty&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;n&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="plot of chunk unnamed-chunk-23" srcset="
/post/usingr/figure/unnamed-chunk-23-1_hu0a2ae27740fdd970e047a1dbfbf6caee_7910_42b076affebdf8502bde8f34c4004d40.webp 400w,
/post/usingr/figure/unnamed-chunk-23-1_hu0a2ae27740fdd970e047a1dbfbf6caee_7910_97d2a0199088b94f2cbb11ff465c1a58.webp 760w,
/post/usingr/figure/unnamed-chunk-23-1_hu0a2ae27740fdd970e047a1dbfbf6caee_7910_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yuanzhuang.site/post/usingr/figure/unnamed-chunk-23-1_hu0a2ae27740fdd970e047a1dbfbf6caee_7910_42b076affebdf8502bde8f34c4004d40.webp"
width="504"
height="504"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p></description></item><item><title>Writing technical content in Markdown</title><link>https://yuanzhuang.site/post/writing-technical-content/</link><pubDate>Wed, 12 Jul 2023 00:00:00 +0000</pubDate><guid>https://yuanzhuang.site/post/writing-technical-content/</guid><description>&lt;p>Wowchemy is designed to give technical content creators a seamless experience. You can focus on the content and Wowchemy handles the rest.&lt;/p>
&lt;p>&lt;strong>Highlight your code snippets, take notes on math classes, and draw diagrams from textual representation.&lt;/strong>&lt;/p>
&lt;p>On this page, you&amp;rsquo;ll find some examples of the types of technical content that can be rendered with Wowchemy.&lt;/p>
&lt;h2 id="examples">Examples&lt;/h2>
&lt;h3 id="code">Code&lt;/h3>
&lt;p>Wowchemy supports a Markdown extension for highlighting code syntax. You can customize the styles under the &lt;code>syntax_highlighter&lt;/code> option in your &lt;code>config/_default/params.yaml&lt;/code> file.&lt;/p>
&lt;pre>&lt;code>```python
import pandas as pd
data = pd.read_csv(&amp;quot;data.csv&amp;quot;)
data.head()
```
&lt;/code>&lt;/pre>
&lt;p>renders as&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">pandas&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">pd&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">data&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pd&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">read_csv&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;data.csv&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">data&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">head&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="mindmaps">Mindmaps&lt;/h3>
&lt;p>Wowchemy supports a Markdown extension for mindmaps.&lt;/p>
&lt;p>Simply insert a Markdown &lt;code>markmap&lt;/code> code block and optionally set the height of the mindmap as shown in the example below.&lt;/p>
&lt;p>A simple mindmap defined as a Markdown list:&lt;/p>
&lt;div class="highlight">
&lt;pre class="chroma">
&lt;code>
```markmap {height="200px"}
- Hugo Modules
- wowchemy
- wowchemy-plugins-netlify
- wowchemy-plugins-netlify-cms
- wowchemy-plugins-reveal
```
&lt;/code>
&lt;/pre>
&lt;/div>
&lt;p>renders as&lt;/p>
&lt;div class="markmap" style="height: 200px;">
&lt;pre>- Hugo Modules
- wowchemy
- wowchemy-plugins-netlify
- wowchemy-plugins-netlify-cms
- wowchemy-plugins-reveal&lt;/pre>
&lt;/div>
&lt;p>A more advanced mindmap with formatting, code blocks, and math:&lt;/p>
&lt;div class="highlight">
&lt;pre class="chroma">
&lt;code>
```markmap
- Mindmaps
- Links
- [Wowchemy Docs](https://wowchemy.com/docs/)
- [Discord Community](https://discord.gg/z8wNYzb)
- [GitHub](https://github.com/wowchemy/wowchemy-hugo-themes)
- Features
- Markdown formatting
- **inline** ~~text~~ *styles*
- multiline
text
- `inline code`
-
```js
console.log('hello');
console.log('code block');
```
- Math: $x = {-b \pm \sqrt{b^2-4ac} \over 2a}$
```
&lt;/code>
&lt;/pre>
&lt;/div>
&lt;p>renders as&lt;/p>
&lt;div class="markmap" style="height: 500px;">
&lt;pre>- Mindmaps
- Links
- [Wowchemy Docs](https://wowchemy.com/docs/)
- [Discord Community](https://discord.gg/z8wNYzb)
- [GitHub](https://github.com/wowchemy/wowchemy-hugo-themes)
- Features
- Markdown formatting
- **inline** ~~text~~ *styles*
- multiline
text
- `inline code`
-
```js
console.log('hello');
console.log('code block');
```
- Math: $x = {-b \pm \sqrt{b^2-4ac} \over 2a}$&lt;/pre>
&lt;/div>
&lt;h3 id="charts">Charts&lt;/h3>
&lt;p>Wowchemy supports the popular &lt;a href="https://plot.ly/" target="_blank" rel="noopener">Plotly&lt;/a> format for interactive charts.&lt;/p>
&lt;p>Save your Plotly JSON in your page folder, for example &lt;code>line-chart.json&lt;/code>, and then add the &lt;code>{{&amp;lt; chart data=&amp;quot;line-chart&amp;quot; &amp;gt;}}&lt;/code> shortcode where you would like the chart to appear.&lt;/p>
&lt;p>Demo:&lt;/p>
&lt;div id="chart-381659427" class="chart">&lt;/div>
&lt;script>
(function() {
let a = setInterval( function() {
if ( typeof window.Plotly === 'undefined' ) {
return;
}
clearInterval( a );
Plotly.d3.json("./line-chart.json", function(chart) {
Plotly.plot('chart-381659427', chart.data, chart.layout, {responsive: true});
});
}, 500 );
})();
&lt;/script>
&lt;p>You might also find the &lt;a href="http://plotly-json-editor.getforge.io/" target="_blank" rel="noopener">Plotly JSON Editor&lt;/a> useful.&lt;/p>
&lt;h3 id="math">Math&lt;/h3>
&lt;p>Wowchemy supports a Markdown extension for $\LaTeX$ math. You can enable this feature by toggling the &lt;code>math&lt;/code> option in your &lt;code>config/_default/params.yaml&lt;/code> file.&lt;/p>
&lt;p>To render &lt;em>inline&lt;/em> or &lt;em>block&lt;/em> math, wrap your LaTeX math with &lt;code>{{&amp;lt; math &amp;gt;}}$...${{&amp;lt; /math &amp;gt;}}&lt;/code> or &lt;code>{{&amp;lt; math &amp;gt;}}$$...$${{&amp;lt; /math &amp;gt;}}&lt;/code>, respectively. (We wrap the LaTeX math in the Wowchemy &lt;em>math&lt;/em> shortcode to prevent Hugo rendering our math as Markdown. The &lt;em>math&lt;/em> shortcode is new in v5.5-dev.)&lt;/p>
&lt;p>Example &lt;strong>math block&lt;/strong>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-latex" data-lang="latex">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">{{&lt;/span>&amp;lt; math &amp;gt;&lt;span class="nb">}}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="sb">$$&lt;/span>&lt;span class="nb">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">&lt;/span>&lt;span class="nv">\gamma&lt;/span>&lt;span class="nb">_{n} &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\frac&lt;/span>&lt;span class="nb">{ &lt;/span>&lt;span class="nv">\left&lt;/span>&lt;span class="nb"> | &lt;/span>&lt;span class="nv">\left&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nv">\mathbf&lt;/span>&lt;span class="nb"> x_{n} &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\mathbf&lt;/span>&lt;span class="nb"> x_{n&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">} &lt;/span>&lt;span class="nv">\right&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">)&lt;/span>&lt;span class="nb">^T &lt;/span>&lt;span class="nv">\left&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">[&lt;/span>&lt;span class="nv">\nabla&lt;/span>&lt;span class="nb"> F &lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nv">\mathbf&lt;/span>&lt;span class="nb"> x_{n}&lt;/span>&lt;span class="o">)&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\nabla&lt;/span>&lt;span class="nb"> F &lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nv">\mathbf&lt;/span>&lt;span class="nb"> x_{n&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">}&lt;/span>&lt;span class="o">)&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\right&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">]&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\right&lt;/span>&lt;span class="nb"> |}{&lt;/span>&lt;span class="nv">\left&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\|\nabla&lt;/span>&lt;span class="nb"> F&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nv">\mathbf&lt;/span>&lt;span class="nb">{x}_{n}&lt;/span>&lt;span class="o">)&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\nabla&lt;/span>&lt;span class="nb"> F&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nv">\mathbf&lt;/span>&lt;span class="nb">{x}_{n&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">}&lt;/span>&lt;span class="o">)&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\right&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\|&lt;/span>&lt;span class="nb">^&lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="nb">}
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">&lt;/span>&lt;span class="s">$$&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">{{&lt;/span>&amp;lt; /math &amp;gt;&lt;span class="nb">}}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
$$\gamma_{n} = \frac{ \left | \left (\mathbf x_{n} - \mathbf x_{n-1} \right )^T \left [\nabla F (\mathbf x_{n}) - \nabla F (\mathbf x_{n-1}) \right ] \right |}{\left \|\nabla F(\mathbf{x}_{n}) - \nabla F(\mathbf{x}_{n-1}) \right \|^2}$$
&lt;p>Example &lt;strong>inline math&lt;/strong> &lt;code>{{&amp;lt; math &amp;gt;}}$\nabla F(\mathbf{x}_{n})${{&amp;lt; /math &amp;gt;}}&lt;/code> renders as
$\nabla F(\mathbf{x}_{n})$.&lt;/p>
&lt;p>Example &lt;strong>multi-line math&lt;/strong> using the math linebreak (&lt;code>\\&lt;/code>):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-latex" data-lang="latex">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">{{&lt;/span>&amp;lt; math &amp;gt;&lt;span class="nb">}}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="sb">$$&lt;/span>&lt;span class="nb">f&lt;/span>&lt;span class="o">(&lt;/span>&lt;span class="nb">k;p_{&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="nb">}^{&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="nb">}&lt;/span>&lt;span class="o">)&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\begin&lt;/span>&lt;span class="nb">{cases}p_{&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="nb">}^{&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="nb">} &amp;amp; &lt;/span>&lt;span class="nv">\text&lt;/span>&lt;span class="nb">{if }k&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">, &lt;/span>&lt;span class="nv">\\&lt;/span>&lt;span class="nb">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="nb">p_{&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="nb">}^{&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="nb">} &amp;amp; &lt;/span>&lt;span class="nv">\text&lt;/span>&lt;span class="nb">{if }k&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="nb">.&lt;/span>&lt;span class="nv">\end&lt;/span>&lt;span class="nb">{cases}&lt;/span>&lt;span class="s">$$&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">{{&lt;/span>&amp;lt; /math &amp;gt;&lt;span class="nb">}}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
$$
f(k;p_{0}^{*}) = \begin{cases}p_{0}^{*} &amp; \text{if }k=1, \\
1-p_{0}^{*} &amp; \text{if }k=0.\end{cases}
$$
&lt;h3 id="diagrams">Diagrams&lt;/h3>
&lt;p>Wowchemy supports a Markdown extension for diagrams. You can enable this feature by toggling the &lt;code>diagram&lt;/code> option in your &lt;code>config/_default/params.toml&lt;/code> file or by adding &lt;code>diagram: true&lt;/code> to your page front matter.&lt;/p>
&lt;p>An example &lt;strong>flowchart&lt;/strong>:&lt;/p>
&lt;pre>&lt;code>```mermaid
graph TD
A[Hard] --&amp;gt;|Text| B(Round)
B --&amp;gt; C{Decision}
C --&amp;gt;|One| D[Result 1]
C --&amp;gt;|Two| E[Result 2]
```
&lt;/code>&lt;/pre>
&lt;p>renders as&lt;/p>
&lt;div class="mermaid">graph TD
A[Hard] -->|Text| B(Round)
B --> C{Decision}
C -->|One| D[Result 1]
C -->|Two| E[Result 2]
&lt;/div>
&lt;p>An example &lt;strong>sequence diagram&lt;/strong>:&lt;/p>
&lt;pre>&lt;code>```mermaid
sequenceDiagram
Alice-&amp;gt;&amp;gt;John: Hello John, how are you?
loop Healthcheck
John-&amp;gt;&amp;gt;John: Fight against hypochondria
end
Note right of John: Rational thoughts!
John--&amp;gt;&amp;gt;Alice: Great!
John-&amp;gt;&amp;gt;Bob: How about you?
Bob--&amp;gt;&amp;gt;John: Jolly good!
```
&lt;/code>&lt;/pre>
&lt;p>renders as&lt;/p>
&lt;div class="mermaid">sequenceDiagram
Alice->>John: Hello John, how are you?
loop Healthcheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts!
John-->>Alice: Great!
John->>Bob: How about you?
Bob-->>John: Jolly good!
&lt;/div>
&lt;p>An example &lt;strong>Gantt diagram&lt;/strong>:&lt;/p>
&lt;pre>&lt;code>```mermaid
gantt
section Section
Completed :done, des1, 2014-01-06,2014-01-08
Active :active, des2, 2014-01-07, 3d
Parallel 1 : des3, after des1, 1d
Parallel 2 : des4, after des1, 1d
Parallel 3 : des5, after des3, 1d
Parallel 4 : des6, after des4, 1d
```
&lt;/code>&lt;/pre>
&lt;p>renders as&lt;/p>
&lt;div class="mermaid">gantt
section Section
Completed :done, des1, 2014-01-06,2014-01-08
Active :active, des2, 2014-01-07, 3d
Parallel 1 : des3, after des1, 1d
Parallel 2 : des4, after des1, 1d
Parallel 3 : des5, after des3, 1d
Parallel 4 : des6, after des4, 1d
&lt;/div>
&lt;p>An example &lt;strong>class diagram&lt;/strong>:&lt;/p>
&lt;pre>&lt;code>```mermaid
classDiagram
Class01 &amp;lt;|-- AveryLongClass : Cool
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --&amp;gt; C2 : Where am i?
Class09 --* C3
Class09 --|&amp;gt; Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 &amp;lt;--&amp;gt; C2: Cool label
```
&lt;/code>&lt;/pre>
&lt;p>renders as&lt;/p>
&lt;div class="mermaid">classDiagram
Class01 &lt;|-- AveryLongClass : Cool
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 &lt;--> C2: Cool label
&lt;/div>
&lt;p>An example &lt;strong>state diagram&lt;/strong>:&lt;/p>
&lt;pre>&lt;code>```mermaid
stateDiagram
[*] --&amp;gt; Still
Still --&amp;gt; [*]
Still --&amp;gt; Moving
Moving --&amp;gt; Still
Moving --&amp;gt; Crash
Crash --&amp;gt; [*]
```
&lt;/code>&lt;/pre>
&lt;p>renders as&lt;/p>
&lt;div class="mermaid">stateDiagram
[*] --> Still
Still --> [*]
Still --> Moving
Moving --> Still
Moving --> Crash
Crash --> [*]
&lt;/div>
&lt;h3 id="todo-lists">Todo lists&lt;/h3>
&lt;p>You can even write your todo lists in Markdown too:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="cl">&lt;span class="k">- [x]&lt;/span> Write math example
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">- [x]&lt;/span> Write diagram example
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">- [ ]&lt;/span> Do something else
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Write math example
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Write diagram example&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Do something else&lt;/li>
&lt;/ul>
&lt;h3 id="tables">Tables&lt;/h3>
&lt;p>Save your spreadsheet as a CSV file in your page&amp;rsquo;s folder and then render it by adding the &lt;em>Table&lt;/em> shortcode to your page:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="cl">&lt;span class="p">{{&amp;lt;&lt;/span> &lt;span class="nx">table&lt;/span> &lt;span class="nx">path&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s">&amp;#34;results.csv&amp;#34;&lt;/span> &lt;span class="nx">header&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s">&amp;#34;true&amp;#34;&lt;/span> &lt;span class="nx">caption&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s">&amp;#34;Table 1: My results&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;}}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
&lt;table class="table">
&lt;tr> &lt;th>customer_id&lt;/th> &lt;th>score&lt;/th> &lt;/tr>
&lt;tr>
&lt;td data-table-dtype="number">1&lt;/td>
&lt;td data-table-dtype="number">0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-table-dtype="number">2&lt;/td>
&lt;td data-table-dtype="text">0.5&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td data-table-dtype="number">3&lt;/td>
&lt;td data-table-dtype="number">1&lt;/td>
&lt;/tr>
&lt;caption>Table 1: My results&lt;/caption>
&lt;/table>
&lt;h3 id="callouts">Callouts&lt;/h3>
&lt;p>Academic supports a &lt;a href="https://wowchemy.com/docs/content/writing-markdown-latex/#callouts" target="_blank" rel="noopener">shortcode for callouts&lt;/a>, also referred to as &lt;em>asides&lt;/em>, &lt;em>hints&lt;/em>, or &lt;em>alerts&lt;/em>. By wrapping a paragraph in &lt;code>{{% callout note %}} ... {{% /callout %}}&lt;/code>, it will render as an aside.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="cl">{{% callout note %}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">A Markdown aside is useful for displaying notices, hints, or definitions to your readers.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{% /callout %}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
&lt;div class="alert alert-note">
&lt;div>
A Markdown aside is useful for displaying notices, hints, or definitions to your readers.
&lt;/div>
&lt;/div>
&lt;h3 id="spoilers">Spoilers&lt;/h3>
&lt;p>Add a spoiler to a page to reveal text, such as an answer to a question, after a button is clicked.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="nt">spoiler&lt;/span> &lt;span class="na">text&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;Click to view the spoiler&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">You found me!
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="p">/&lt;/span>&lt;span class="nt">spoiler&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
&lt;details class="spoiler " id="spoiler-6">
&lt;summary>Click to view the spoiler&lt;/summary>
&lt;p>You found me!&lt;/p>
&lt;/details>
&lt;h3 id="icons">Icons&lt;/h3>
&lt;p>Academic enables you to use a wide range of &lt;a href="https://wowchemy.com/docs/getting-started/page-builder/#icons" target="_blank" rel="noopener">icons from &lt;em>Font Awesome&lt;/em> and &lt;em>Academicons&lt;/em>&lt;/a> in addition to &lt;a href="https://wowchemy.com/docs/content/writing-markdown-latex/#emojis" target="_blank" rel="noopener">emojis&lt;/a>.&lt;/p>
&lt;p>Here are some examples using the &lt;code>icon&lt;/code> shortcode to render icons:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="nt">icon&lt;/span> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;terminal&amp;#34;&lt;/span> &lt;span class="na">pack&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;fas&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}} Terminal
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="nt">icon&lt;/span> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;python&amp;#34;&lt;/span> &lt;span class="na">pack&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;fab&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}} Python
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span> &lt;span class="nt">icon&lt;/span> &lt;span class="na">name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;r-project&amp;#34;&lt;/span> &lt;span class="na">pack&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;fab&amp;#34;&lt;/span> &lt;span class="p">&amp;gt;&lt;/span>}} R
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>renders as&lt;/p>
&lt;p>
&lt;i class="fas fa-terminal pr-1 fa-fw">&lt;/i> Terminal&lt;br>
&lt;i class="fab fa-python pr-1 fa-fw">&lt;/i> Python&lt;br>
&lt;i class="fab fa-r-project pr-1 fa-fw">&lt;/i> R&lt;/p>
&lt;h3 id="did-you-find-this-page-helpful-consider-sharing-it-">Did you find this page helpful? Consider sharing it 🙌&lt;/h3></description></item></channel></rss>