R语言基础题及答案(三)——R语言与统计分析第三章课后习题(汤银才)

本文主要是介绍R语言基础题及答案(三)——R语言与统计分析第三章课后习题(汤银才),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

R语言与统计分析第三章课后习题(汤银才)

题-1

从1到100个自然数中随机不放回地抽取5个数, 并求它们的和.

sum(sample(1:100,5))

15~490任何一个数都有可能

[1] 299

题-2

从一副扑克牌(52张)中随机抽5张,求下列概率

  • 抽到的是10、J、Q、K、A;

  • 抽到的是同花顺.

# 抽到的是10、J、Q、K、A
4^5/choose(52,5)# 抽到的是同花顺
# 例如牌12345就只有12345一种同花顺
# 例如牌123456就有12345,23456两种同花顺
# 所以13种牌有13-5+1种同花顺
# 又因为有4种花色所以乘以4
4*(13-5+1)/choose(52,5)

[1] 0.0003940038
[1] 1.385169e-05

题-3

从正态分布N(100, 100)中随机产生1000个随机数,

  • 作出这1000个正态随机数的直方图;

  • 从这1000个随机数中随机有放回地抽取500个, 作出其直方图;

  • 比较它们的样本均值与样本方差.

# 生成正态分布随机数序列
v<-rnorm(1000,mean=10,sd=10)# 生成直方图
hist(v)# 有放回抽取500个,再次制作直方图
v2=sample(v,500,replace=TRUE)
hist(v2)# mean
mean(v)
mean(v2)# sd
sd(v)
sd(v2)

在这里插入图片描述
在这里插入图片描述

[1] 10.10301
[1] 10.04473
[1] 9.882417
[1] 10.26341

题-4

模 拟 随 机 游 动: 从 标 准 正 态 分 布 中 产 生1000个 随 机 数, 并 用 函数cumsum( )作出累积和, 最后使用命令plot( ) 作出随机游动的示意图:

x<-cumsum(rnorm(500))
plot(x)

在这里插入图片描述

题-5

从标准正态分布中随机产生100个随机数, 由此数据求总体均值的95%置信区间, 并与理论值进行比较.

t.test(rnorm(100,mean=0,sd=1))

One Sample t-test
.
data: rnorm(100, mean = 0, sd = 1)
t = 0.55763, df = 99, p-value = 0.5784
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
-0.1382050 0.2462497
sample estimates:
mean of x
0.05402239

题-6

用本章给出的函数limite.central( ), 从图形上验证当样本容量足够大时, 从贝塔分布Beta(1/2, 1/2) 抽取的样本的样本均值近似服从正态分布.

# 以下为课本提供的limite.central()函数
limite.central<-function(r=runif, distpar=c(0,1), m=.5, s=1/sqrt(12), n=c(1,3,10,30), N=1000) {for(i in n){if(length(distpar)==2){x <- matrix(r(i*N, distpar[1], distpar[2]), nc=i)}else{x <- matrix(r(i*N, distpar), nc=i)}x<-(apply(x, 1, sum) - i*m )/(sqrt(i)*s)hist(x, col='light blue', probability=T,main=paste("n=",i),ylim=c(0,max(.4, density(x)$y)))lines(density(x), col='red', lwd=3)curve(dnorm(x), col='blue', lwd=3, lty=3, add=T)if( N>100 ){rug(sample(x,100))}else{rug(x)}}
}# 调用函数验证
op <- par(mfrow=c(2,2))
# 这里均值用的默认值,其期望为a/(a+b),a=1/2,b=1/2正好是默认值0.5
# 标准差用的sqrt(0.125),是因为方差为:ab/(a+b+1)/(a+b)^2=0.125
limite.central(rbeta,distpar=c(1/2,1/2),n=c(1,3,5,10),s=sqrt(0.125))
par(op)

可以看出随着每组样本个数增加,其均值的分布越来越接近正态分布(蓝线)
在这里插入图片描述

题-7
  • 使用rnorm( )抽取n=1000个标准正态随机数, 并在左侧区域画出相应 的直方图和核密度估计曲线;

  • 用格子点离散化抽样方法完成抽样, 并在右侧区域画出相应的直方图和核密度估计曲线, 离散化所用的N=1000, n=1000, 取点范围为r=[4, 4]

# create and draw left
rn<-rnorm(1000,mean=0,sd=1)
op<-par(mfrow=c(1,2))
hist(rn,probability = T)
lines(density(rn),col='red',lwd=3)# create right
N<-seq(-4,4,length=1000)
f<-function(x)dnorm(x)/sum(dnorm(x)) 
f1<-f(N)
result<-sample(N,replace=T,size=1000,prob=f1)# draw right
hist(result,probability=T)
lines(density(result),col="red",lwd=3)
par(op)

在这里插入图片描述

这篇关于R语言基础题及答案(三)——R语言与统计分析第三章课后习题(汤银才)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/583634

相关文章

python操作redis基础

《python操作redis基础》Redis(RemoteDictionaryServer)是一个开源的、基于内存的键值对(Key-Value)存储系统,它通常用作数据库、缓存和消息代理,这篇文章... 目录1. Redis 简介2. 前提条件3. 安装 python Redis 客户端库4. 连接到 Re

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi

Go 语言中的 Struct Tag 的用法详解

《Go语言中的StructTag的用法详解》在Go语言中,结构体字段标签(StructTag)是一种用于给字段添加元信息(metadata)的机制,常用于序列化(如JSON、XML)、ORM映... 目录一、结构体标签的基本语法二、json:"token"的具体含义三、常见的标签格式变体四、使用示例五、使用

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

Go语言使用slices包轻松实现排序功能

《Go语言使用slices包轻松实现排序功能》在Go语言开发中,对数据进行排序是常见的需求,Go1.18版本引入的slices包提供了简洁高效的排序解决方案,支持内置类型和用户自定义类型的排序操作,本... 目录一、内置类型排序:字符串与整数的应用1. 字符串切片排序2. 整数切片排序二、检查切片排序状态:

基于Go语言实现Base62编码的三种方式以及对比分析

《基于Go语言实现Base62编码的三种方式以及对比分析》Base62编码是一种在字符编码中使用62个字符的编码方式,在计算机科学中,,Go语言是一种静态类型、编译型语言,它由Google开发并开源,... 目录一、标准库现状与解决方案1. 标准库对比表2. 解决方案完整实现代码(含边界处理)二、关键实现细

如何合理管控Java语言的异常

《如何合理管控Java语言的异常》:本文主要介绍如何合理管控Java语言的异常问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍2、Thorwable类3、Error4、Exception类4.1、检查异常4.2、运行时异常5、处理方式5.1. 捕获异常

Spring Boot集成SLF4j从基础到高级实践(最新推荐)

《SpringBoot集成SLF4j从基础到高级实践(最新推荐)》SLF4j(SimpleLoggingFacadeforJava)是一个日志门面(Facade),不是具体的日志实现,这篇文章主要介... 目录一、日志框架概述与SLF4j简介1.1 为什么需要日志框架1.2 主流日志框架对比1.3 SLF4

Spring Boot集成Logback终极指南之从基础到高级配置实战指南

《SpringBoot集成Logback终极指南之从基础到高级配置实战指南》Logback是一个可靠、通用且快速的Java日志框架,作为Log4j的继承者,由Log4j创始人设计,:本文主要介绍... 目录一、Logback简介与Spring Boot集成基础1.1 Logback是什么?1.2 Sprin

C语言中的常见进制转换详解(从二进制到十六进制)

《C语言中的常见进制转换详解(从二进制到十六进制)》进制转换是计算机编程中的一个常见任务,特别是在处理低级别的数据操作时,C语言作为一门底层编程语言,在进制转换方面提供了灵活的操作方式,今天,我们将深... 目录1、进制基础2、C语言中的进制转换2.1 从十进制转换为其他进制十进制转二进制十进制转八进制十进