全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3997 3
2020-07-10
有一个独立变量X,我想知道它是否服从指数分布。
按理说是可以用卡方检验进行检验的,但是我在实际中遇到了一些问题。

先说X,我预测X~exp(λ =1),变量X的容量为1000, 观测值区间为(0,7)。因此,
1、我打算对变量X分组tab1,统计每组区间的频率
2、然后构造一个新的变量tab2存放对应指数分布的在对应分组内的概率
3、最后进行卡方检验, 通过P值判断是否服从指数分布
最后
b <-seq(0,7, by = 1)
tab1 <- table(cut(X,breaks=b))
tab2 <- pexp(b, 1)

chisq.test(tab1, p = tab2)  #代码里tab1是表,tab2是向量,还需要对tab1进行处理

问题在于tab1中的数据
(0,1] (1,2] (2,3] (3,4] (4,5] (5,6] (6,7]
  636   231    90    27    12     1     3


因为有数据在1-5之间,因此卡方检验会提示结果可能不准,但是修正卡方检验和fisher精确检验似乎都不太适用? 因为数据不是2*2矩阵
二维码

扫码加我 拉你入群

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

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

全部回复
2020-7-10 23:56:26
chisq.test并不一定需要矩阵,你这个检验用向量就行。
你的代码两点问题:
1.最后一个区间应该是(6,无穷),所以breaks=c(b,Inf)比较合理
2.tab2需要是区间概率,即tab2=diff(pexp(breaks,1))
二维码

扫码加我 拉你入群

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

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

2020-7-11 04:28:26
maths_hjxk 发表于 2020-7-10 23:56
chisq.test并不一定需要矩阵,你这个检验用向量就行。
你的代码两点问题:
1.最后一个区间应该是(6,无穷) ...
谢谢!
我又看了一遍帮助文件,确实是向量和矩阵都可以

这样我可以换个思路了,X分组, 用rexp生成一组向量,用同样的标准分组
直接对两组数据进行检验就好
二维码

扫码加我 拉你入群

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

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

2020-7-11 11:47:35
carloszone 发表于 2020-7-11 04:28
谢谢!
我又看了一遍帮助文件,确实是向量和矩阵都可以
说的有点像ks比较检验方法。但用模拟数据不如用拟合优度检验
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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