摘要
- 在R Studio中画出分布的概率密度曲线(质量密度曲线)以及分布函数。
- 利用逆变换法和接受拒绝法生成随机数。
- 一道简单的数据处理题。
题目
答案
第一题
(1) 给定x=2时,求该分布的概率密度函数值基分布函数的值,利用R自带函数或自行编写函数皆可
x = 2
lambda = 1
y1 = dexp(x, lambda) #概率密度函数值
y2 = pexp(x, lambda) #分布函数值
1.(2) 分别绘出概率密度函数曲线和分布函数曲线(和州的范围取为0到10)
x2 = seq(0, 10, .1)
y_d = dexp(x2, lambda)
y_p = pexp(x2, lambda)
plot(x2, y_d) #密度函数图像
lines(x2, y_d,col = 'purple')
plot(x2, y_p) #分布函数图像
lines(x2, y_p, col = 'green')
1.(3) 利用R自带的生成指数分布随机数的命令,产生10^4个服从上述分布的随机数。随机种子的值设为1,并通过可视化方式,将所生成的随机数的统计结果与真实的概率密度函数进行对比
set.seed(1)
v = rexp(10^4, lambda)
hist(v, prob = TRUE)
lines(x2, y_d,col = 'purple')
1.(4) 利用逆变换法,生成10^4个服从上述分布的随机数,并通过可视化方式,将所生成的随机数的统计结果与真实的概率密度函数进行对比
U = runif(10000)
lambda = 1
X = -log(1-U)/lambda
hist(X, prob = TRUE)
x = seq(0,10,0.1)
lines(x,lambda*exp(-lambda*x), col = 'red')
第二题
2.(1) 利用sample函数生成服从上述分布的5000个随机数
prob = c(.3, .4, .3)
k = sample(seq(0,2,1), size = 5000, replace = TRUE, prob = c(.3, .4, .3)) #随机数
a = table(k)/5000 #随机数的频率
rbind(prob, a) #与分布列进行对比
2.(2)利用逆变换法生成服从上述分布的5000个随机数
u = runif(5000)
y_r=integer(5000)
x = seq(0,2,1)
p = c(.3,.4,.3)
f = c(0,cumsum(p))
m=length(f)
for(i in 1:m-1){ #区间判断
ind= u<=f[i+1] & u>f[i]
y_r[ind]=x[i]
}
b = table(y_r)/5000
rbind(prob, b) #与分布列进行对比
2.(3) 利用接受拒绝发生成服从上述分布的5000个随机数
n = 5000
k <- 0
x <- numeric(n)
p = c(.3,.4,.3)
while (k < n) {
u <- runif(1)
y <- sample(0:2, 1, replace = T)
if ( p[y+1]/((1/3)*1.5)> u) {
k <- k + 1
x[k] <- y
}
}
c = table(x)/n
rbind(prob, c) #与分布列进行对比
2.(4) 将上述三种结果以频率的形式,与真实的概率分布进行列表对比
rbind(prob, a , b, c) #a sample、b inverse、 c accept-reject
第三题
3.(1) 导入数据“Advertising.csv”,并利用summary函数得到该数据从第二列到第五列的统计结果, 并请你用注释简单叙述结果的含义
dat = read.csv("advertising.csv", header = T)
dat_1 = dat[,2:5]
summary(dat_1)
#含义:电视营销平均投入147.04万元,最小投入0.70万元,最大投入296万元,近一半的选择投入在74万元到219万元之间
#广播平均投入23.264万元,最大49.6万元,最小0投入,近一半的选择投入在10万元到36.5万元之间
#报纸平均投入30.55万元,最大114万元,最小0.3万元,近一半的选择投入在12.7万元到45万元之间
#而销售额,平均销售额为14.02万元,最大销售额为27万元,最小为1.6万元
3.(2)运用pairs函数绘出该数据从第二列到第五列两两之间的散点图, 并请你用注释简单叙述结果的含义
pairs(dat_1)
#含义:销售额与电视宣传呈正相关关系,相关程度较另两个因素更高;
#销售额与广播宣传也呈一定正相关关系;
#销售额与报纸宣传相关性不强。
3.(3)结合(2)中的发现,计算对应特征之间的相关系数
cor(dat_1)
3.(4) 以sales>10为条件,将样本划分为两组,将组别定义为Adervtising的一个新特征,即为Group,并分别画出TV、Radio、Newspaper关于Group的分组箱线图
group = matrix(rep(1,200),100,1)
dimnames(group) = list(NULL,c("Group"))
group = as.data.frame(group, header = T)
dat_2 = cbind(dat_1,group)
k = 1
while(k<200){
if(dat_2[k,4]<=10){
dat_2[k,5] = 2
}
k = k+1
}
dat_2$Group = as.factor(dat_2$Group) #factor 定性变量,“水平”
plot(dat_2$Group, dat_2$TV) #识别到定性变量,plot就会画出箱线图
plot(dat_2$Group,dat_2$Radio)
plot(dat_2$Group, dat_2$Newspaper)
说明
没有放运行结果,可以复制运行