3

私のRDAトリプロットでは、「サイト」、「種」、および私の場合はフィールドとTrtであるそれらの制約を表示したいと思います。問題は、制約のすべてのレベルがプロットに表示されないことです。各要因には 2 つのレベルがあります。

私のRDAコードは次のとおりです。

Dummy.rda <- rda(species.rda ~ Field + Trt,RDA.env, scale=TRUE)

summary(Dummy.rda, scaling=3)  #Here I see only one level of each reported in:Biplot scores for constraining variables. However all levels appear in: Centroids for factor constraints

anova.cca(Dummy.rda, step=100, by='margin') # degrees of freedom are correct for both factors (df=1)

plot(Dummy.rda, scaling = 3) #This displays all levels of Field and Trt but only one of each has an arrow

plot(Dummy.rda, display = "species", xlim = xlims, ylim = ylims, 
       scaling = 3)
text(Dummy.rda, scaling = 3, display = "bp")  # I want to customize the RDA plot, but this 'text' only displays 1 level of each of Field and Trt.
4

1 に答える 1

4

欠落しているレベルは、因子変数を連続変数であるかのように表示しようとしているためです。厳密には、バイプロット矢印として表示されるべきではありません。とにかく、ダミー変数を使用した回帰の場合と同様に、因子のレベルの 1 つを含めることはできません。これは、モデル マトリックス内の残りのレベルのダミー変数に線形依存しているためです。次の例を検討してください。

require("vegan")
data(dune)
data(dune.env)

mod <- rda(dune ~ Management, data = dune.env)

> model.matrix(mod)
   ManagementHF ManagementNM ManagementSF
2             0            0            0
13            0            0            1
4             0            0            1
16            0            0            1
6             1            0            0
1             0            0            1
8             1            0            0
5             1            0            0
....<truncated>

からの出力に表示さmodel.matrix()れるのは、序列に入った変数です。モデル行列には 3 つの変数がありますが、Management因子には 4 つの水準があることに注意してください。

> with(dune.env, levels(Management))
[1] "BF" "HF" "NM" "SF"

R の規則では、因子の最初の水準を参照水準として使用します。回帰では、これはインターセプトに含まれますが、RDA にはそれらの 1 つがありません。出力の最初の行でmodel.matrix()、すべての値が0;であることに注意してください。これは、その行がBF管理グループにあったことを示しています。しかし、3 つの変数のみが適切なモデルに入ったため、それらを 3 つのバイプロット矢印で表すことしかできません。これが数学の仕組みです。

私たちができることは、グループの重心をプロットすることです。これは、参照する出力に表示され、summary()次を使用して抽出できますscores()

> scores(mod, display = "cn")
                   RDA1       RDA2
ManagementBF -1.2321245  1.9945903
ManagementHF -1.1847246  0.7128810
ManagementNM  2.1149031  0.4258579
ManagementSF -0.5115703 -2.0172205
attr(,"const")
[1] 6.322924

したがって、重心を既存のプロットに追加するには、次のようにします。

text(mod, scaling = 3, display = "cn")

何をしても、参照グループにバイプロット矢印を追加することはできません。

あなたが見ている行動を説明してくれることを願っていますか?

于 2013-05-10T16:10:17.810 に答える