二手汇总数据的重新统计分析


title: "crosstable"
author: "wintryheart"
date: "2022/9/11"
output: html_document


library(Statamarkdown)
stataexe <- "C:/Program Files/Stata17/StataMP-64.exe"
knitr::opts_chunk$set(engine.path=list(stata=stataexe))
knitr::opts_chunk$set(echo = TRUE, error=TRUE, cleanlog=TRUE, comment=NA)

一、问题

如果将二手汇总数据整理成可用于统计分析的数据。

1、 辛普森悖论

摘自百度百科

“校长,不好了,有很多男生在校门口抗议,他们说今年研究所女生录取率42%是男生21%的两倍,我们学校遴选学生有性别歧视”,校长满脸疑惑的问秘书:“我不是特别交代,今年要尽量提升男生录取率以免落人口实吗?”

秘书赶紧回答说:“确实有交代下去,我刚刚也查过,的确是有注意到,今年商学院录取率是男性75%,女性只有49%;而法学院录取率是男性10%,女性为5%。两个学院都是男生录取率比较高,校长这是我作的调查报告。”

学院 女生 女生 女生 男生 男生 男生 合计 合计 合计
申请 录取 录取率 申请 录取 录取率 申请 录取 录取率
商学院 100 49 49% 20 15 75% 120 64 53.30%
法学院 20 1 5% 100 10 10% 120 11 9.20%
总计 120 50 42% 120 25 21% 240 75 31.30%

“秘书,你知道为什么个别录取率男皆大于女,但是总体录取率男却远小于女吗?”

2、目标数据集

每一交叉类别对应一个频数。

性别 学院 录取 频数
  1. 性别(sex): 0=女生 1=男生
  2. 学院(school): 0=商学院 1=法学院
  3. 录取(pass): 0=未录取 1=录取

二、数据整理

1,只保留表格中的关键数据:构建其他数据的基础数据

学院 女生 女生 男生 男生
申请 录取 申请 录取
商学院 100 49 20 15
法学院 20 1 100 10

2,手工转换成符合习惯的数据集

性别 学院 申请 录取
sex school apply pass
女生 商学院 100 49
女生 法学院 20 1
男生 商学院 20 15
男生 法学院 100 10

3,利用STATA处理数据集

clear
input sex school apply pass
0 0 100 49
0 1 20 1
1 0 20 15
1 1 100 10
end

list
# 生成宽表的唯一id
gen id=_n
# 将录用和申请变成count系列变量,为宽表变长表作准备
# count1表示录用的频数,count0表示没录用的频数
rename pass count1
gen count0=apply-count1
drop apply
list
# 宽表转长表,生成新变量pass,0=没录用 1=录用
reshape long count, i(id) j(pass)
list 
school
0 1 Total
sex sex sex
0 1 Total 0 1 Total 0 1 Total
pass=0 51 25 46.67 95 90 90.83 58.33 79.17 68.75
pass=1 49 75 53.33 5 10 9.17 41.67 20.83 31.25

4,补充:充分利用reshape整理数据

4.1 在1的基础上直接在Excel里转置成可以导入STATA的表。

学院 商学院 法学院
女生 申请 100 20
女生 录取 49 1
男生 申请 20 100
男生 录取 15 10

4.2 稍加调整变量名,直接粘贴导入 STATA

sex pass count0 count1
女生 申请 100 20
女生 录取 49 1
男生 申请 20 100
男生 录取 15 10

注:count0为商学院的频数,count1为法学院的频数

4.3 反复利用reshape命令进行整理


gen id=_n
reshape long count, i(id) j(school)
list

// 现在的频数是按性别和学院分的“申请”和“录取”的频数。
// “申请”是包含“录取”的,需要调整成互斥的分类,即“录取”和“没录取”。
// 因此,我们需要再做一次长宽表的调整,以生成“没录取”类别的频数。

// 在此之前,必须调整pass的赋值和变量属性,否则后面无法执行reshape命令
replace pass="2" if pass=="申请"
replace pass="1" if pass=="录取"
destring pass, replace

replace sex="0" if sex=="女生"
replace sex="1" if sex=="男生"
list


// 在长表变宽表前,还需要调整id的赋值。原来的id编码是围绕学院转换的。
// 围绕pass进行长宽表转换,需要满足两个条件:
// 1, id+pass的组合是唯一;2,id的取值是随pass的取值循环往复的
// 例如,本例中,pass=1时,对应的id分别为1、2、3、4;
// 同样,pass=2时,对应的id还是取这四个值。
// 4个一组其实也代表除pass之外,其他关键变量的组合是4种。变成宽表,那就是4行。
sort pass
forvalues n=0/1 {
    replace id=_n-4*`n' if pass==`n'+1  //按pass的取值进行id赋值循环。
}

reshape wide count, i(id) j(pass)
list

// 生成“没录取”的频数
gen count0=count2-count1
list
drop count2
order id school sex count0 count1

// 再次转成长表,就符合期望的数据集了。
reshape long count, i(id) j(pass)
list


三、重新统计分析

# 列联表
table () (school sex) [fw=count], stat(fvpercent pass)

# 对数线性分析
glm pass sex school [fw=count], family(binomial)

# 二项logit回归
logit pass sex school [fw=count]

四、汇总数据转换成个体数据集

duplicates命令是报告和删除重复数据。
expand命令恰恰相反,复制数据。
利用expand命令将分类汇总数据转换成个体数据变得非常简单。

expand count  //根据count的值复制相应样本数。
tab pass
drop count  //count变量不再有意义。

# 不带权重的二项logit回归
logit pass sex school 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容