如题的一个疑问,用R的chisq.test进行卡方优度检验时怎样体现自由度减少啊?调用时结果总是df=n-1,那理论分布含未知参数怎么办?谢谢
理论分布中含k个未知参数时,使用chisq.test时怎样体现自由度-k?
看起来你对chi square的自由度的理解有一定的误区:
按你的描述,chi square检验可以检验你的数据是否服从poisson分布。
但是自由度df是指chi square 里的类别数目 而跟理论分布的参数无关(这里是lambda)
举个例子:
set.seed(124)
data1 <- rpois(100,lambda = 5)
data1
原始数据:
[1] 2 4 5 4 3 4 5 5 8 4 7 7 6 7 4 2 5 6 8 1 6 5 2 4 4
[26] 3 7 4 7 4 7 4 4 7 2 10 3 9 3 4 3 7 6 3 4 4 9 3 5 3
[51] 4 7 5 3 3 4 3 6 3 5 5 5 2 4 5 0 5 5 4 3 6 8 7 8 5
[76] 4 3 9 4 3 4 3 9 7 5 8 6 3 5 3 5 3 3 4 4 4 5 5 7 6
这样,你可以把原始数据分为1~10,类:
table(data1)
0 1 2 3 4 5 6 7 8 9 10
1 1 5 20 24 19 8 12 5 4 1
或者分为 以下3类
data1.cut <- cut(data1,breaks=c(-1,3, 6,100))
table(data1.cut)
data1.cut
(-1,3] (3,6] (6,100]
27 51 22
这样,你可以分别根据poisson分布计算每一个分类对应的概率分布,然后再做chisquare检验。在分10类的时候,自由度是9,分三类的时候,自由度是2,跟原始数据的lambda是否已知没有关系。
tctcab 额,我可能描述的不对,我知道调用chisq.test(x, p=p)时输出的结果时df=length(x)-1,即分组数减1.但是我想说的是检验统计量T会因为理论分布参数(lamda)的已知或者未知服从自由度不同的chisq分布。例如:你分成10组的那个数据,如果lamda已知,则T服从自由度为9的chisq分布,未知,自由度为8.
在chisq.test(x, p=p)中体现在求p的不同上,一个需要估计理论分布参数,一个不需要
我也不知道是不是我想多了,举个极端例子:
数据: x的值 0 1 2 3 4 5 6 7 8
x出现的次数 263 112 38 19 3 1 1 0 3
两种提问:1)x是否服从lamda=a(刚好是x的均值,a=mean(x))的poisson分布?
2)x是否服从poisson分布?
这个例子中如果在解答两题时,分组一样,那么求解出来的p也是一样的(lamda用均值估计),用chisq.test( )输出的结果当然也一样。但是,他们的检验统计量统计量服从的是不同的分布!!!
那是不是说用chisq.test( )检验时不区分理论分布参数已知或者未知?怎样体现差别呢??(顺便问一句,你是怎样加粗字体,和插入代码的啊?)