R语言与统计分析R小推车R

《Modern Statistics for Modern Bi

2019-03-02  本文已影响9人  热衷组培的二货潜

《Modern Statistics for Modern Biology》Chapter 一: 离散数据模型的预测(1.1 - 1.3)

1.4、多维正态分布:DNA

数学公式. 多项式分布是计数的最重要的模型,R使用一个通式来计算计数的多项向量(x1,...,xm)的概率表示具有m个具有概率(p1,...,pm)的box的结果:

问题 1.7

答案:

> pvec = rep(1/4, 4)
> pvec
[1] 0.25 0.25 0.25 0.25
> t(rmultinom(1, prob = pvec, size = 8))
     [,1] [,2] [,3] [,4]
[1,]    1    0    4    3

rmultinom

## Usage(用法)
rmultinom(n, size, prob) #【产生随机样本】
dmultinom(x, size = NULL, prob, log = FALSE) # 【密度函数】

## 参数说明
x:长度为k的整数向量,从0到size。
n:要抽取的随机变量的个数
size:整数,指定多维正态试验中被放入K个盒子对象的总数量,对于dmultnom,它默认为sum(x)
prob:长度为K的非负数值向量,指定K类的概率,内部规范为1,无限和缺失值是不允许的
log:逻辑值,如果为真,计算的是对数概率

## 比如 
# https://blog.csdn.net/zhaozhn5/article/details/77933670
rmultinom(n, size, prob) 
#抛 10 次骰子为一次实验,做 1000 次实验。则 n=1000,size=10。 
#prob为每个独立结果出现的概率,其总和为1。 
#结果为 k×n 的矩阵,k即length(prob) 

问题 1.8:t函数表示转置

问题 1.9rmultinom(n = 8, prob = pvec, size = 1)rmultinom(n = 1, prob = pvec, size = 8)的区别? 提示1.3.11.3.2.

> rmultinom(n = 8, prob = pvec, size = 1)
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,]    0    0    0    0    0    0    0    0
[2,]    1    0    0    0    0    0    0    0
[3,]    0    1    0    1    1    1    0    1
[4,]    0    0    1    0    0    0    1    0

> rmultinom(n = 1, prob = pvec, size = 8)
     [,1]
[1,]    3
[2,]    2
[3,]    1
[4,]    2

1.4.1 Simulating for power

> obsunder0 = rmultinom(1000, prob = pvec, size = 20)
> dim(obsunder0)
[1]    4 1000
> obsunder0[, 1:11]
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
[1,]    4    7    7    8    7    5    7    9    1     6     3
[2,]    3    4    7    4    8    7    4    3    6     3     6
[3,]    9    2    2    4    3    2    5    2    6     3     3
[4,]    4    7    4    4    2    6    4    6    7     8     8

创建测试

> expected0 = pvec * 20
> sum((obsunder0[, 1] - expected0)^2 / expected0)
[1] 4.4
> sum((obsunder0[, 2] - expected0)^2 / expected0)
[1] 3.6
> sum((obsunder0[, 3] - expected0)^2 / expected0)
[1] 3.6
> stat = function(obsvd, exptd = 20 * pvec) {
+   sum((obsvd - exptd)^2 / exptd)
+ }
> stat(obsunder0[, 1])
[1] 4.4
> S0 = apply(obsunder0, 2, stat)
> summary(S0
+ )
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  0.000   1.200   2.800   3.115   4.400  17.200 
> hist(S0, breaks = 25, col = "lavender", main = "")
> q95 = quantile(S0, probs = 0.95)
> q95
95% 
7.6 

Determining our test’s power

> pvecA = c(3/8, 1/4, 3/12, 1/8)  ## 概率
> observed = rmultinom(1000, prob = pvecA, size = 20)  ## 实验一千次,每次20个球
> dim(observed)
[1]    4 1000
> observed[, 1:7]
     [,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,]   10   10    8    5    9   12    7
[2,]    2    3    3    5    3    3    6
[3,]    7    4    6    7    4    3    4
[4,]    1    3    3    3    4    2    3
> apply(observed, 1, mean)
[1] 7.388 5.078 5.009 2.525
> expectedA = pvecA * 20
> expectedA
[1] 7.5 5.0 5.0 2.5
> stat(observed[, 1])
[1] 10.8
> S1 = apply(observed, 2, stat)
> q95
95% 
7.6 
> sum(S1 > q95)
[1] 187
> power = mean(S1 > q95)
> power
[1] 0.187

经典数据的经典统计

这里用markdwon表示为  $χ_2 ^3$

1.5、本章节总结

课后阅读

参考资源

本文翻译原文链接:Modern Statistics for Modern Biology

上一篇 下一篇

猜你喜欢

热点阅读