R语言进行卡方拟合优度检验

R 复制代码
x_before<- 0:5
f_before<-c(35,40,19,3,2,1)
lambda<-mean(rep(x_before,f_before))#计算样本均值
n<-sum(f_before)#样本量

x_after<-0:3
f_after<-c(f_before[1:3],f_before[4]+f_before[5]+f_before[6])#合并最后三个频数

pp<-dpois(0:2,lambda)
pp[4]<-1-sum(pp)
ei<-n*pp
kafang<-sum((f_after-ei)^2/ei)#计算检验统计量kafang值
pi<-(f_after-ei)^2/ei
p<-pchisq(kafang,df=2,lower.tail = FALSE)
result<-list("理论概率"=pp,"期望频数"=ei,"卡方值"=kafang,"检验pi"=pi,"检验p值"=p)
print(result)

输出结果。

R 复制代码
$理论概率
[1] 0.3678794 0.3678794 0.1839397 0.0803014

$期望频数
[1] 36.78794 36.78794 18.39397  8.03014

$卡方值
[1] 0.9005665

$检验pi
[1] 0.08689652 0.28045337 0.01996686 0.51324975

$检验p值
[1] 0.6374476

附录,

R语言生成卡方分位数表:

R 复制代码
####卡方(chisq)分布
# 1.卡方分布中抽样函数rchisq
n = 100
df <- 10
rchisq(n, df, ncp = 0)

# 2.卡方分布概率密度函数
x <- seq(0,30,0.1) # x为非负整数,表达次数。
y <- dchisq(x,df)
plot(x,y)

# 3.卡方分布累积概率
x <- seq(1,20,0.1)
plot(x,dchisq(x,df=10))
# P[X ≤ x]
pchisq(5, df=10)
# P[X > x]
pchisq(5, df=10,lower.tail = FALSE)

# probabilities p are given as log(p).
pchisq(5, df=10,log.p = TRUE)

# 4.qchisq函数(pchisq的反函数)
# 累积概率为0.95时的x值
qchisq(0.95, df=1)
qchisq(0.95, df=10)
qchisq(0.95, df=100)
qchisq(0.95, df=2)
R 复制代码
 [1]  9.374352  7.225081  4.339676 25.443502  3.618107 10.846279  9.792687  6.958344
 [9]  8.186593  9.308886  3.833281 13.401038 13.827963  7.114502  7.610147  9.622570
 [17]  9.386026  5.690467  7.747932 18.025969 12.101603  3.058159  8.716517  9.193497
 [25]  8.255007 10.381829 16.342552 10.650481  3.516774 11.450335 18.655177 12.566566
 [33] 11.375149 16.861794  2.171601  9.412595  4.987076  8.830401 15.482431 17.042475
 [41]  6.790693  8.589830  3.492954  9.936864 11.311470  3.983115  5.778621 11.658223
 [49]  7.533967 12.962804 11.029936 16.725462  6.123450  5.593923  5.783483 10.653229
 [57]  8.545289  7.732986 11.465535  5.679195  8.084869 22.411351 10.698811 18.658545
 [65]  2.346266  7.017037  6.191191  7.662195 14.175151  6.166813 18.540517 15.199404
 [73] 15.144126  2.831125  9.366318 12.542988 12.084843  4.535881  5.543144  4.091480
 [81] 11.018910  7.373405 10.465331 13.763390  8.985686  7.844968 15.414990 19.600317
 [89]  5.664467 11.345434 14.300911  9.378645  8.362372  5.188432  5.972438  9.457694
 [97]  9.774907 13.822577  5.626243  8.695835
相关推荐
星火开发设计5 小时前
C++ 数组:一维数组的定义、遍历与常见操作
java·开发语言·数据结构·c++·学习·数组·知识
TTGGGFF5 小时前
控制系统建模仿真(一):掌握控制系统设计的 MAD 流程与 MATLAB 基础运算
开发语言·matlab
2501_944424126 小时前
Flutter for OpenHarmony游戏集合App实战之贪吃蛇食物生成
android·开发语言·flutter·游戏·harmonyos
Lhuu(重开版7 小时前
JS:正则表达式和作用域
开发语言·javascript·正则表达式
仙俊红7 小时前
Java Map 家族核心解析
java·开发语言
浅念-7 小时前
C语言小知识——指针(3)
c语言·开发语言·c++·经验分享·笔记·学习·算法
code_li8 小时前
聊聊支付宝架构
java·开发语言·架构
少控科技9 小时前
QT高阶日记01
开发语言·qt
无限进步_9 小时前
【C++】大数相加算法详解:从字符串加法到内存布局的思考
开发语言·c++·windows·git·算法·github·visual studio
“抚琴”的人9 小时前
C#上位机工厂模式
开发语言·c#