[R]如何利用rnorm生成亂數矩陣和時間序列亂數?

本文介紹了如何使用R語言生成特定參數的常態亂數分布,包括生成符合指定平均值和標準差的亂數數據,並將其轉換為時間序列數據。通過具體代碼示例,展示了如何利用rnorm函數生成常態亂數,以及如何借助xts包生成帶有時間戳的序列數據。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在數值計算軟體的應用上,生成各類符合要求的隨機亂數分布以進一步驗證模型,幾乎是基本需求。R語言中,可利用rnorm指令來生成符合某個平均值和某個標準差要求的常態亂數分布。另外,亦可善用rnorm來生成時間序列亂數。

a.生成平均數=5,標準差=1的25個常態亂數分布數據,數字取至小數點第二位,並形成5X5的矩陣。若要使亂數不隨每次執行結果而改變,可結合set.seed(1)定義編號1的隨機亂數群,可參考[R]如何利用seed和sample指令,生成各類的隨機亂數?

#set seed
set.seed(1)

#matrix data
a<-matrix(round(rnorm(25, mean=5, sd=1),2),5,5)

#輸出結果
> a
     [,1] [,2] [,3] [,4] [,5]
[1,] 4.94 6.36 4.59 4.84 4.29
[2,] 4.84 4.90 4.61 4.75 5.36
[3,] 3.53 5.39 4.94 5.70 5.77
[4,] 4.52 4.95 6.10 5.56 4.89
[5,] 5.42 3.62 5.76 4.31 5.88

另外,可進一步將上述矩陣轉化成數列,並繪製成圖以檢視其分布。

#matrix to series
b<-c(a)

#輸出結果
> b
 [1] 4.94 4.84 3.53 4.52 5.42 6.36 4.90 5.39 4.95 3.62 4.59 4.61 4.94 6.10 5.76 4.84
[17] 4.75 5.70 5.56 4.31 4.29 5.36 5.77 4.89 5.88

b.若要生成時間序列,需先安裝R語言的安裝包(xts),並搭配rnorm指令。下列範例是生成平均數=5,標準差=1的30個常態亂數分布數據,其中時間日期由2020/1/1開始,並以"日"為單位。

library(xts)
#set.seed
set.seed(2)
#Data
x1<-xts(rnorm(30,mean=5, sd=1)+exp(c(1:30)/50),seq(as.POSIXct("2020-01-01"),len =30, by="day"))
#plot
plot(x1)

#輸出結果
> x1
               [,1]
2020-01-01 5.123287
2020-01-02 6.225660
2020-01-03 7.649682
2020-01-04 4.952911
2020-01-05 6.024919
2020-01-06 6.259917
2020-01-07 6.858229
2020-01-08 5.933813
2020-01-09 8.181691
2020-01-10 6.082616
2020-01-11 6.663727
2020-01-12 7.253002
2020-01-13 5.904235
2020-01-14 5.283461
2020-01-15 8.132088
2020-01-16 4.066059
2020-01-17 7.283552
2020-01-18 6.469136
2020-01-19 7.475113
2020-01-20 6.924090
2020-01-21 8.612781
2020-01-22 5.352781
2020-01-23 8.173712
2020-01-24 8.570726
2020-01-25 6.653659
2020-01-26 4.230321
2020-01-27 7.193244
2020-01-28 6.154114
2020-01-29 7.578242
2020-01-30 7.111756

 

-----如果文章對您有幫助,打開微信掃一掃,請作者喝杯咖啡。-----

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值