2016-05-20 15 views
2

このthreadに戻って、私は2つの楕円の間の交差点を計算していました。ggbiplotの正規確率楕円体と一致させるために、楕円をどのように調整して重なり合う{siar}で計算するか?

library(siar) 
setosa <- ir.pca$x[ir.species=="setosa",] 
versicolor <- ir.pca$x[ir.species=="versicolor",] 
virginica <- ir.pca$x[ir.species=="virginica",] 

tmp <- overlap(versicolor[,1], versicolor[,2], virginica[,1], virginica[,2], steps = 5) 
virginica.percentage <- round(x=(tmp$overlap/tmp$area2*100), digits = 2) 
versicolor.percentage <- round(x=(tmp$overlap/tmp$area1*100), digits = 2) 
> virginica.percentage [1] 1.54 
> versicolor.percentage[1] 1.56 

明らかにはるかに小さい。

data(iris) 
log.ir <- log(iris[, 1:4]) 
ir.species <- iris[, 5] 
ir.pca <- prcomp(log.ir, center = TRUE, scale. = TRUE) 

library(ggbiplot) 
g <- ggbiplot(ir.pca, obs.scale = 1, var.scale = 1, 
      groups = ir.species, ellipse = TRUE, 
      circle = TRUE) 
g <- g + scale_color_discrete(name = '') 
g <- g + theme(legend.direction = 'horizontal', 
      legend.position = 'top') 
print(g) 

私はその後、オーバーラップ{SIAR}次のように使用して楕円を計算する:以下MWEを用い PCA on iris dataset :ベルシカラーとvirginca交点の体積上記図2に示されているものよりも大きい。

ggbiplot code on line 50が示すように、ggbiplotは、既定では "ellipse.prob = 0.68"の確率で正規確率楕円体を計算します。これは上記のプロットで使用されています。

documentationが重複しているため、{siar}は、楕円を「小さなサンプルサイズ補正標準楕円」として計算します。

したがって、私はggbiplotでプロットされた/計算されたものと同様の正規確率楕円体を計算するためにオーバーラップ{siar}をどのように修正できるか尋ねていました。

答えて

2

https://github.com/AndrewLJackson/SIBERから入手可能なSIBERの最新バージョンは、ユーザ定義サイズの楕円の重なりを計算する2つの新しい関数(すなわち、異なるクォンタイル)を含む。

maxLikOverlap() 

bayesianOverlap() 

私はあなたが

# install.packages("devtools") # install if necessary 
    devtools::install_github("andrewljackson/[email protected]", 
    build_vingettes = TRUE) 
    library(SIBER) 

を使用してmasterブランチからインストールして、ビネット、 "楕円-オーバーラップ" に従う示唆しています。ビネットがインストールされていない場合は、githubリポジトリから直接ダウンロードできます。https://github.com/AndrewLJackson/SIBER/tree/master/vignettes

関連する問題