ホーム  •  ニュース  •  フォーラム  •  アカウント情報  •  サイト内検索  •  新規登録
 ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
 カウントダウンブロック
カウントダウンイベントはありません
 メニュー

メイン
   地球科学のための R
     主成分分析 prcomp() でうまくいかないことがある。
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
投稿日時: 2006-7-24 11:45
登録日: 2004-7-29
居住地: 地球
投稿: 303
主成分分析 prcomp() でうまくいかないことがある。
R で主成分分析を行う際、 prcomp() を利用すると、
以下にエラーLa.svd(x, nu, nv) : Lapack ルーチン 'dgesdd' からエラーコード 1 が返されました

というエラーが表示されることがある。これについては、ここに、Prof. Ripleyの回答がある。下位のルーチンである BLAS やコンパイラの最適化の際のアルゴリズムの問題で再現できないもの(なのであきらめなさい)とのこと。

しょうがないので、簡易の代替のコードを作って実行することにする。スピードは格段に遅い。

###################################################################################
myprcomp <- function( matrixdata, maxpcs=200 ){
#
#  matrixdata : columns = observed stations
#             : lines   = time series
#  
#  dominant (default 200) signals are picked up and returned
#
  maxpcs    <- min( maxpcs, min(dim(matrixdata)) )
  
  covdata   <- cov( matrixdata )
  eigendata <- eigen( covdata )
  sdev      <- sqrt(eigendata$values[1:maxpcs])

  x         <- matrixdata %*% eigendata$vector[,1:maxpcs]

  return(list( sdev = sdev, rotation = eigendata$vector[,1:maxpcs], x = x ))
}
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 


WWW を検索 meteorology.jp を検索

Powered by XOOPS 2.0 © 2001-2006 The XOOPS Project, Maitained by A. Mori
FI Theme :: XOOPS 2 Theme by ImageSquare :: Costomized by matchan and A.Mori