vegan パッケージの関数を使用して、betadisper()
多変量分散を生成し、それらのデータを PCoA にプロットしました。この例では、単一の種の性別の違いを調べます。
元データを読み込みます。私たちの目的では、これはここで合法的に何でもかまいません。私が使用しているデータは特別なものではありません。その機能測定値は、生物音響データセットからのものです。私は自分のプロセスを歩いています:
my_original_data = read.csv("mydata.csv", as.is = T, check.names = F)
#Just extract the numeric/quantitative data.
myData=my_original_data[, 13:107]
以前の調査に基づいて、教師なしの randomForest を使用して、元の特徴測定値内の類似性を判断しました。
require(randomForest)
full_urf = randomForest(myData, proximity=T, scale=TRUE, ntree=4999,importance = TRUE)
次に、近接行列を使用してインデックスが生成されました。
urf_dist_full = as.dist(1-full_urf$proximity)
vegan パッケージを使用して、結果のインデックスに対して順列 MANOVA が実行されました。pMANOVA の使用は十分に研究されており、私の目的にとって正しいテストです。
mod=adonis(formula = urf_dist_full ~ Sex * Age * Variant, data = my_original_data, permutations = 999, method = "euclidean")
my_original_data には、性別、年齢、バリアントという定性的な要因がありました。それらを抽出することもできましたが、元のデータセット内に保持する方がきれいに見えました。
いくつかの均一性テストを実行した後、多変量分散をプロットしたいと思います。これを行うために、私は betadisper 関数を使用しています:
Sex=betadisper(urf_dist_full,my_original_data$Sex)
plot(Sex, main="Sex Multivariate Dispersions")
それはこの美しさをプロットします:
重心に男性と女性のラベルを付けるにはどうすればよいですか? バリアント カテゴリについてもこのプロットを実行したいのですが、これには 2 つではなく 5 つの要因があるため、実際にラベル付けする必要があります。
これの変種を見たことがboxplot()
ありますが、PCoA がクラスタリングを示す方法も気に入っています。