全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3970 0
2017-09-27
####多元正态总体均值的检验
### 对要检验均值mu0的输入,显著性水平alpha0的输入
###即,参数mu0,alpha0,以及样本资料矩阵sample_matrix,简记为sm.
##sm,mu0,alpha0的读入,在此将上述参数存储于.sav文件中,R读取后
##以数据框存储,然后使用类型转换函数进行适当转换即可得到参数的值
sm <- as.matrix(read.csv("D:/1-2-2 R_file/excel_file/T^2检验多元均值向量.csv",header = T,fileEncoding = "GBK"))
##class(sm)    ##查看数据类型
mu0 <- c(4,50,10)
alpha0 <- 0.10


p <- ncol(sm)  #列数---变量个数---维数
n <- nrow(sm)  #行数---样本个数
mean_sm <- rep(0,p) #样本均值的初始化
for(i in 1:p){
  mean_sm <- sum(sm[,i])/n
}#求样本均值mean_sm
cov_m <- matrix(0,p,p)   #方差-协差阵的初始化
for(i in 1:p){
  for(k in 1:p){
    for(j in 1:n){
      cov_m[i,k] <- cov_m[i,k]+(sm[j,i]-mean_sm)*(sm[j,k]-mean_sm[k])
    }
  }  
}#方差-协差阵---cov_m---的计算
cov_m <- cov_m/(n-1)
inv_cov_m <- solve(cov_m)  #计算方差-协差阵---cov_m---的逆矩阵(inverse)
T_sq <- as.numeric(n*t(mean_sm-mu0)%*%inv_cov_m%*%(mean_sm-mu0))    #检验统计量T^2=T_sq---T square的计算
T_sq_value <- (n-1)*p*qf(alpha0,p,n-p,lower.tail = FALSE)/(n-p)   #与alpha0相对应的上分位数(临界值)的计算
###结果的分析
{
  if(T_sq < T_sq_value)
    cat(paste("因T^2 =",T_sq,"< T_sq_value =",T_sq_value,",所以在",alpha0,"显著性水平下接受原假设"))
  else
    cat(paste("因T^2 =",T_sq,">= T_sq_value =",T_sq_value,",所以在",alpha0,"显著性水平下拒绝原假设"))
}


二维码

扫码加我 拉你入群

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

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

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

分享

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