练习1

略。

练习2

  1. 使用rep()函数创造向量 1,1,1,1,1,2,2,2,2,2 并将其命名为 x1
x1 <- rep(c(1,2),each=5)
x1
##  [1] 1 1 1 1 1 2 2 2 2 2
  1. 使用rep()函数创造向量 1,2,1,2,1,2,1,2,1,2 并将其命名为 x2
x2 <- rep(c(1,2),times=5)
x2
##  [1] 1 2 1 2 1 2 1 2 1 2
  1. x1x2 按列组合成矩阵 x.col,即 x1x2x 的两列。
x.col <- cbind(x1,x2)
x.col
##       x1 x2
##  [1,]  1  1
##  [2,]  1  2
##  [3,]  1  1
##  [4,]  1  2
##  [5,]  1  1
##  [6,]  2  2
##  [7,]  2  1
##  [8,]  2  2
##  [9,]  2  1
## [10,]  2  2
  1. x1x2 按行组合成矩阵 x.row,即 x1x2x 的两行。
x.row <- rbind(x1,x2)
x.row
##    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## x1    1    1    1    1    1    2    2    2    2     2
## x2    1    2    1    2    1    2    1    2    1     2
  1. 找到两种方法来计算 x.row 的每一列的总和。
apply(x.row,2,sum)
##  [1] 2 3 2 3 2 4 3 4 3 4
colSums(x.row)
##  [1] 2 3 2 3 2 4 3 4 3 4
  • 1,2,..., 20 构成两个4*5的矩阵,其中矩阵A是按列输入,矩阵B是按行输入,并基于A和B生成如下矩阵C-H并输出:
A <- matrix(1:20, nr = 4, nc = 5)
A
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    5    9   13   17
## [2,]    2    6   10   14   18
## [3,]    3    7   11   15   19
## [4,]    4    8   12   16   20
B <- matrix(1:20, nr = 4, nc = 5, byrow = F)
B
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    5    9   13   17
## [2,]    2    6   10   14   18
## [3,]    3    7   11   15   19
## [4,]    4    8   12   16   20
1. C=A+B;
C <- A + B
C
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    2   10   18   26   34
## [2,]    4   12   20   28   36
## [3,]    6   14   22   30   38
## [4,]    8   16   24   32   40
2. D=AB^T (矩阵相乘:A乘以B的转置矩阵,提示:转置矩阵用t()函数);
D<-A%*%t(B)
D
##      [,1] [,2] [,3] [,4]
## [1,]  565  610  655  700
## [2,]  610  660  710  760
## [3,]  655  710  765  820
## [4,]  700  760  820  880
3. E:第一列全为1,后面几列等于A矩阵;
E<-cbind(1,A)
E
##      [,1] [,2] [,3] [,4] [,5] [,6]
## [1,]    1    1    5    9   13   17
## [2,]    1    2    6   10   14   18
## [3,]    1    3    7   11   15   19
## [4,]    1    4    8   12   16   20
4. F1由A的前3行和前3列构成;(思考:为什么命名为F1而不是F?)
F1 <- A[1:3, 1:3]
F1
##      [,1] [,2] [,3]
## [1,]    1    5    9
## [2,]    2    6   10
## [3,]    3    7   11
5. G是由矩阵B去除第3列构成的矩阵;
G <- B[,-3]
G
##      [,1] [,2] [,3] [,4]
## [1,]    1    5   13   17
## [2,]    2    6   14   18
## [3,]    3    7   15   19
## [4,]    4    8   16   20
6. H是与A具有相同对角元素的对角阵。(提示:使用diag()函数)
H<-diag(diag(A))
H
##      [,1] [,2] [,3] [,4]
## [1,]    1    0    0    0
## [2,]    0    6    0    0
## [3,]    0    0   11    0
## [4,]    0    0    0   16

练习3

  • 创建一个名为 func() 的函数,该函数有一个名为 lst 的参数。
    1. 该函数应该创建一个新的空向量,并添加 lst 中具有奇数索引的每个元素。然后该函数应该返回这个新向量。
    2. 例如,func(c(4, 3, 7, 10, 11, -2)) 应返回向量 c(4, 7, 11)
func<-function(lst){
  new_list = c()
  for (i in 1:length(lst)){
    if (i %% 2 != 0 ){
      new_list = c(new_list,lst[i])
    }
  }
  return(new_list)
}
func(c(4, 3, 7, 10, 11, -2))
## [1]  4  7 11
  • 回顾概率论与数理统计中正态样本的均值参数的区间估计, 设\(x_1, \dots, x_n\)是来自正态均值为\(\mu\),标准差为\(\sigma\)的正态分布的一个样本,则μ的置信度为\(1-\alpha\)的95%置信区间为\([\bar x-1.96 s/\sqrt{n}, \bar x+1.96 s/\sqrt{n}]\).

    (1). 按下列要求生成R函数: 函数名:takeCI; 输入: (1)数值型向量x,表示某正态样本的取值. 输出: 基于该样本得到的均值参数的置信度为95%的置信区间,以一个长度为2的向量输出。(提示:可用length(),mean(),sd()函数) (2). 从均值为10,标准差为1的正态分布中随机生成样本量n=20的一个样本\(x\)。基于此样本,用(1)中函数计算均值参数的95%置信区间并输出

takeCI<-function(x){
  n<-length(x)
  xbar<-mean(x)
  l<-1.96*sd(x)/sqrt(n)
  left<-xbar-l
  right<-xbar+l
    res<-c(left=left,right=right)
  return(res)
}
x=rnorm(20,10,1)
takeCI(x)
##      left     right 
##  9.640218 10.626624

练习4

本练习涉及波士顿住房数据集。 首先,加载波士顿数据集。 波士顿数据集是ISLR2库的一部分。 当然,您应该在使用前安装 ISLR2 包。 在 library(ISLR2) 之后,数据集包含在对象 Boston 中。 使用?Boston阅读有关数据集的信息。

  1. 该数据集中有多少行? 多少列? 行和列代表什么?
library(ISLR2)
dim(Boston)
## [1] 506  13

数据集共506行,13列。

通过?Boston查看帮助文档得知,行代表Boston的506个不同地区,列代表不同的变量,包括人均犯罪率、面积超过25000平方英尺的住宅比例等。

  1. 哪些变量是定量的,哪些是定性的?

chas是定性变量,其余为定量变量。qualitative variable指定性变量,又名分类变量、虚拟变量或哑变量(dummy variable)。在帮助文档中,仅chas的定义为dummy variable。

  1. 每个定量变量的范围是多少?可以使用range()函数来回答这个问题。
apply(Boston[,-4],2,range)
##          crim  zn indus   nox    rm   age     dis rad tax ptratio lstat medv
## [1,]  0.00632   0  0.46 0.385 3.561   2.9  1.1296   1 187    12.6  1.73    5
## [2,] 88.97620 100 27.74 0.871 8.780 100.0 12.1265  24 711    22.0 37.97   50
  1. 为该数据集中的变量制作一些成对散点图。描述你的发现。
pairs(~crim+nox+dis+tax+medv,data = Boston)

在得到图后对规律做适当描述即可。例如:nox和dis负相关。

  1. 是否有任何与人均犯罪率相关的预测因素? 如果是,请解释这种关系。
cor(Boston[-1],Boston$crim)
##                [,1]
## zn      -0.20046922
## indus    0.40658341
## chas    -0.05589158
## nox      0.42097171
## rm      -0.21924670
## age      0.35273425
## dis     -0.37967009
## rad      0.62550515
## tax      0.58276431
## ptratio  0.28994558
## lstat    0.45562148
## medv    -0.38830461

适当描述不同变量的相关性即可。例如:crim和indus、nox、rad、tax正相关,和medv、dis、black负相关,其中rad相关性最强,其次为tax、lstat等。

  1. 每个定量预测变量的均值和标准差是多少?
tem <- rbind(apply(Boston[,-4],2,mean),apply(Boston[,-4],2,sd))
row.names(tem) <- c("mean", "sd")
tem
##          crim       zn     indus       nox        rm      age      dis      rad
## mean 3.613524 11.36364 11.136779 0.5546951 6.2846344 68.57490 3.795043 9.549407
## sd   8.601545 23.32245  6.860353 0.1158777 0.7026171 28.14886 2.105710 8.707259
##           tax   ptratio     lstat      medv
## mean 408.2372 18.455534 12.653063 22.532806
## sd   168.5371  2.164946  7.141062  9.197104
  1. 该数据集中有多少人口普查区域位于查尔斯河沿岸?
sum(Boston$chas)
## [1] 35

共35个。

  1. 该数据集中各城镇的师生比中位数是多少?
median(Boston$ptratio)
## [1] 19.05

中位数为19.05。

  1. 波士顿哪个人口普查区的自住房屋中位数最低?该人口普查区的其他变量的值是多少,这些值与这些变量的总体范围相比如何?描述你的发现。
which(Boston$medv==min(Boston$medv))
## [1] 399 406

第399和406个的medv最低。

Boston[399,]
##        crim zn indus chas   nox    rm age    dis rad tax ptratio lstat medv
## 399 38.3518  0  18.1    0 0.693 5.453 100 1.4896  24 666    20.2 30.59    5
summary(Boston[-4])
##       crim                zn             indus            nox        
##  Min.   : 0.00632   Min.   :  0.00   Min.   : 0.46   Min.   :0.3850  
##  1st Qu.: 0.08205   1st Qu.:  0.00   1st Qu.: 5.19   1st Qu.:0.4490  
##  Median : 0.25651   Median :  0.00   Median : 9.69   Median :0.5380  
##  Mean   : 3.61352   Mean   : 11.36   Mean   :11.14   Mean   :0.5547  
##  3rd Qu.: 3.67708   3rd Qu.: 12.50   3rd Qu.:18.10   3rd Qu.:0.6240  
##  Max.   :88.97620   Max.   :100.00   Max.   :27.74   Max.   :0.8710  
##        rm             age              dis              rad        
##  Min.   :3.561   Min.   :  2.90   Min.   : 1.130   Min.   : 1.000  
##  1st Qu.:5.886   1st Qu.: 45.02   1st Qu.: 2.100   1st Qu.: 4.000  
##  Median :6.208   Median : 77.50   Median : 3.207   Median : 5.000  
##  Mean   :6.285   Mean   : 68.57   Mean   : 3.795   Mean   : 9.549  
##  3rd Qu.:6.623   3rd Qu.: 94.08   3rd Qu.: 5.188   3rd Qu.:24.000  
##  Max.   :8.780   Max.   :100.00   Max.   :12.127   Max.   :24.000  
##       tax           ptratio          lstat            medv      
##  Min.   :187.0   Min.   :12.60   Min.   : 1.73   Min.   : 5.00  
##  1st Qu.:279.0   1st Qu.:17.40   1st Qu.: 6.95   1st Qu.:17.02  
##  Median :330.0   Median :19.05   Median :11.36   Median :21.20  
##  Mean   :408.2   Mean   :18.46   Mean   :12.65   Mean   :22.53  
##  3rd Qu.:666.0   3rd Qu.:20.20   3rd Qu.:16.95   3rd Qu.:25.00  
##  Max.   :711.0   Max.   :22.00   Max.   :37.97   Max.   :50.00

对结果简单描述即可。例如:crim处于较高的位置, ptratio和lstat都接近最大值,age为最大值,其余数据在较适中的位置。

  1. 在此数据集中,有多少人口普查区平均每户住宅超过七个房间? 每个住宅超过八个房间? 评论每个住宅平均超过八个房间的人口普查区。
sum(Boston$rm>7)
## [1] 64
sum(Boston$rm>8)
## [1] 13

多于7的有64个,多于8的有13个。

summary(Boston)
##       crim                zn             indus            chas        
##  Min.   : 0.00632   Min.   :  0.00   Min.   : 0.46   Min.   :0.00000  
##  1st Qu.: 0.08205   1st Qu.:  0.00   1st Qu.: 5.19   1st Qu.:0.00000  
##  Median : 0.25651   Median :  0.00   Median : 9.69   Median :0.00000  
##  Mean   : 3.61352   Mean   : 11.36   Mean   :11.14   Mean   :0.06917  
##  3rd Qu.: 3.67708   3rd Qu.: 12.50   3rd Qu.:18.10   3rd Qu.:0.00000  
##  Max.   :88.97620   Max.   :100.00   Max.   :27.74   Max.   :1.00000  
##       nox               rm             age              dis        
##  Min.   :0.3850   Min.   :3.561   Min.   :  2.90   Min.   : 1.130  
##  1st Qu.:0.4490   1st Qu.:5.886   1st Qu.: 45.02   1st Qu.: 2.100  
##  Median :0.5380   Median :6.208   Median : 77.50   Median : 3.207  
##  Mean   :0.5547   Mean   :6.285   Mean   : 68.57   Mean   : 3.795  
##  3rd Qu.:0.6240   3rd Qu.:6.623   3rd Qu.: 94.08   3rd Qu.: 5.188  
##  Max.   :0.8710   Max.   :8.780   Max.   :100.00   Max.   :12.127  
##       rad              tax           ptratio          lstat      
##  Min.   : 1.000   Min.   :187.0   Min.   :12.60   Min.   : 1.73  
##  1st Qu.: 4.000   1st Qu.:279.0   1st Qu.:17.40   1st Qu.: 6.95  
##  Median : 5.000   Median :330.0   Median :19.05   Median :11.36  
##  Mean   : 9.549   Mean   :408.2   Mean   :18.46   Mean   :12.65  
##  3rd Qu.:24.000   3rd Qu.:666.0   3rd Qu.:20.20   3rd Qu.:16.95  
##  Max.   :24.000   Max.   :711.0   Max.   :22.00   Max.   :37.97  
##       medv      
##  Min.   : 5.00  
##  1st Qu.:17.02  
##  Median :21.20  
##  Mean   :22.53  
##  3rd Qu.:25.00  
##  Max.   :50.00
summary(subset(Boston, rm > 8))
##       crim               zn            indus             chas       
##  Min.   :0.02009   Min.   : 0.00   Min.   : 2.680   Min.   :0.0000  
##  1st Qu.:0.33147   1st Qu.: 0.00   1st Qu.: 3.970   1st Qu.:0.0000  
##  Median :0.52014   Median : 0.00   Median : 6.200   Median :0.0000  
##  Mean   :0.71879   Mean   :13.62   Mean   : 7.078   Mean   :0.1538  
##  3rd Qu.:0.57834   3rd Qu.:20.00   3rd Qu.: 6.200   3rd Qu.:0.0000  
##  Max.   :3.47428   Max.   :95.00   Max.   :19.580   Max.   :1.0000  
##       nox               rm             age             dis       
##  Min.   :0.4161   Min.   :8.034   Min.   : 8.40   Min.   :1.801  
##  1st Qu.:0.5040   1st Qu.:8.247   1st Qu.:70.40   1st Qu.:2.288  
##  Median :0.5070   Median :8.297   Median :78.30   Median :2.894  
##  Mean   :0.5392   Mean   :8.349   Mean   :71.54   Mean   :3.430  
##  3rd Qu.:0.6050   3rd Qu.:8.398   3rd Qu.:86.50   3rd Qu.:3.652  
##  Max.   :0.7180   Max.   :8.780   Max.   :93.90   Max.   :8.907  
##       rad              tax           ptratio          lstat           medv     
##  Min.   : 2.000   Min.   :224.0   Min.   :13.00   Min.   :2.47   Min.   :21.9  
##  1st Qu.: 5.000   1st Qu.:264.0   1st Qu.:14.70   1st Qu.:3.32   1st Qu.:41.7  
##  Median : 7.000   Median :307.0   Median :17.40   Median :4.14   Median :48.3  
##  Mean   : 7.462   Mean   :325.1   Mean   :16.36   Mean   :4.31   Mean   :44.2  
##  3rd Qu.: 8.000   3rd Qu.:307.0   3rd Qu.:17.40   3rd Qu.:5.12   3rd Qu.:50.0  
##  Max.   :24.000   Max.   :666.0   Max.   :20.20   Max.   :7.44   Max.   :50.0
boxplot(Boston)

boxplot(subset(Boston, rm > 8))

对这些区域简单描述即可。例如:多于8个房间的人口普查区域,age和medv值相对较高,tax相对较低。