N1<-4
N2<-3
M<-matrix(runif(N1*N2),N1,N2)
L<-sqrt(apply(M^2,1,sum))
M2<-M/L
M2
apply(M2^2,1,sum)
M2%*%t(M2)
N1<-4
N2<-20
M<-matrix(runif(N1*N2),N1,N2)
dM<-dist(M)
dM
library(ape)
plot(nj(dM))
plot(hclust(dM))
- 固有値分解して「分離の良い軸」を抽出して、その軸に合わせてプロットする
Nm<-100
Ns<-c(rpois(4,100),rpois(20,10))
Npop<-length(Ns)
M<-NULL
for(j in 1:Npop){
tmpM<-matrix(rep(0,Nm*Ns[j]),ncol=Nm)
for(i in 1:Nm){
af<-rnorm(1)
tmpM[,i]<-rnorm(Ns[j],af)
}
M<-rbind(M,tmpM)
}
wholemean<-mean(M)
M<-M-wholemean
mu<-apply(M,2,mean)
M<-t(t(M)-mu)
svdout<-svd(M)
M2<-svdout$u%*%diag(svdout$d)
par(mfcol=c(1,2))
image(1:sum(Ns),1:Nm,M,xlab="サンプル(大集団→小集団)",ylab="項目")
image(1:sum(Ns),1:Nm,M2,xlab="サンプル(大集団→小集団)",
ylab="PCA後eigen項目")
df1<-as.data.frame(M);df2<-as.data.frame(M2)
L<-1:5;par(mfcol=c(1,1))
plot(df1[,L])
plot(df2[,L])
vM1<-apply(M,2,var)
vM2<-apply(M2,2,var)
ylim<-c(min(vM1,vM2),max(vM1,vM2))
plot(vM1,ylim=ylim,type="b")
par(new=T)
plot(vM2,ylim=ylim,type="b",col="red")