列联表又称交互分类表,所谓交互分类,是指同时依据两个变量的值,将所研究的个案分类。交互分类的目的是将两变量分组,然后比较各组的分布状况,以寻找变量间的关系。
这里是按两个变量交叉分类的,该列联表称为两维列联表,若按3个变量交叉分类,所得的列联表称为3维列联表,依次类推。3维及以上的列联表通常称为“多维列联表”或“高维列联表”,而一维列联表就是频数分布表。
列联表的结构
二维列联表
r * c 列联表
观察值的分布
百分比分布
期望频数的分布
假设检验
独立性检验
假设观察频数与期望频数没有差别,而统计量χ2值表示二者间的偏离程度。
相关系数
ψ相关系数
皮尔逊定义的列联系数
V相关系数
Fisher精确检验
卡方统计量是近似的,而Fisher精确检验使用的是超几何分布。
相对危险度(Relative Risk, RR)
参考下面的SPSS实例
优势比(Odds Ratio, OR)
参考下面的SPSS实例
Kappa一致性检验
在数据分析中,比较两种预测方法预测结果的一致性用到Kappa检验。
配对χ2检验
通过Kappa检验,解决了两种测量间究竟有无关联的问题,但是通过列联表的观察,发现两位顾问的评价是否不太一致,这种假设又如何来加以分析呢?
McNemar配对χ2检验 就是经典的配对检验,专门用于解决这类问题。
分层χ2检验
分层χ2检验是把研究对象分解成不同层次,按各层对象来进行行变量与列变量的独立性研究。Statistics中Cochran’s and Mantel-Haenszel statistics会自动给出结果。
分层χ2检验是一种很好的控制其他因素的方法,使分析者能得到更准确的结果。如果数据量足够大 ,还可以引入更多的分层因素加以控制。 但是,和SAS中的CMH χ2不同,SPSS提供的CMH χ2检验只能进行二分类变量的检验,而不能进行多分类变量的检验。
检验比较
χ2检验
假设观察频数与期望频数没有差别,而统计量χ2值表示二者间的偏离程度。
卡方检验方法的适用条件
关联程度的度量
χ2检验从定性的角度分析是否存在相关行,而各种关联指标(相对危险度RR与优势比OR)从定量的角度分析相关的程度如何。
Kappa一致性检验与配对χ2检验
Kappa一致性检验对两种方法结果的一致程度进行评价,而配对χ2检验则用于分析两种分类方法的分类结果是否有差异。
分层χ2检验
分层χ2检验是把研究对象分解成不同层次,按各层对象来进行行变量与列变量的独立性研究。Statistics中Cochran’s and Mantel-Haenszel statistics会自动给出结果。
SPSS分析
菜单
Analyze ->Descriptive Statistics ->Crosstabs
实例一:卡方检验和风险评估
数据集(site.sav)
某公司实行数据库营销,其杂志销售部每个月向数据库中的人们发送征订邮件,但是回应率极低。他们希望找到一种好的方法来定位潜在的客户,只向这些客户发放邮件,从而节省人力物力。数据库中的资料包括:个人一般信息(年龄、性别、婚姻状况、收入、受教育水平及是否退休等),个人行为特征(主要交通工具、有无手机、呼机、电视、CD及是否订阅报纸)。另外,在发送邮件后,还有一个变量也加入到了数据库中:是否对邮件进行回应,即是否在邮件的提示性进行杂志购买。经研究发现,报纸订阅与邮件发送有相关性。该部门经理想了解报纸订阅者回应邮件的概率是非订阅者的几倍。
参数设置
统计量
结果分析
交叉制表
列联表分析表明,并没有太多人对杂志的邮件做出回应,但是其中订阅人占了较大比例。
卡方检验
p值为0.000,故认为订阅报纸与邮件回应是相关的。那么报纸订阅者的回应概率是未订阅者的多少倍呢?通过计算RR来解决。
风险估计
对于报纸订阅者而言,邮件响应的相对危险度是其回应概率与非报纸订阅者的回应概率的比值,其估计值是(380/2768) / (299/3632) = 13.7% / 8.2%=1.668,表明报纸订阅者对邮件的响应概率是非报纸订阅者的1.668倍。 或者说报纸订阅者对邮件的无响应的概率是非报纸订阅者的0.94倍。
而优势比即一个事件的Odds Ratio是它发生的概率除以不发生的概率
实例二:Kappa一致性检验和配对卡方检验
数据集(site.sav)
某公司期望扩展业务,增开几家分店,但对开店地址不太确定。于是选了20个地址,请两位资深顾问分别对20个地址作了一个评价,把它们评为好、中、差三个等级,以便确定应对哪些地址进行更进一步调查,那么这两位资深顾问的评价结果是否一致。
参数设置
统计量
结果分析
交叉制表
Kappa一致性检验
Kappa检验的原假设:Kappa=0,即两者完全无关。结果显示Kappa=0.478,P<0.05,拒绝原假设,认为两位顾问的评价结果存在一致性。
配对卡方检验
Kappa一致性检验对两种方法结果的一致程度进行评价,而配对χ2检验则用于分析两种分类方法的分类结果是否有差异。
此处原假设:两顾问的评价结果无差别,而p=0.072>0.05,故接受原假设,认为基本上相同
实例三:分层卡方检验
数据集(cmh.sav)
某零售连锁店对3家分店的客户满意度进行了调查,数据见cmh.sav,其中一项指标是在购物时是否经常向店员寻求帮助,现希望分析寻求帮助与性别有无联系。
统计结果
未分层的卡方检验
将gender和contact分别作为行变量和列变量,并做χ2检验,p<0.05,认为两者间有联系。
因为每家分店的结果可能不一样,上面的卡方检验收到分店因素的影响可能不准确,需要根据分店进行分层统计。
但是分层因素在几个组之间的分布不均,既可能削弱了原本存在的行变量与列变量间的关系,也可能使得原本不存在关系的两个变量关系呈现统计学显著性。
按分店分层卡方检验
可以看到分店的卡方检验并无显著性(p >0.05),说明每个分店的寻求帮助与性别之间没有强关联。
但是,由于分层后样本量大大减小,这究竟是因为检验效能不足导致的无差异,还是真的无差异?
为此可以使用Cochran’s and Mantel-Haenszel χ2检验来分析。这种方法可以在考虑了分层因素的影响后给出检验结果。
Cochran’s and Mantel-Haenszel χ2检验
首先给出的是层间差异的检验,即考察不同层间gender与contact的联系是否相同。
原假设H0: 分店之间的联系是相同的。
p = 0.638说明,在不同分店层间, gender与contact的联系是相同的。
调整了分层因素作用后的综合OR值=0.636,即去除了不同分店的混杂效应后,和女性相比,男性顾客寻求帮助的优势比为0.636,或者说更不容易寻求帮助。
SQL使用(一)——联合查询
1.联合查询分类
内连接(inner Join 或 Join)
外连接(outer Join)
左外连接(left outer Join 或 left Join)
右外连接(right outer Join 或 right Join)
全外连接(full outer Join 或 full Join)
交叉连接 (cross Join)
结果集链接 (union 和 union all)
2.联合查询介绍
相关数据表如下:
A表
B表
C表
2.1内连接(Inner Join)
内连接:仅显示两个表中匹配行,即两表中都有才显示。
SQL如下:
SELECT A.id AS AID, A.content AS AContent, B.id AS BID, B.content AS BContent FROM A INNERJOIN B ON (A.id = B.id);
1
2
3
4
5
6
7
8
查询结果:
由查询结果可以看出,内连接根据连接条件(A.id=B.id)查询出了A、B两表中都存在的数据信息。2个表的联合查询结果如此,那么3个表甚至更多表联合查询的结果呢?
A、B、C三表联合内查询SQL
SELECTA.idASAID, A.contentASAContent, B.idASBID, B.contentASBContent, C.idASCID, C.contentASCContentFROMAINNERJOINBON(A.id = B.id)INNERJOINCON(A.id = C.id)
1
2
3
4
5
6
7
8
9
10
11
查询结果:
啊?怎么多了一行数据?不用惊讶,其实C表中有2个id为1的记录,然而我们怎么理解得到的查询结果呢?
可以把A、B两表的查询结果作为T表(中间结果表),然后T表内连接C表,连接条件为T.A.id=C.id。
简单来说n(n>=2)都可以看做两张表的联合查询,后面的小节将只介绍两个表的联合查询。
2.2外连接(Outer Join)
2.2.1左外连接(Left outer Join)
左外连接:左表有就显示,不论右表。
SQL:
SELECTA.idASAID, A.contentASAContent, B.idASBID, B.contentASBContentFROMALEFTJOINBON(A.id = B.id)
1
2
3
4
5
6
7
8
查询结果:
左连接并不是把B表左连接到A表上,而是把A表作为基准表。由查询结果可以看出,A、B两表左连接,只要A中有结果,无论B表中有无结果,都会被查询出来。
2.2.2右外连接(Right outer Join)
右外连接:右表有就显示,不论左表。
SQL:
SELECTA.idASAID, A.contentASAContent, B.idASBID, B.contentASBContentFROMARIGHTJOINBON(A.id = B.id)
1
2
3
4
5
6
7
8
9
查询结果:
右连接和左连接类似,只是把B表(连接的表)作为基准表。由查询结果可以看出,无论A表是否存在其他数据,只要B表数据存在就会被查询出来。
2.2.3全外连接(Full outer Join)
全外连接:左表/右表,有一个有就显示。
SQL:
SELECTA.idASAID, A.contentASAContent, B.idASBID, B.contentASBContentFROMAFULLOUTERJOINBON(A.id = B.id)
1
2
3
4
5
6
7
8
9
查询结果:
全外连接查询就字面意思也不难看出是查询出两表(A、B)中的所有记录信息。
注:MySQL中不支持全外连接(但是可以union来实现,后面会介绍)。
2.2交叉连接(Cross Join)
SQL:
SELECTA.idASAID, A.contentASAContent, B.idASBID, B.contentASBContentFROMACROSSJOINB
1
2
3
4
5
6
7
8
9
查询结果:
由结果可以看出,交叉连接是对A、B量表进行笛卡尔积的结果查询出来。即A的每条记录都有和B中所有记录相对应的信息。
2.3 SQL Union
SQL Union用于将多个select结果集进行合并。值得注意的是,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SQL:
SELECT*FROMAUNIONSELECT*fromB
1
查询结果:
Union是把2个Select结果集进行合并,由查询结果也不难看出,A、B两表的结果数据进行了合并,并且都被查询出来了。
如果2个Select结果集中存在相同的结果,用Union则会把相同的记录进行合并,查询结果中仅仅会显示一条。那么如果想都显示出来,把Union换成Union All 即可。
Union实现Full outer Join:
1.首先获取A、B表中id的不同组合。
SQL:
CREATEVIEWvasSELECTA.idfromAUNIONSELECTB.idfromB
1
视图内存如下:
2.以视图V为基本表,Left Join A、B表即可。
SQL:
SELECTA.id, A.content, B.id, B.contentFROMvLEFTJOINAON(A.id = v.id)LEFTJOINBON(B.id = v.id)
1
2
3
4
5
6
7
8
9
查询结果如下:
卡方检验你的数据应该用交叉列联表做,数据录入格式为:建立两个变量,变量1是组别,
正常对照组用数据1表示,病例组用数据2表示;变量2是疗效等分类变量,用1表示分类属性1,用2表示分类属性2,
还有一个变量3是权重,例数
数据录入完成后,先加权频数后点analyze-descriptive statistics-crosstabs-把变量1选到rows里
,把变量2选到column里,然后点击下面的statistics,打开对话框,勾选chi-squares,
然后点continue,再点ok,出来结果的第3个表就是你要的卡方检验,第一行第一个数是卡方值,
后面是自由度,然后是P值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)