需要使用 BWGHT.RAW 中的数据。
(1)样本中有多少妇女,又有多少人报告在怀孕期间抽烟?
(2)平均每天抽烟数量是多少?平均数作为这个案例中“典型”妇女的度量指标好吗?请解
释。
(3)怀孕期间抽烟的妇女中,平均每天抽烟数量是多少?与第(2)部分中的答案有何区别,
为什么?
(4)求出样本中 fatheduc 的平均值。为何只用 1192 个观测计算这个平均值?
(5)报告平均家庭收入及其标准误,以美元为单位。
准备:
该题所使用的数据各变量的具体解释可参见原书第 4 版的第 141 页的例 4.9“婴儿出生体重方差
中父母的受教育程度”。
在 RStudio 中导入 BWGHT
attach(BWGHT) #绑定数据集 BWGHT
(1) 样本中有多少妇女,又有多少人报告在怀孕期间抽烟?
BWGHT[!complete.cases(BWGHT),] #在加载数据后我们可以先扫一眼数据,发现有 NA 值,进而
引起我们的警惕,所以首先检查数据是否有缺失值。该命令可以列出矩阵或数据框中有一个或
者多个缺失值的行。 。(参见《R 语言实战》第一版 319 页) 返回的结果是一个 197 x 14 的
表,表示有 197 个观测存在一个或几个变量上的缺失。
library(mice)
md.pattern(BWGHT) #我们发现缺失值过多,而且缺失值分在的不同变量中,我们进而采用一
种更方便的方法审视缺失值。 mice 包中的 md.pattern()函数能够轻松实现这一功能。(参见
《R 语言实战》第一版 320 页)。返回的结果告诉我们在 fatheduc 变量上有缺失值的观测有
196 个,而在 motheduc 上有缺失值的观测有 1 个。
length(fatheduc) # 由于该数据集中的观测是妇女的宝宝的情况,所以一个观测对应着一名妇
女。我们只需随意取一个变量,测量其观测值数量即可。值得一提的是,缺失值仍然会计算为
一个观测。例如 fatheduc 中有 196 个缺失值,而 faminc 中没有缺失值,但 length(fatheduc)
table(cigs) #为了求得有多少人报告在怀孕期间抽烟,我们可以把 cigs 变量做个频数统计。我们
看到 cigs 为 0 的共有 1176 人,那么抽烟的人就是 1388-1176=212 人。
a<-BWGHT[cigs>0,]
a #我们也可以把 cigs 大于 0 的观测提取出来保存在 a 中,然后展现 a,发现其是 212 x 14 的
表,说明有 212 个观测的 cigs 大于 0。
(2) 平均每天抽烟数量是多少?平均数作为这个案例中“典型”妇女的度量指标好吗?请解
释。
mean(cigs) #求平均数得到 2.087176
通过之前的 table(cigs)由我们可以发现绝大部分妇女是不抽烟的,而且存在几个几个嗜烟如命
的人,例如有人一天抽 50 只烟!因此,说一个典型的妇女每日抽烟 2 只并不具备代表性。
(3)怀孕期间抽烟的妇女中,平均每天抽烟数量是多少?与第(2)部分中的答案有何区别,
为什么?
mean(a$cigs) #我们之前把抽烟的观测都保存在了数据集 a 中,我们再计算 a$cigs 的平均值就
是怀孕期间抽烟的妇女的平均吸烟数。这个值计算出来是 13.66509。
我们发现这一平均值远远大于第(2)部分中的答案。更加证实了(2)中的答案不能代表“典
型”的妇女。
(4)求出样本中 fatheduc 的平均值。为何只用 1192 个观测计算这个平均值?
mean(fatheduc,na.rm = TRUE) #由于 fatheduc 存在缺失值,我们直接在 mean()中定义 na.rm =
TRUE 来计算排除缺失值的平均值。
只用 1192 个观测计算这个平均值是因为 fatheduc 有 196 个缺失值。
(5)报告平均家庭收入及其标准误,以美元为单位。
income<-1000*faminc #将家庭收入换算成美元(faminc 是以千美元为单位的),保存在
income 中。
mean(income) #平均家庭收入为 29026.66。
std <- function(x) sd(x)/sqrt(length(x)) #我们编写一个标准误的公式。
std(income) #得到标准误为 502.9888。
detach(BWGHT) #解除绑定数据集 BWGHT
和 length(faminc)都得到 1388。所以一共有 1388 名妇女。
暂无数据