プライマリ・コンテンツに移動
Oracle® R Enterpriseユーザーズ・ガイド
リリース1.5.1
E88296-01
目次へ移動
目次
索引へ移動
索引

前
次

3.2.11 主要コンポーネント分析

オーバーロードされたprcompおよびprincomp関数は、主要コンポーネント分析をデータベースで並行して実行します。

prcomp関数では、変数間の共分散および相関の特異値分解が使用されます。princomp関数では、サンプル間の共分散および相関の固有分解が使用されます。

透過層メソッドore.frame-prcompおよびore.frame-princompを使用すると、ore.frameオブジェクト内のデータに対して汎用関数prcompおよびprincompを使用できます。これにより、これらの関数をデータベースでパラレル・プロセスで実行できます。

どちらの関数についても、これらのメソッドは、x引数としてore.frameを受け取る関数シグネチャおよび式を受け取るシグネチャをサポートします。ore.frameには、数値データのみが含まれている必要があります。式は、数値変数のみを参照し、レスポンス変数が含まれていないことが必要です。

関数prcompprcompオブジェクトを返し、関数princompprincompオブジェクトを返します。

これらの関数の引数の詳細は、help('ore.frame-prcomp')およびhelp('ore.frame-princomp')を呼び出してください。

注意:

biplot 関数は、これらの透過層メソッドによって返されるオブジェクトではサポートされていません。

例3-63 prcompおよびprincomp関数の使用方法

USARRESTS <- ore.push(USArrests)

# Using prcomp

prcomp(USARRESTS)
prcomp(USARRESTS, scale. = TRUE)

# Formula interface
prcomp(~ Murder + Assault + UrbanPop, data = USARRESTS, scale. = TRUE)

# Using prcomp

princomp(USARRESTS)
princomp(USARRESTS, cor = TRUE)

# Formula interface
princomp(~ Murder + Assault + UrbanPop, data = USARRESTS, cor = TRUE)

例3-63のリスト

R> USARRESTS <- ore.push(USArrests)
R> 
R> # Using prcomp
R>
R> prcomp(USARRESTS)
Standard deviations:
[1] 83.732400 14.212402  6.489426  2.482790

Rotation:
                PC1         PC2         PC3         PC4
Murder   0.04170432 -0.04482166  0.07989066 -0.99492173
Assault  0.99522128 -0.05876003 -0.06756974  0.03893830
UrbanPop 0.04633575  0.97685748 -0.20054629 -0.05816914
Rape     0.07515550  0.20071807  0.97408059  0.07232502

R> prcomp(USARRESTS, scale. = TRUE)
Standard deviations:
[1] 1.5748783 0.9948694 0.5971291 0.4164494

Rotation:
               PC1        PC2        PC3         PC4
Murder   0.5358995 -0.4181809  0.3412327  0.64922780
Assault  0.5831836 -0.1879856  0.2681484 -0.74340748
UrbanPop 0.2781909  0.8728062  0.3780158  0.13387773
Rape     0.5434321  0.1673186 -0.8177779  0.08902432
R> 
R> # Formula interface
R> prcomp(~ Murder + Assault + UrbanPop, data = USARRESTS, scale. = TRUE)
Standard deviations:
[1] 1.3656547 0.9795415 0.4189100

Rotation:
               PC1         PC2        PC3
Murder   0.6672955 -0.30345520  0.6801703
Assault  0.6970818 -0.06713997 -0.7138411
UrbanPop 0.2622854  0.95047734  0.1667309
R>
R> # Using princomp
R>
R> princomp(USARRESTS)
Call:
princomp(USARRESTS)

Standard deviations:
   Comp.1    Comp.2    Comp.3    Comp.4 
82.890847 14.069560  6.424204  2.457837 

 4  variables and  50 observations.
R> princomp(USARRESTS, cor = TRUE)
Call:
princomp(USARRESTS, cor = TRUE)

Standard deviations:
   Comp.1    Comp.2    Comp.3    Comp.4 
1.5748783 0.9948694 0.5971291 0.4164494 

 4  variables and  50 observations.
R> 
R> # Formula interface
R> princomp(~ Murder + Assault + UrbanPop, data = USARRESTS, cor = TRUE)
Call:
princomp(~Murder + Assault + UrbanPop, data = USARRESTS, cor = TRUE)

Standard deviations:
   Comp.1    Comp.2    Comp.3 
1.3656547 0.9795415 0.4189100 

 3  variables and  50 observations.