変数を説明変数に分割するために使用する基準と、生態学の順序付け方法の応答は何ですか?


9

母集団内で相互作用するさまざまな変数があります。基本的に、私はヤスデのインベントリを作成し、次のような地形の他の値を測定しています。

  • 収集した標本の種類と量
  • 動物がいるさまざまな環境
  • pH
  • 有機物の割合
  • P、K、Mg、Ca、Mn、Fe、Zn、Cuの量
  • Ca + Mg / K関係

基本的に、PCAを使用して、サンプルの変動性を駆動し、フォレスト(環境)を異なるものにする変数を決定します。「変数」にはどの変数を使用し、「個人」にはどの変数を使用すればよいですか?


PCAについて混乱していると思います。すべての変数は(もちろん)「変数」のみにすることができます。おそらく、さまざまな場所(またはさまざまな時間)で多数の測定を行ったでしょう。次に、これらの場所(または時間)は「個人」または「サンプル」です。
amoeba 14

また、私は尋ねるのを助けることはできません:あなたのプロフィールはあなたがスタートアップの創設者であると言っています。ヤスデを扱うスタートアップですか?うわー!
amoeba 14

実際、@ amoebaは私の妻です。私は微積分学は得意ですが、統計学ではそれほど上手ではありません。そして彼女は私に尋ねてほしかった。
Leonardo

1
これは本当に統計的な質問ですか?統計用語では混乱しているように見えますが、解読するのが困難な場合は、それを整理すると、科学的判断を使用することをお勧めします。
Nick Cox 14

2
これは統計的な質問である可能性が高く、統計のより一般的な状況とは異なる用語が使用されています。生態学からの叙階法について尋ねていると思います。このウェブサイトはあなたに役立つかもしれません。ここの私たちのアクティブメンバーの比較的少数がこれに精通していますが、@ GavinSimpsonが彼の注意を引くことができれば、あなたを助けることができるかもしれません。
ガン-モニカの回復

回答:


18

@amoebaがコメントで述べたように、PCAは1セットのデータのみを調べ、それらの変数の変動の主要な(線形)パターン、それらの変数間の相関または共分散、およびサンプル間の関係(行)データセット内。

種のデータセットと潜在的な説明変数のスイートを使用して通常行うことは、制約付きの順序に適合させることです。PCAでは、主成分、PCAバイプロットの軸は、すべての変数の最適な線形結合として導出されます。変数pH、、TotalCarbon を含む土壌化学のデータセットでこれを実行した場合、最初の成分はCa2+

0.5×pH+1.4×Ca2++0.1×TotalCarbon

そして2番目のコンポーネント

2.7×pH+0.3×Ca2+5.6×TotalCarbon

これらのコンポーネントは、測定された変数から自由に選択できます。選択されるのは、データセット内の最大の変動量を順次説明し、各線形の組み合わせが他のものと直交する(相関しない)ことです。

制約付きの順序では、2つのデータセットがありますが、最初のデータセット(上記の土壌化学データ)の線形結合を自由に選択することはできません。代わりに、最初のデータセットの変動を最もよく説明する2番目のデータセットの変数の線形結合を選択する必要があります。また、PCAの場合、1つのデータセットは応答行列であり、予測子はありません(応答をそれ自体を予測するものと考えることができます)。制約されたケースでは、一連の説明変数で説明したい応答データセットがあります。

どの変数が応答であるかを説明していませんが、通常、環境の説明変数を使用して、それらの種(つまり応答)の存在量または構成の変動を説明します。

PCAの制約バージョンは、生態学の分野で冗長分析(RDA)と呼ばれるものです。これは、種の基本的な線形応答モデルを想定しています。これは、種が応答する短い勾配がある場合に適切でないか、または適切であるだけです。

PCAに代わるものは、対応分析(CA)と呼ばれるものです。これには制約はありませんが、根底にある単峰性応答モデルがあります。これは、種がより長い勾配に沿ってどのように応答するかという点で、より現実的です。CAは相対的な存在量または組成をモデル化し、PCAは生の存在量をモデル化することにも注意してください。

制約付きまたは正規の対応分析(CCA)と呼ばれる制約付きバージョンのCAがあります。正​​規相関分析と呼ばれるより正式な統計モデルと混同しないでください。

RDAとCCAの両方で、目的は種の存在量または組成の変動を、説明変数の一連の線形結合としてモデル化することです。

説明から、妻はヤスデの種の組成(または存在量)の変動を、測定された他の変数の観点から説明したいと考えているようです。

警告の言葉; RDAとCCAは単なる多変量回帰です。CCAは、重み付けされた多変量回帰です。あなたが回帰について学んだことはすべて適用され、他にもいくつかの落とし穴があります:

  • 説明変数の数を増やすと、制約は実際にますます少なくなり、種の構成を最適に説明するコンポーネント/軸を実際には抽出していません。
  • CCAを使用すると、説明的な要素の数を増やすと、CCAプロット内のポイントの構成に曲線のアーチファクトが生じるリスクがあります。
  • RDAとCCAの基礎となる理論は、より正式な統計手法ほどよく開発されていません。ステップワイズ選択を使用し続ける説明変数を合理的に選択することしかできません(これは、回帰の選択方法としてそれを望まないすべての理由にとって理想的ではありません)。そうするために置換テストを使用する必要があります。

だから私のアドバイスは回帰と同じです。事前に仮説を考え、それらの仮説を反映する変数を含めます。すべての説明変数をミックスに投入しないでください

制約のない序数

PCA

R のveganパッケージを使用してPCA、CA、CCAを比較する例を示します。これは、私が維持するのに役立ち、これらの種類の調整方法に適合するように設計されています。

library("vegan")                        # load the package
data(varespec)                          # load example data

## PCA
pcfit <- rda(varespec)
## could add `scale = TRUE` if variables in different units
pcfit

> pcfit
Call: rda(X = varespec)

              Inertia Rank
Total            1826     
Unconstrained    1826   23
Inertia is variance 

Eigenvalues for unconstrained axes:
  PC1   PC2   PC3   PC4   PC5   PC6   PC7   PC8 
983.0 464.3 132.3  73.9  48.4  37.0  25.7  19.7 
(Showed only 8 of all 23 unconstrained eigenvalues)

ビーガンはCanocoとは異なり、慣性を標準化しないため、分散の合計は1826であり、固有値は同じ単位であり、合計で1826になります。

> cumsum(eigenvals(pcfit))
      PC1       PC2       PC3       PC4       PC5       PC6       PC7       PC8 
 982.9788 1447.2829 1579.5334 1653.4670 1701.8853 1738.8947 1764.6209 1784.3265 
      PC9      PC10      PC11      PC12      PC13      PC14      PC15      PC16 
1796.6007 1807.0361 1816.3869 1819.1853 1821.5128 1822.9045 1824.1103 1824.9250 
     PC17      PC18      PC19      PC20      PC21      PC22      PC23 
1825.2563 1825.4429 1825.5495 1825.6131 1825.6383 1825.6548 1825.6594

また、最初の固有値は分散の約半分であり、最初の2つの軸を使用して、分散全体の約80%を説明しています。

> head(cumsum(eigenvals(pcfit)) / pcfit$tot.chi)
      PC1       PC2       PC3       PC4       PC5       PC6 
0.5384240 0.7927453 0.8651851 0.9056821 0.9322031 0.9524749

バイプロットは、最初の2つの主成分のサンプルと種のスコアから描画できます。

> plot(pcfit)

ここに画像の説明を入力してください

ここには2つの問題があります

  1. 序数は本質的に3つの種によって支配されます。これらの種は、データセット内で最も豊富な分類群であるため、起源から最も遠くにあります
  2. 序数には強いアーチ型の曲線があります。これは、序数のメトリックプロパティを維持するために2つの主要なコンポーネントに分割された長いまたは支配的な単一勾配を示唆しています。

CA

CAは、単峰性応答モデルにより長い勾配をより適切に処理し、生の存在量ではなく種の相対的構成をモデル化するため、これらの両方の点で役立ちます。

これを行うビーガン/ Rコードは、上記で使用したPCAコードに似ています

cafit <- cca(varespec)
cafit

> cafit <- cca(varespec)
> cafit
Call: cca(X = varespec)

              Inertia Rank
Total           2.083     
Unconstrained   2.083   23
Inertia is mean squared contingency coefficient 

Eigenvalues for unconstrained axes:
   CA1    CA2    CA3    CA4    CA5    CA6    CA7    CA8 
0.5249 0.3568 0.2344 0.1955 0.1776 0.1216 0.1155 0.0889 
(Showed only 8 of all 23 unconstrained eigenvalues) 

ここでは、相対的な構成のサイト間のばらつきの約40%について説明します

> head(cumsum(eigenvals(cafit)) / cafit$tot.chi)
      CA1       CA2       CA3       CA4       CA5       CA6 
0.2519837 0.4232578 0.5357951 0.6296236 0.7148866 0.7732393

種と場所のスコアの共同プロットは、少数の種に支配されなくなった

> plot(cafit)

ここに画像の説明を入力してください

PCAとCAのどちらを選択するかは、データについて尋ねたい質問によって決まります。通常、種のデータでは、一連の種の違いに関心があることが多いため、CAを選択するのが一般的です。私たちは、環境変数のデータセットを持っている場合は、CAが不適切であるとPCAますので、水や土壌の化学的性質は、我々は(相関行列の使用、勾配に沿って単峰形で応答するものと期待していないと言うscale = TRUErda()なりコール)より適切な。

制約付きの序数; CCA

ここで、最初の種のデータセットのパターンを説明するために使用したい2番目のデータセットがある場合は、制約付きの順序を使用する必要があります。多くの場合、ここでの選択はCCAですが、RDAは代替となり、データの変換後のRDAは種データをより適切に処理できるようになります。

data(varechem)                          # load explanatory example data

cca()関数を再利用しますが、2つのデータフレーム(X種、およびY説明変数/予測子変数)、または適合させたいモデルの形式をリストするモデル式を提供します。

すべての変数を含めるには、すべての変数を含めるためvarechem ~ ., data = varechemの式として使用できるすべての変数を含めることができます。

ccafit <- cca(varespec ~ ., data = varechem)

> ccafit
Call: cca(formula = varespec ~ N + P + K + Ca + Mg + S + Al + Fe + Mn +
Zn + Mo + Baresoil + Humdepth + pH, data = varechem)

              Inertia Proportion Rank
Total          2.0832     1.0000     
Constrained    1.4415     0.6920   14
Unconstrained  0.6417     0.3080    9
Inertia is mean squared contingency coefficient 

Eigenvalues for constrained axes:
  CCA1   CCA2   CCA3   CCA4   CCA5   CCA6   CCA7   CCA8   CCA9  CCA10  CCA11 
0.4389 0.2918 0.1628 0.1421 0.1180 0.0890 0.0703 0.0584 0.0311 0.0133 0.0084 
 CCA12  CCA13  CCA14 
0.0065 0.0062 0.0047 

Eigenvalues for unconstrained axes:
    CA1     CA2     CA3     CA4     CA5     CA6     CA7     CA8     CA9 
0.19776 0.14193 0.10117 0.07079 0.05330 0.03330 0.01887 0.01510 0.00949

上記の序列のトリプロットは、plot()メソッドを使用して生成されます

> plot(ccafit)

ここに画像の説明を入力してください

もちろん、今のタスクは、これらの変数のうちどれが実際に重要であるかを解明することです。また、13の変数だけを使用して、種の分散の約2/3を説明したことにも注意してください。この順序ですべての変数を使用する場合の問題の1つは、サンプルと種のスコアにアーチ型の構成を作成したことです。

これについて詳しく知りたい場合は、ビーガンのドキュメントまたは多変量生態データ分析に関する優れた本をチェックしてください。

回帰との関係

RDAとのリンクを説明するのが最も簡単ですが、CCAはまったく同じですが、すべての行と列の双方向テーブルの限界合計が重みとして使用されます。

基本的に、RDAは、説明変数の行列によって与えられる予測子を使用して、各種(応答)の値(存在量など)に当てはめられた多重線形回帰からの当てはめられた値の行列にPCAを適用することと同等です。

Rではこれを次のように行うことができます

## centre the responses
spp <- scale(data.matrix(varespec), center = TRUE, scale = FALSE)
## ...and the predictors
env <- as.data.frame(scale(varechem, center = TRUE, scale = FALSE))

## fit a linear model to each column (species) in spp.
## Suppress intercept as we've centred everything
fit <- lm(spp ~ . - 1, data = env)

## Collect fitted values for each species and do a PCA of that
## matrix
pclmfit <- prcomp(fitted(fit))

これら2つのアプローチの固有値は同じです。

> (eig1 <- unclass(unname(eigenvals(pclmfit)[1:14])))
 [1] 820.1042107 399.2847431 102.5616781  47.6316940  26.8382218  24.0480875
 [7]  19.0643756  10.1669954   4.4287860   2.2720357   1.5353257   0.9255277
[13]   0.7155102   0.3118612
> (eig2 <- unclass(unname(eigenvals(rdafit, constrained = TRUE))))
 [1] 820.1042107 399.2847431 102.5616781  47.6316940  26.8382218  24.0480875
 [7]  19.0643756  10.1669954   4.4287860   2.2720357   1.5353257   0.9255277
[13]   0.7155102   0.3118612
> all.equal(eig1, eig2)
[1] TRUE

何らかの理由で軸のスコア(読み込み)を一致させることができませんが、これらは常にスケーリングされている(またはされていない)ため、ここでそれらがどのように行われているかを正確に調べる必要があります。

先ほどrda()示したようにRDA viaは行いませんが、lm()線形モデル部分にはQR分解を使用し、PCA部分にはSVDを使用します。ただし、基本的な手順は同じです。


4
+1と継続を探しています!いくつかのコメント:(1)例では、PC1はPC2に直交していません。たとえば、をに変更して修正できます。(2)回答の内容を反映するようにOPのタイトルを編集することはおそらく意味があります。タイトルの最新版は私のものですが、私はOPが何について話しているのかほとんどわかりませんでした。(3)「応答」は通常、一変量または多変量ですか?後者のように聞こえますが、たとえばヤスデの豊富な多変量はどうですか?いくつかの種が豊富ですか?(4)これらの方法は回帰とどう違うのですか?いくつかの数学的なポインタを含めることができますか?+1.35.6
amoeba 14

2
提案とフォローアップに感謝-線形結合の例を直交させることは私には起こりませんでしたが、それらを更新しました。2)について、私は推測をしましたが、cがあることを考えると。12,000種のヤスデ、ここでの反応は、サンプリング場所のそれぞれにおける種の豊富さの観察であると私は推測します。その意味で、RDAまたはCCAは、次元多変量応答行列をモデル化します。子供たちを寝かせた後、私は後で4に対処しようとします。mnn×m
Gavin Simpson

@amoeba遅れて申し訳ありませんが、回帰とのリンクを示すためのセクションと、応答変数ごとに1つずつ、一連​​の線形回帰からの近似値のPCAとしてRDAを表示する方法を示すためにセクションを追加しました。
Gavin Simpson、2014

1
@amoeba 係数ではなく、(適合値)のSVDを実行します。少なくとも、これがます。そのため、RDAは、しばしばランク削減回帰と呼ばれます。β X βXββfitted()Xβ
Gavin Simpson

1
RDAの起源は統計論文であるRao(1964)によるものであり、適切であるはずです。
Gavin Simpson
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.