1
一、投掷一枚不均匀硬币1000次,硬币正面朝上的概率为0.6,编写R代码模拟计算出现正面次数小于等于600次的概率。
val = 0 # 有效次数 cnt = 0 # 总次数 while (cnt <= 100000) { res = sample(x=c(0,1), prob=c(0.4,0.6),size = 1000, replace = TRUE) if(sum(res) <= 600) { val = val + 1 } cnt = cnt + 1 } print( val / cnt )
2
二、坛子中有8个红球与4个白球,我们无放回地取出两个球,假定球的质量不同,每个红球的质量为10克,每个白球的质量为15克,假设每次抽到一给定球的概率是其质量除以当时坛子中球的总质量,编写R代码模拟计算两次取出的都为红球的概率?
val = 0 # 有效次数 cnt = 0 # 总次数 while (cnt <= 100000) { num_red = 8 num_white = 4 wt = 10 * num_red + 15 * num_white res1 = sample(x = c(0,1), prob = c(15*num_white / wt, 10*num_red / wt), size = 1, replace = TRUE) if(res1[1]==1){ wt = wt - 10 num_red = num_red - 1 } else { wt = wt - 15 num_white = num_white - 1 } res2 = sample(x = c(0,1), prob = c(15*num_white / wt, 10*num_red / wt), size = 1, replace = TRUE) if(res1 + res2 == 2) { val = val + 1 } cnt = cnt + 1 } print( val / cnt )
3
三、编写R代码随机生成10000个服从均值为0.2的指数分布的随机数,并画出这组数据的直方图(含核密度曲线)、箱线图,同时计算这组随机数的均值,方差、最大值、最小值。
set.seed(time(0)) res=rexp(10000, 0.2) hist(res,freq = FALSE) # 直方图 lines(density(res),col=14) # 核密度线 boxplot(res) # 箱线图 mean(res) # 均值 var(res) # 方差 max(res) # 最大值 min(res) # 最小值
4
四、区间估计:编写R代码计算两个独立正态分布方差比值的0.95的置信区间(可用rnorm函数生成具有不同方差的样本数据)。
x=rnorm(20,0,4) # 个数 10 ,均值 0 ,方差 4 y=rnorm(20,0,2) # 个数 20 ,均值 0 ,方差 2 nx=length(x) ny=length(y) print((var(x)/var(y)) / qf(00.975,nx-1,ny-1)) print((var(x)/var(y)) / qf(0.025,nx-1,ny-1))
5
五、分别编写R代码(不用t.test函数)和用t.test函数完成第八章习题7的假设检验。
x = c(6,4,5,5,6,5,5,6,4,6,7,4) y = c(2,1,2,2,1,0,3,2,1,0,1,3) alpha = 0.05 nx = length(x); ny = length(y) # 数量 ave_x = mean(x); ave_y = mean(y) # 均值 sx = var(x); sy = var(y) # 方差 sw = ((nx - 1) * sx + (ny - 1) * sy) / (nx + ny - 2) t = (ave_x - ave_y - 2) / sqrt(sw) / sqrt(1 / nx + 1 / ny) print(t >= qt(alpha, nx + ny - 2, lower.tail = FALSE)) # 结果 t.test(x, y, alternative = "greater", mu = 2)