多元统计分析R语言建模| 11 典型相关分析

  • 概念:探讨一组变量和另一组变量间的相关关系(Canonical Correlation Analysis),是简单相关和多元相关的延伸

up-a00b417ab1bfe8bf1c6fc576c59b35a25b0.png

  • 将参数压缩成一个变量
  • 参数限制:标准化变换,使协方差为1
  • 拉格朗日展开
  • 求导算极值
  • 得到特征方程

up-087ff7fddc1c7e6227eac40bf2b6b1db91e.png

  • 典型变量的性质
  • 典型变量相关性的检验:对典型相关系数进行检验,以确定相关系数的个数,然后根据显著的典型相关系数对资料进行典型相关性分析
d11.1=read.table('clipboard',header = T)
#简单相关分析
cor(d11.1)
#多变量相关分析
summary(lm(y1~x1+x2+x3,d11.1))$r.sq
summary(lm(y2~x1+x2+x3,d11.1))$r.sq
summary(lm(y3~x1+x2+x3,d11.1))$r.sq
#典型相关分析
d11.2=read.table('clipboard',header = T)
ca=cancor(d11.1[,1:3],d11.1[,4:6])
ca$cor
#典型变量
ca$xcoef
ca$ycoef

msa.cancor(d11.1[,1:3],d11.1[,4:6],plot = TRUE)

msa.cancor(d11.2[,1:4],d11.2[,5:10],plot = TRUE,pq=2)

msa.cancor<-function (x, y, pq=min(ncol(x),ncol(y)), plot = FALSE){
  x = scale(x)
  y = scale(y)
  n = nrow(x)
  p = ncol(x)
  q = ncol(y)
  ca = cancor(x, y)
  #cat("\n");	print(ca)
  r = ca$cor
  m <- length(r)
  Q <- rep(0, m)
  P = rep(0, m)
  lambda <- 1
  for (k in m:1) {
    lambda <- lambda * (1 - r[k]^2)
    Q[k] <- -log(lambda)
  }
  s <- 0
  i <- m
  for (k in 1:m) {
    Q[k] <- (n - k + 1 - 1/2 * (p + q + 3) + s) * Q[k]
    P[k] <- 1 - pchisq(Q[k], (p - k + 1) * (q - k + 1))
  }
  #cat("\n cancor test: \n")
  #print(round(data.frame(r, Q, P),4))
  cr=round(data.frame(CR=r, Q, P),4)
  cat("\n")
  u=as.data.frame(ca$xcoef[,1:pq]); colnames(u)=paste('u',1:pq,sep='')
  #print(round(u,4))
  v=as.data.frame(ca$ycoef[,1:pq]); colnames(v)=paste('v',1:pq,sep='')
  #print(round(v,4))
  if (plot) {
    u1 = as.matrix(x) %*% u[,1]
    v1 = as.matrix(y) %*% v[,1]
    plot(u1, v1, xlab = "u1", ylab = "v1")
    abline(lm(u1 ~ v1))
  }
  list(cor=cr,xcoef=t(round(u,4)),ycoef=t(round(v,4)))
}

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值