卡方检验数据是否是正态分布的
2020-12-11 本文已影响0人
闹钟又响了
参考https://www.zhihu.com/question/356250489一文进行修改注释。
x <- runif(150, 0.7, 85.96)
range(x)
a <- 1.504611 #x最小值
b <- 85.649936 #x最大值
breaks <- seq(a, b, length.out = 13)
xx <- cut(x, breaks = breaks)
freq <-table(xx)
p <- c(0, pnorm(breaks[-c(1, length(breaks))], mean = mean(x), sd = sd(x)), 1) #累积概率
p <- p[-1] - p[-length(p)] #每个点的概率,相当于后一个减去前一个
e <- p*100
chi_square <- sum((freq - e)^2/e)
p_value <- 1 - pchisq(chi_square, length(breaks) - 1 - 3) #对于正态分布来讲,自由度减去3 (https://www.statisticssolutions.com/chi-square-goodness-of-fit-test/)