作为统计工作者,我们除了可以用S迅速实现新的统计方法,还可以用S进行随机模拟。随机模拟可以验证我们的算法、比较不同算法的的优缺点、发现改进统计方法的方向,是进行统计研究的最有力的计算工具之一。随机模拟最基本的需要是产生伪随机数,S中已提供了大多数常用分布的伪随机数函数,可以返回一个伪随机数序列向量。这些伪随机数函数以字母r开头,比如rnorm()是正态伪随机数函数,runif()是均匀分布伪随机数函数,其第一个自变量是伪随机数序列长度n。关于这些函数可以参见第14节以及系统帮助文件。下例产生1000个标准正态伪随机数:y-rnorm(1000)这些伪随机数函数也可以指定与分布有关的参数,比如下例产生1000个均值为150、标准差为100的正态伪随机数:y-rnorm(1000,mean=150,sd=100)产生伪随机数序列是不重复的,实际上,S在产生伪随机数时从一个种子出发,不断迭代更新种子,所以产生若干随机数后内部的随机数种子就已经改变了。有时我们需要模拟结果是可重复的,这只要我们保存当前的随机数种子,然后在每次产生伪随机数序列之前把随机数种子置为保存值即可:the.seed-.Random.seed…………….Random.seed-the.seedy-rnorm(1000)作为例子,我们来产生服从一个简单的线性回归的数据。#简单线性回归的模拟lm.simu-function(n){#先生成自变量。假设自变量x的取值范围在150到180之间,大致服从正态分布。x-rnorm(n,mean=165,sd=7.5)#再生成模型误差。假设服从N(0,1.2)分布eps-rnorm(n,0,1.2)#用模型生成因变量y-0.8*x+epsreturn(data.frame(y,x))