《R语言初学指南》一2.6 本章小结

简介: 本节书摘来自异步社区《R语言初学指南》一书中的第2章,第2.6节,作者【美】Brian Dennis(布莱恩·丹尼斯),更多章节内容可以访问云栖社区“异步社区”公众号查看 2.6 本章小结 R语言初学指南 在上例中,由于向量t、principal.paid.month.t、interest.paid.month.t及principal.remaining都包含360(或m)个元素,它们在控制台显示时会出现大片的数字。

本节书摘来自异步社区《R语言初学指南》一书中的第2章,第2.6节,作者【美】Brian Dennis(布莱恩·丹尼斯),更多章节内容可以访问云栖社区“异步社区”公众号查看

2.6 本章小结

R语言初学指南
在上例中,由于向量t、principal.paid.month.t、interest.paid.month.t及principal.remaining都包含360(或m)个元素,它们在控制台显示时会出现大片的数字。若能将它们组织成某种表格,使之能更好地呈现出来就好了。同样,还需要几种能将大型数据表格输入到R中的方法。在第5章中将会讨论数据的输入及输出。

在之前给出的脚本中,函数sum()可能会令人好奇,它可对任一向量中的所有元素求和。R中有很多这样的函数,在第3章中会介绍其中一部分。同样在第3章中还可学到如何写自定义的函数,或许更重要的是,可学到为什么要写自定义的函数!

到这里可能已经有人注意到,R脚本与计算机学家所讲的计算机程序极为相似,写脚本几乎就是将计算机程序组织到一起。是的,就是这样的。你就是极客!要习惯你的新身份。


1e716b60202c7e3fec7b5ad2af5555fcabd1c91d

这里将会从零开始,讲解什么是贷款方程!看上去好像需要很多代数计算才能得出这个方程,但实际上每一个步骤都很简单(且这些代数方法会多次用到)。若只想继续完成这个例子,可接受这个方程并跳过这部分内容。若决定继续研究这个推导,先停一下去买几份铅笔公司的股票吧。

在开始推导贷款方程之前,先介绍一下等比级数公式,这一巧妙的数学结论对推出方程很有帮助。任取一个非零实数r,将它前k次幂累加,其中k为任意正整数:


1e21465567eadd409543efcc5859d6399ec8b0fd

这个求和表达式即为等比级数,其中的1表示r0。下面,用(1−r)/(1−r)乘以整个表达式,即将表达式与1相乘,故求和表达式的值不变。这个结果可写成分数形式:


fdb11e97f0dc1b2026573168f790f8be42be0ca0

看一下分子上的乘积会是怎样:等比级数中的每一项分别乘以1和−r。


84140346715e317e46c86f236e3108fd27139d7d

别忘了分母上的(1−r)项,这样,对r的各阶幂的和得到了一个十分简单的表达式:


8039570c8f74973efcc22d4c19907e7a61569209

这个公式即为等比级数公式,它经常出现在各种金融及科学计算中。一定要好好记住它(记在大脑的硬盘里,而不是RAM中)。

下面回到之前的抵押贷款问题中。在分析每月还款额时以月为时间单位,故在这个案例中共有30×12=360份还款。年利率也是这个计算中的一部分,这里采用0.05作为年利率,则月利率为0.05/12=0.00417(近似值)。

每月应偿还一部分本金,并当月支付本金余额的利息。其中每月偿还的本金额度是不等的,将其分别记为x_1 ,x_2 ,x_3 , cdots ,x_{359} ,x_{360} ,且每个值都是未知的。但现在已知将所有的值相加之后,其和必须等于贷款的本金额度:


c8f9b30b19d1a5ec4fa1703eb1b0d98f1484f8a1

同样,这里还知道每月还款情况的一些信息。第1个月的还款为本金x1与利息(0.00417)×(25000)之和。第2个月的还款为本金x2加上利息(0.00417)×(25000−x1)。在每月还款的过程中,由于已还本金的累加,未偿还本金会不断减少:


2436f539dfe1ee89c662165114d229521270d594

同样,这里还希望每月的总还款额均相等。在上面所列出的表达式中,找出第1个月和第2个月的表达式,并将两者相减。若两月的还款额相等,则相减后的值为0。通过相减还可找到x1与x2之间的关系:


71945aa878d2149affde3cbcba1b81a0a5362cd2

这个等式是不是看上去眼熟?本金的偿还额度是呈指数增长的,与第1章中计算的银行存单类似。在任意给定的第t月中,须偿还的本金额度可用第1个月的本金偿还额度表示:


ec358aceaf20e204e44879eb9ca94701351067c0

这里只需知道第1个月的偿还额,就可计算出其他所有月份的偿还额。别忘了,所有月份的偿还额的总和要与本金总额(所有借款额)相等:


d6136773252b5b69712938bfcf65703227293d03

故,第t个月偿还的本金为:

image


0506979a65dc4bcebb37542ad1efe5c23763a9e5


a8cb01702df3843fe94ddbecc06f2a3521b7784d

1.R脚本是一个预先准备好的R命令集合,从头到尾按顺序运行。在Windows和Mac版本的R中,可使用R自带的R编辑器来编写、保存以及运行脚本。在现有的Unix版本的R中,可使用任意的外部文本编辑器来编写及保存脚本。

2.在“File”菜单中可按下面路径找到R编辑器:File→New script可打开一个空白的编辑器来编写新的脚本;File→Open script可打开一个已存在的脚本。

3.在“File”菜单中可将R编辑器中的脚本保存为文件:File→Save可保存对已存在文件的修改;File→Save as…可另存为新脚本。对包含R脚本的文件,其文件名后缀一般为“.R”。在第一次保存文件时,R编辑器不会自动添加该后缀。

4.“运行”一个脚本是指将R命令发送到控制台并运行。在R编辑器中,可用“Edit”菜单运行脚本:Edit→Run all。在Unix中,可将整个R脚本复制并粘贴到R控制台的提示符处,再运行脚本,或者将文件路径及文件名输入到命令source("")引号里面,在控制台中运行。

5.通过在R编辑器中选中并高亮部分脚本并利用“Edit”菜单可以实现部分命令的运行:Edit→Run line or selection。在Unix中,可将部分脚本复制并粘贴到控制台的提示符处。

6.由于输入错误和(或)其他失误,在运行刚编写好的R脚本进行计算时,可能会出现一些问题或“bug”。从头到尾一行行地运行脚本,可有效地查找bug。某些bug可能会导致脚本中后续的一些R语句出错,故有时修正一个bug可同时解决后面的几个bug。

7.R脚本中不参与运行的命令行称为注释。注释可提供有价值的解释并能辅助回忆脚本的功能,故建议大量使用注释。注释的标识符为“#”,每行中该符号右侧的内容都会被识别为注释,它们不参与运行。

例如:

# Here.is.an.illustration of element-by-element vector 
#  multiplication in R.
x=c(1,2,3)    # x.is.defined.as.the.vector.with.elements
         # 1, 2, 3.
y=c(−1,−2,−3) # y.is.definedas.the.vector.with.elements
         # −1, −2, −3.
z=x*y      # z is defined as the vector containing.the
         # elements of x multiplied by the
         # corresponding elements of y.
z         # Print z to the console.
相关文章
|
5月前
|
机器学习/深度学习 算法 数据挖掘
R语言在金融分析中的应用
【4月更文挑战第25天】R语言在金融分析中扮演关键角色,尤其在风险管理、资产定价、量化交易、市场预测和投资组合优化方面。作为开源的统计计算和图形平台,R语言拥有强大的统计功能、丰富的包支持和交互式环境。在风险管理中,R用于评估和管理风险,如VaR和ES;在资产定价上,它支持经典模型和衍生品定价;在量化交易领域,R提供策略开发和回测工具;市场预测利用R的统计和机器学习功能;而在投资组合优化上,R帮助确定最佳资产配置。随着金融技术发展,R语言的应用将持续增长。
86 2
|
5月前
|
数据挖掘 C++
使用R语言进行时间序列分析
【4月更文挑战第25天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
83 2
|
存储 数据库 Python
R语言:第一部分 入门
R语言:第一部分 入门
223 0
R语言:第一部分 入门
|
IDE 数据可视化 开发工具
R语言教程
R语言教程
353 0
R语言教程
|
机器学习/深度学习 数据可视化 大数据
可曾听闻【大话】二字—统计学R语言
# 我为什么要写这篇 > 我们都知道,21世纪是数据科学的时代,而统计学则是数据科学的基础,任正非在一档访谈节目中也着重谈到了统计学在大数据时代的重要性。大数据不能被直接拿来使用,统计学依然是数据分析的灵魂。 ![image-20220608170829223](C:\Users\萧\AppData\Roaming\Typora\typora-user-images\image-20220608170829223.png) # 总论 全章概览图 ![image-20220608170918361](C:\Users\萧\AppData\Roaming\Typora\typora-u
307 0
|
机器学习/深度学习 大数据 物联网