全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
8802 2
2014-05-31
前一段时间请教过R分组进行统计分析假设检验的问题,后来得到大家的帮助,今天发现个新问题,拿出来跟大家讨论请教:
假设s为数据框,dim(s)=4009,77,s其中包含(不仅仅)"ntsr"(总成绩),“nth”(总成绩是否通过,通过为1,不通过为0),“intru”(培训前后,1为培训前,2为培训后),“profc”(职业1,2,3,4,5类),我现在想分析:1。各职业人群在培训前后总成绩是否有变化;2.各职业人群在培训前后总成绩是否通过比例是否有变化


对于1,我的方法是:
by(s,profc,function(s)wilcox.test(ntsr~intru,data=s)) #经检验成绩不符合正态分布,所以用秩和检验
结果与spss分析结果对照,一致,说明上述方法是正确有效的

对于2,考虑是0,1变量,intru也是二分类变量,故可以用卡方检验,于是我参照上面方法写了如下方式:
by(s,profc,function(s)chisq.test(nth, intru,data=s))
R提示我:错误于chisq.test(nth, intru, data = x) : 参数没有用(data = s)
然后我改为
by(s,profc,function(s)chisq.test(nth,intru))
结果倒是出来了,结果5类职业统计的卡方值和p值都一样,都是不分组”chisq.test(nth~intru)) “的结果


又花了好长时间,变化了好多方式也不能达到目的,所以请教高手,错误出在哪里?先谢谢了!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-6-1 01:54:39
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-6-1 11:19:44
RFenxi 发表于 2014-6-1 01:54
试过了,可行!只是需要把x变成我的数据集名称s:
by(s,profc,function(s) chisq.test(s$nth, s$intru,correct=F))

非常感谢!
接下来又有个新问题:
不分组的卡方检验,如
> a <- chisq.test(intru, nth)
> a

        Pearson's Chi-squared test with Yates' continuity correction

data:  intru and nth
X-squared = 166.3201, df = 1, p-value < 2.2e-16

> names(a)
[1] "statistic" "parameter" "p.value"   "method"    "data.name"
[6] "observed"  "expected"  "residuals" "stdres"   
> a$expected
     nth
intru        0        1
    1 1871.768 166.2325
    2 1810.232 160.7675


我可以通过这种方法找到理论频数,以确定我的卡方检验是否需要用连续性校正,甚至只能用fisher精确概率法。

但是,我用by分组计算后,然后就不知道怎么找到理论频数了,请高手指教!谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群