- 280 名前:132人目の素数さん [2011/12/21(水) 02:29:25.07 ]
- すんません、Rまだまだ初心者なのですが、元データをフーリエ変換したデータにおける正準相関分析をしたくて、デフォで入っているcancorとかでなく、データのこともあり自分で作らなきゃならなくて
function(a,b,c,d,m,n){ e<-matrix(Re(fft(a[1:n]-mean(a[1:n]))),1,n,byrow=T) #4つのデータのfftをそれぞれ行列に入れる f<-matrix(Re(fft(b[1:n]-mean(b[1:n]))),1,n,byrow=T) g<-matrix(Re(fft(c[1:n]-mean(c[1:n]))),1,n,byrow=T) h<-matrix(Re(fft(d[1:n]-mean(d[1:n]))),1,n,byrow=T) j<-matrix(0,4,n) #上記で作ったデータを1つの行列に入れる j[1,]<-e j[2,]<-f j[3,]<-g j[4,]<-h k<-j[,m] #m列目の成分を取り出す o<-(1/n)^2*k%*%t(k) #粗いですがスペクトル密度関数の推定量をもとめる p<-o[c(1,2),c(1,2)] q<-o[c(1,2),c(3,4)] r<-o[c(3,4),c(3,4)];u<-solve(p);v<-solve(r);w<-t(q); s<-eigen(u%*%q%*%v%*%w) #固有値問題を解く return(list(j[1,],j[,m],o,p,q,r,s))} という関数を定義して実行すると 以下にエラー solve.default(p) : システムは数値的に特異です:条件数の逆数 = 3.72483e-17 とでるんですが、どうなおせばよいでしょうか。
|

|