5.2.11 主要コンポーネント分析
オーバーロードされたprcomp
およびprincomp
関数は、主要コンポーネント分析をデータベースで並行して実行します。
prcomp
関数では、変数間の共分散および相関の特異値分解が使用されます。princomp
関数では、サンプル間の共分散および相関の固有分解が使用されます。
透過層メソッドore.frame-prcomp
およびore.frame-princomp
を使用すると、ore.frame
オブジェクト内のデータに対して汎用関数prcomp
およびprincomp
を使用できます。これにより、これらの関数をデータベースでパラレル・プロセスで実行できます。
どちらの関数についても、これらのメソッドは、x
引数としてore.frame
を受け取る関数シグネチャおよび式を受け取るシグネチャをサポートします。ore.frame
には、数値データのみが含まれている必要があります。式は、数値変数のみを参照し、レスポンス変数が含まれていないことが必要です。
関数prcomp
はprcomp
オブジェクトを返し、関数princomp
はprincomp
オブジェクトを返します。
この関数の引数の詳細は、help(princomp)
をコールしてください。
ノート:
biplot
関数は、これらの透過層メソッドによって返されるオブジェクトではサポートされていません。
例5-68 princomp関数の使用
USARRESTS <- ore.push(USArrests)
princomp(USARRESTS)
princomp(USARRESTS, scale. = TRUE)
# Formula interface
princomp(~ Murder + Assault + UrbanPop, data = USARRESTS, scale. = TRUE)
princomp(USARRESTS)
princomp(USARRESTS, cor = TRUE)
# Formula interface
princomp(~ Murder + Assault + UrbanPop, data = USARRESTS, cor = TRUE)
この例のリスト
R> USARRESTS <- ore.push(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.
親トピック: データの探索