R语言:求二维变量数学期望
生活随笔
收集整理的這篇文章主要介紹了
R语言:求二维变量数学期望
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
想做一個二維變量數學期望實驗, 查看若干資料終于找到方法
先看這篇文章熟悉一下R的函數
http://www.cyclismo.org/tutorial/R/tables.html
構造數據
通過下面的函數構造了,正態分布和泊松分布的兩列數據
A <- data.frame(a=round(rnorm(10,20,9)), b=rpois(10, lambda=10))
?
> A <- data.frame(a=round(rnorm(10,20,9)), b=rpois(10, lambda=10)) > Aa? b 1? 22 14 2? 21? 7 3? 20 11 4? 20 10 5? 12 13 6? 17 15 7? 15? 9 8?? 3? 8 9? 14 12 10? 3? 9?
如何理解這個數據:
? 可以這樣來, 就是說我拿了一個零件它的長是A,寬是B, 我在a, b 填入這些數據, 我總共查看了10個零件, 就得到上面這些數據
? 這樣這批零件矩形的長服從正態分布 均值是20, 方差是9,? 而寬服從泊松分布 lambda是 10 (我們對正態分布強行取整,編譯實驗)
構造頻率表
用 mytable <-table(A[[1]],A[[2]]) 直接得到
?
> mytable <-table(A[[1]],A[[2]]) > mytable7 8 9 10 11 12 13 14 153? 0 1 1? 0? 0? 0? 0? 0? 012 0 0 0? 0? 0? 0? 1? 0? 014 0 0 0? 0? 0? 1? 0? 0? 015 0 0 1? 0? 0? 0? 0? 0? 017 0 0 0? 0? 0? 0? 0? 0? 120 0 0 0? 1? 1? 0? 0? 0? 021 1 0 0? 0? 0? 0? 0? 0? 022 0 0 0? 0? 0? 0? 0? 1? 0
如何理解:
?
?? 二維隨機變量 X,Y 可能值構成矩陣中所有的點, 值表示樣本的出現次數
求列的邊沿概率密度
v = margin.table(mytable,1) /? margin.table(mytable)
?
求數學期望
按照定義求, 先分離兩個向量
?
as.vector(v) 是: 0.2 0.1 0.1 0.1 0.1 0.2 0.1 0.1 as.integer(names(v)) 是:3 12 14 15 17 20 21 22?
?
求向量內積
?
> as.vector(v) %*% as.integer(names(v))[,1] [1,] 14.7?
貌似差別很大, 可能方差設置太大, 并且我很還對正態分布強行取整
如果我把樣本個數調節到1000, 就與生成數據時設定的 20 很接近了
?
> A <- data.frame(a=round(rnorm(1000,20,9)), b=rpois(1000, lambda=10)) > mytable <-table(A[[1]],A[[2]]) > v = margin.table(mytable,1) / margin.table(mytable) > as.vector(v) %*% as.integer(names(v))[,1] [1,] 19.88?
?
總結
以上是生活随笔為你收集整理的R语言:求二维变量数学期望的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工商信用卡积分多久清零
- 下一篇: Mysql数据库误删除数据恢复成功