我有一个包含 30 个样本的向量,我想检验样本来自正态分布的总体的假设。
> N.concentration
[1] 0.164 0.045 0.069 0.100 0.050 0.080 0.043 0.036 0.057 0.154 0.133 0.193
[13] 0.129 0.121 0.081 0.178 0.041 0.040 0.116 0.078 0.104 0.095 0.116 0.038
[25] 0.141 0.100 0.104 0.078 0.121 0.104
我使用了一个频率向量hist
> N.hist <- hist(N.concentration, breaks=10)
> N.freq <- N.hist$count
[1] 3 5 4 4 5 4 2 2 1
我chisq.test
用来检查对N.freq
正态分布的适应度,但是,该函数需要一个参数p = 一个与 x 长度相同的概率向量,如 chisq.test 文档中所定义。我正在尝试为它生成一个向量,但老实说,我不知道要生成什么。我正在努力
> d <- length(N.freq$count)%/%2
> p <- dnorm(c(-d:d))
> p
[1] 0.0001338302 0.0044318484 0.0539909665 0.2419707245 0.3989422804
[6] 0.2419707245 0.0539909665 0.0044318484 0.0001338302
> chisq.test(N.freq, p = p)
Error in chisq.test(p1$count, p = p) :
probabilities must sum to 1.
我考虑过使用rescale.p=TRUE
,但我不确定这是否会产生有效的测试。
编辑:如果我使用 rescale.p,我会收到一条警告消息
> chisq.test(N.freq, p=p, rescale.p=TRUE)
Chi-squared test for given probabilities
data: N.freq
X-squared = 2697.7, df = 8, p-value < 2.2e-16
Warning message:
In chisq.test(N.freq, p = p, rescale.p = TRUE) :
Chi-squared approximation may be incorrect