全文链接:https://tecdat.cn/?p=33514
综合社会调查(GSS)是由国家舆论研究中心开展的一项观察性研究。自 1972 年以来,GSS 一直通过收集当代社会的数据来监测社会学和态度趋势。其目的是解释态度、行为和属性的趋势和常量。从 1972 年到 2004 年,GSS 的目标人群是居住在家庭中的成年人(18 岁以上)(点击文末“阅读原文”获取完整代码数据)。
相关视频
本篇文章旨在帮助客户使用R语言对GSS数据进行自举法bootstrap统计推断、假设检验以及探索性数据分析可视化。首先,我们将简要介绍GSS数据集的特点和背景。然后,我们将详细说明自举法bootstrap的原理和应用,以及如何利用R语言进行自举法bootstrap分析。接着,我们将探讨假设检验的概念和步骤,并展示如何使用R语言进行假设检验分析。最后,我们将介绍数据可视化的重要性,并演示如何使用R语言生成图表和可视化结果。
第 1 部分:数据
1994 年以前,全球住户抽样调查几乎每年进行一次(1979 年、1981 年或 1992 年因资金限制除外)。此后,全球抽样调查在偶数年进行,采用双重抽样设计。这主要是通过面对面的访谈完成的。2002 年,全球抽样调查开始使用计算机辅助个人访谈(CAPI)。此外,当难以安排与被抽样调查对象进行面对面面谈时,也会通过电话进行面谈。从 1972 年到 1974 年的调查中,采用了修正概率抽样法(整群配额抽样法)。从 1975 年到 2002 年,全球住户抽样调查采用了完全概率住户抽样,使每个住户被纳入调查的概率相等。因此,全球住户抽样调查对住户一级的变量进行了自加权。为了保持设计的无偏性,全球住户抽样调查开始采用两阶段子抽样设计。
加载数据
load("C:/gs.data")
第2部分:研究问题
我们想了解工作满意度与受访者是自营职业者还是为他人工作之间是否存在关系。我们的分析将侧重于《政府统计调查》报告。为此,我们将回答以下问题:
对自己的工作感到满意的个体经营者和对自己的工作感到满意的个体经营者的人口比例是否存在差异?
对工作非常满意的自雇人的平均家庭收入(经通货膨胀调整后)是否高于对工作非常满意的为他人工作的人?
对工作非常满意的自营职业人和对工作非常满意的为他人工作的人的典型家庭收入(如果与平均家庭收入不同)是多少?两者的典型家庭收入是否存在差异?兴趣:就我个人而言,由于我做出了转行的决定,我一直在想,工作满意度是取决于就业状况,还是仅仅取决于所从事工作的性质,而不论是为他人工作还是自营职业。此外,出于好奇,我还想知道自营职业者和为他人工作的成年人对工作真正满意的平均/典型家庭收入。
第 3 部分:探索性数据分析
在本分析中,我们将剔除所有缺失结果(所有 NA)。为便于分析
gssc <- gss %>%
filter(year == "2012") %>%
select(satjob, wrkslf, coninc, income06)
使用 summary(gssc) 查看数据摘要,使用 str(gssc) 查看数据结构。了解变量的组成值(类型和结构)将有助于我们进行分析。
str(gssc)
summary(gssc)
为了回答我们的研究问题,我们希望了解自营职业受访者以及为他人工作的受访者中对其工作感到满意(非常满意和比较满意)和不满意(非常不满意和有点不满意)的人数和比例。
首先,我们要找到计数:
gssc %>%
filter(!is.na(wrkslf), !is.na(satjob)) %>%
group_by(wrkslf) %>%
count(satjob)
然后,我们利用上述结果创建一个或然率表。
conting.table <- as.table(conting)
conting.table
我们可以使用镶嵌图和柱状图来直观地显示上述结果。
mosaicplot(conting
color = "skyblue")
点击标题查阅往期内容
R语言空气污染数据的地理空间可视化和分析:颗粒物2.5(PM2.5)和空气质量指数(AQI)
左右滑动查看更多
01
02
03
04
gssc %>%
filter(!is.na(satjob), !is.na(wrkslf)) %>%
ggp.y = element_blank(), axis.ticks.y = element_blank())
超过 50%的个体经营者对自己的工作非常满意,约 50%的为他人工作的人也对自己的工作非常满意。
conting.table %>%
prop.ta
round(3)
自雇受访者中对工作非常不满意的比例很低,仅为 1.3%,而为他人工作的受访者中有 3.4% 对工作非常不满意。
对工作满意的自雇人与对工作满意的为他人工作的人的比例
gssc <- gssc %>%
mutate(lsatjob =
gssc %>%
filter(!is.n
我们感兴趣的是对工作满意的自雇受访者和为他人工作的受访者的比例。
gssc %>%
filter(!is.na(wrkslf),= "Satisfied")/n())
收入、就业状况与工作满意度之间的关系
在为他人工作的受访者和自营职业者中,对工作感到满意的人占很大比例。我们将研究收入水平与就业状况(自营职业和为他人工作)对工作满意度的关系。正如我们在研究问题中指出的,我们的重点是对工作非常满意的受访者的平均家庭收入。
Plot1 <- gssc %>%
filter(wrkslf == "Self-Employed", !is.na(satjob), !is.na(income06)) %>%
grid.arrange(Plot1, Plot2, ncol = 2,
从柱状图中我们可以看出,对于两种就业状况的受访者而言,随着家庭总收入水平的增加,对工作非常满意和一般满意的受访者人数都在增加,只有少数人对工作 "有点不满意"(收入在 11 万美元以上的自雇受访者除外)。
让我们更清楚地了解家庭总收入中对工作非常满意的自营职业受访者和为他人工作的受访者。
gssc %>%
filter(satjob == "Very Satis), axis.ticks.x = element_blank())
我们希望评估对工作非常满意的两种就业状况下的平均家庭收入(通货膨胀调整后)。为此,我们绘制了直方图和方框图,并进行了汇总统计,以确定数据的形状、中心和变异性。
请记住,在 155 名自营职业受访者中,有 97 人对自己的工作非常满意;在 1276 名为他人工作的受访者中,有 626 人对自己的工作非常满意(见上文的或然率表)。
p3 <- gssc %>%
filter(satjob == "Very Satisfied", wrkslf == "Self-Employed", !is.na(coninc)) %>%
两个样本分布都向右强烈倾斜,典型的家庭收入将是分布的中位数。IQR 可以最好地解释这两个分布的变异性。
我们绘制一个方框图来直观显示样本的情况:
gssc %>%
filter(satjob ==
如前所述,这两个分布均呈强烈的右偏态,离群值均高于 150 000 元。
让我们对这两个样本进行汇总统计。
gssc %>%
filter(satjob == "Very Satisfied",
nc, 0.75))
gssc %>%
filter(satjob == "Very
对工作非常满意的自雇人士的典型家庭收入为 51 705 元,家庭收入变数为 70 855 元。收入较低的 25% 的人的收入为 21,065 元,75% 的人的收入为 91,920 元。他们的平均家庭收入为 70,911.8元。
gssc %>%
filter(satjob
count(wrkslf)
为他人工作的人对自己的工作非常满意,其典型家庭收入为 42,130 元,家庭收入变数为 55,535 元,低于自营职业的人。他们中收入最低的 25%的人的收入为 21 065 元(与自雇者相同),75%的人的收入为 76 600 元,低于自雇者。他们的平均家庭收入为 56 165.08 元。
在下一节中,我们将了解对工作非常满意的个体经营者的平均家庭收入是否高于为他人工作且对工作非常满意的个体经营者的平均家庭收入。我们还将进行假设检验,以估计他们的典型收入是否存在差异。
第 4 部分:推断
工作满意度与就业状况之间的关系(自营职业者和为他人工作的受访者) 为了回答 "工作满意度与就业状况之间是否存在关系 "这一问题,我们将对其独立性进行卡方检验(对于两个分类变量,至少有 1 个大于 2 个水平的变量)。
我们将定义检验假设:H0(什么也没发生):工作满意度和就业状况是独立的。工作满意度不会因受访者的就业状况而变化。HA(有事发生):工作满意度和就业状况互为因果。工作满意度确实因受访者的就业状况而异。然后,检查是否存在以下条件
chisq<- chisq.t
chisq
在 5%的显着水平上,P 值小于 0.05,因此我们拒绝 H0。因此,数据提供了令人信服的证据,表明工作满意度确实因受访者的就业状况而异,但我们还需要确认所有预期计数是否都有至少 5 个案例。
#Expected Counts
chisq$expected
对工作非常不满意的自雇受访者的预期人数比 5 人少 0.13 人。我们可以忽略它,因为它近似于 5(显著性数字),它只是一个单元格,而我们的数据是一个 2 乘 4 的表格,我们可以接受上面的卡方检验结果,但我们有可能出现类型 1 错误(拒绝零假设,而实际上零假设是真的)。我们可以继续使用推论函数进行详细的卡方分析,或者为了更确定结果,将最后两行折叠为 "不满意 "行,然后进行推论检验,或者直接使用自举检验。我们将采用后两种建议,以确保满足样本量条件并减少类型 1 错误。
bootstrap自举法
由于上述原因,我们将使用引导法来检验我们的假设,即就业状况和工作满意度是相关的。
gssc %>%
alternative = "greater", boot_method = "perc", nsim = 15000)
由于 p 值低于 0.05,我们拒绝零假设,从而证实了上述皮尔逊卡方检验的结论。我们将继续使用建议中的另一种方法来确认我们的结果。
因预期计数小于 5 而折叠单元格
创建一个新变量 csatjob 并添加到数据帧 gssc 中。
gssc <- gssc %>%
Satisfied", "Dissatisfied")))
找出观察到的计数。预期计数和或然率表将显示在我们的 "推断 "结果中。
gssc %>%
filter(!is.na(wrkslf), !is.na(csatjob)) %>%
group_by(wrkslf) %>%
count(csatjob)
因此,我们将继续进行假设检验,即由于所有条件都已满足,就业状况和工作满意度在 5%的显著性水平上存在关联。
gssc %>%
filter(!i
alternative = "greater")
p 值小于我们之前的结果,因此减少了类型 1 错误的可能性。因此,在 5%的显著水平上,p 值小于 0.05,所以我们拒绝 H0。因此,数据提供了令人信服的证据,证明工作满意度和就业状况如前所述是相互依赖的。
对工作感到满意的自营职业者与对工作感到满意的为他人工作者之间的差异
我们想了解对自己的工作感到满意的自雇人与对自己的工作感到满意的为他人工作的人之间的人口比例是否存在差异。请点击查看上面的数据。
从我们的数据来看,91.6% 的自雇受访者对自己的工作感到满意,87.1% 的为他人工作的受访者对自己的工作感到满意。
首先,我们将使用 95% 的置信区间来估计差异。
相关参数:对工作感到满意的所有自雇人与对工作感到满意的为他人工作的人之间的差异。
点估计值:对工作感到满意的(抽样)自雇受访者与对工作感到满意的(抽样)为他人工作的受访者之间的差异。
我们检查是否满足比较两个独立比例的条件。
独立性:随机抽样:两个人群都是随机抽样的;10% 的受访者对工作满意。
gssc %>%
filter(!is.na(lsatj
我们有 95% 的把握认为,对工作感到满意的自雇人的总体比例比对工作感到满意的为他人工作的人的总体比例少 0.27% 到多 9.2%。
那么,根据我们上面计算出的置信区间,我们是否应该预期在对工作感到满意的广大自雇人和对工作感到满意的为他人工作的人的人口比例之间会发现显著差异(在同等显著性水平下)?
p自营职业者 - p其他人 = (-0.0027 , 0.092)
H0:p自营职业者 - 其他人
空值包含在区间内,因此我们无法拒绝 H0。因此,上述问题的答案是否定的。从我们的数据来看,对自己的工作感到满意的自雇人和对自己的工作感到满意的为他人工作的人之间的人口比例没有显著差异。
我们将通过在 5%的显著性水平上进行假设检验来确认上述结果,以评估对工作满意的自雇人和对工作满意的为他人工作的人之间是否存在差异。
让我们为检验定义假设:
H0:p自雇=p其他人。
对工作满意的自雇人与对工作满意的为他人工作的人的人口比例相同。
HA: p= p其他人。
对工作满意的自雇人与对工作满意的为他人工作的人的人口比例存在差异。
然后,检查是否满足进行假设检验(比较两个比例)的推理条件:
独立性:组内满足:随机抽样:两个人群都是随机抽样;两个人群都满足 10%的条件。因此,对工作满意的自雇抽样受访者相互独立,而对工作满意的为他人工作的受访者(抽样)也相互独立:我们预计对工作满意的自雇抽样受访者和对工作满意的为他人工作的受访者(抽样)不会相互依赖。
样本大小/偏斜:我们需要集合比例来检查成功-失败条件(成功条件- n*p^pool >= 10,失败条件- n(1 - p^pool) >= 10)。
phat_pool
155 * phat_pool
155 * (1 - phat_pool)
# Someone else: success
1276 * phat_pool
1276 * (1 - phat_pool)
自营职业者和其他人都符合抽样规模/偏斜条件。我们可以假定,两个比例之差的抽样分布接近正态。
因此,我们可以继续进行假设检验,因为所有条件都已满足。
gssc %>%
filter(!is.na(lsatjob), !is.na(wrkslf)) %>%
inference(y = lsatjob, x = wrkslf, type = "ht", statistic = "proportion", success = "Satisfied",
method = "theoretical", alternative = "twosided")
p 值大于 0.05,因此我们无法拒绝零假设。数据没有提供强有力的证据表明,对工作满意的个体经营者与对工作满意的个体经营者的人口比例不同。这与置信区间法得出的结论一致。
对工作非常满意的自雇人和对工作非常满意的为他人工作的人的平均和典型家庭收入的差异。
我们想了解对工作非常满意的自雇人的平均家庭收入(经通胀调整后)实际上是否高于为他人工作且对工作非常满意的人。请点击查看以上数据。
根据我们的数据,对工作非常满意的自雇受访者的平均家庭收入为 70,911.8 元,而为他人工作且对工作非常满意的受访者的平均家庭收入为 56,165.08 元。
首先,我们将使用 90% 的置信区间来估计差异。我们选择 90% 的置信区间是为了使我们的研究结果与假设检验一致,而假设检验在 5% 的显著水平下是单侧的。
相关参数:对工作非常满意的所有自雇人士与对工作非常满意的为他人工作的自雇人士的平均家庭收入之差。
点估计值:对工作非常满意的抽样自雇人与对工作非常满意的(抽样)为他人工作的人的平均家庭收入之差。
我们检查是否满足比较两个独立均值的条件。
独立性:组内满足:随机抽样:两个人群都是随机抽样;两个人群都满足 10% 的条件。因此,对工作满意的自雇受访者和对工作满意的为他人工作的受访者(样本)的家庭收入是相互独立的:两组之间相互独立(非配对)。
样本大小/偏斜:两个分布都向右强烈倾斜;81 和 578 的样本量使得使用 t 分布对每个均值分别建模是合理的。
所有条件都已满足,因此我们将使用 90% 的置信区间来估计差异。
gssc %>%
filter(satjob == "
根据上述结果,我们有 90% 的把握认为,对工作非常满意的广大自雇人的平均家庭收入(经通胀调整后)比对工作非常满意的为他人工作的人的平均家庭收入多 2,635.08 元至 26,858.36 元。
那么,根据上述我们计算出的置信区间,我们是否应该预计对工作非常满意的广大自雇人和对工作非常满意的为他人工作的人的平均家庭收入之间存在显著差异(在同等显著性水平下)?
自营职业者 - 为他人工作者 = (2635.0838 , 26858.362)
该值不在置信区间内;我们拒绝 H0。因此,上述问题的答案是肯定的。从我们的数据来看,对工作非常满意的自雇人的平均家庭收入高于对工作非常满意的为他人工作的人的平均家庭收入。
我们将在 5%的显著性水平上进行假设检验,以评估对工作非常满意的个体经营者的平均家庭收入是否高于对工作非常满意的为他人工作的个体经营者的平均家庭收入,从而证实上述结果。
让我们定义一下检验假设:
H0:自营职业者 = 为他人工作者。对工作非常满意的自雇人的平均家庭收入高于为他人工作且对工作非常满意的自雇人。
HA:自营职业者 > 为他人工作者。对工作非常满意的自雇人的平均家庭收入高于对工作非常满意的为他人工作的人的平均家庭收入。
比较两个独立均值的推论条件已经满足,因此我们继续进行假设检验。
gssc %>%
filter(satjob =
p 值小于 0.05,因此我们拒绝零假设。数据提供了令人信服的证据,表明对工作非常满意的个体经营者的平均家庭收入高于为他人工作且对工作非常满意的个体经营者。这与置信区间法得出的结论一致。
对工作非常满意的自雇人与对工作非常满意的为他人工作的人的典型家庭收入对比
如前所述,典型家庭收入就是收入中位数。因此,我们将使用 Bootstrap 方法(用于比较中位数)来估计对工作非常满意的自雇人和对工作非常满意的为他人工作的人的典型家庭收入是否存在差异。
根据我们的数据,对工作非常满意的自雇受访者的典型家庭收入为 51 705 元,而为他人工作且对工作非常满意的受访者的典型家庭收入为 42 130 元。
我们将用 95%的置信区间来估计典型家庭收入的差异,并用标准误差法进行 5%显著水平的假设检验。如前所述,所有条件均已满足。
相关参数:对工作非常满意的所有个体经营者的典型家庭收入之差
点估计值:被抽样调查的对工作非常满意的自雇人的典型家庭收入与被抽样调查的对工作非常满意的为他人工作的人的典型家庭收入之间的差异。
95% 置信区间的bootstrap引导法
gssc %>%
filter(satjob =
nsim = 15000, boot_method = "se")
根据上述结果,我们有 95% 的把握认为,对工作非常满意的广大自雇人的典型家庭收入(经通胀调整后)比对工作非常满意的为他人工作的人少 4,583.73 元,多 23,733.73 元。
那么,根据上述我们计算出的置信区间,我们是否应该期望在对工作非常满意的广大自雇人和对工作非常满意的为他人工作的人的平均家庭收入之间发现显著差异(在同等显著性水平下)?
Pop_medianself-employed - Pop_mediansomeone else = (-4583.7323 , 23733.7323)
H0:Pop_median-self-employed - Pop_medsomeone else = 0。
0 在置信区间内;我们无法拒绝 H0。因此,上述问题的答案是否定的。从我们的数据来看,对自己的工作非常满意的广大自雇人和对自己的工作非常满意的为他人工作的人的典型家庭收入之间没有显著差异。
我们将在 5%的显著性水平上进行假设检验,利用 Bootstrap 方法来评估对工作非常满意的自雇人和对工作非常满意的为他人工作的人的典型家庭收入是否存在差异,从而证实上述结果。
让我们定义一下检验假设:
H0:Pop_med-self-employed = Pop_medsomeone else。对工作非常满意的自雇人与对工作非常满意的为他人工作的人的典型家庭收入相同。
HA: Pop_med-self-employed != Pop_medsomeone else。对工作非常满意的自雇人与对工作非常满意的为他人工作的人的典型家庭收入存在差异。
gssc %>%
filter(satjob =, nsim = 15000, boot_method = "se")
p 值大于 0.05,因此我们无法拒绝零假设。数据没有提供强有力的证据表明,对工作非常满意的个体经营者的典型家庭收入与为他人工作且对工作非常满意的个体经营者的典型家庭收入有所不同。这与上文(自举bootstrap法)置信区间法得出的结论一致。
第五部分:结论
经过分析和推论,我们对 2012 年得出以下结论(如每个推论后所述):
数据提供了令人信服的证据,表明工作满意度确实因受访者的就业状况(自营职业和为他人工作)而异。它们之间存在依赖关系。
数据没有提供有力证据表明,对工作满意的自雇人与对工作满意的为他人工作的人的人口比例不同。
数据提供了令人信服的证据,证明对工作非常满意的自雇人的平均家庭收入高于对工作非常满意的为他人工作的人的平均家庭收入。4 数据没有提供有力证据表明,对工作非常满意的自雇人的典型家庭收入与为他人工作且对工作非常满意的人的典型家庭收入不同。
参考资料
David M Diez, Christopher D Barr and Mine Cetinkaya-Rundel. "OpenIntro Statistics, Third Edition". (2016).
本文中分析的数据分享到会员群,扫描下面二维码即可加群!
点击文末“阅读原文”
获取全文完整代码数据资料。
本文选自《R语言对综合社会调查GSS数据进行自举法bootstrap统计推断、假设检验、探索性数据分析可视化》。
点击标题查阅往期内容
数据分享|PYTHON用决策树分类预测糖尿病和可视化实例
基于R语言股票市场收益的统计可视化分析
R语言数据可视化分析案例:探索BRFSS数据
R语言空气污染数据的地理空间可视化和分析:颗粒物2.5(PM2.5)和空气质量指数(AQI)
R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析
R语言计算资本资产定价模型(CAPM)中的Beta值和可视化
R语言主成分分析(PCA)葡萄酒可视化:主成分得分散点图和载荷图
R语言时变向量自回归(TV-VAR)模型分析时间序列和可视化
R语言样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化
R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化
R语言对布丰投针(蒲丰投针)实验进行模拟和动态可视化生成GIF动画
R语言信用风险回归模型中交互作用的分析及可视化
R语言生存分析可视化分析
R语言线性回归和时间序列分析北京房价影响因素可视化案例
R语言用温度对城市层次聚类、kmean聚类、主成分分析和Voronoi图可视化
R语言动态可视化:绘制历史全球平均温度的累积动态折线图动画gif视频图
R语言动态图可视化:如何、创建具有精美动画的图
R语言中生存分析模型的时间依赖性ROC曲线可视化