データフレームに3列ある砂丘(ページの下側) 3つの異なる砂丘の生態系:R:片方向Anovaとポストホックテスト(Turkey、Scheffeまたはその他)数値列について
(1)復元されました。 (2)劣化しています。および (3)ナチュラル;
私は2つの異なるOne Way Anovaテスト(下記)(テスト1とテスト2)を実行して、生態系の間に大きな違いを確認しました。試験1は、生態系の間に有意差があることをはっきりと示している。しかし、試験2は有意差がないことを示す。ボックスプロット(下)は、生態系の差異の顕著な違いを示しています。
その後、私はデータフレームを溶かしてレスポンス変数でもある階乗列(すなわち、Ecosystem.Typeという見出し)を生成しました。このアイデアは、片道Anovaでテストするglmモデル(下のテスト3)を適用することです。しかし、この方法は失敗しました(下記のエラーメッセージを見てください)。
問題
私は私のコードは、各ワンウェイANOVA試験が正しく、正しい手順である生態系のペアを区別するための事後テスト(トルコHSD、シェッフェ等)を実行するために実行するかどうか混乱しています有意に異なる。誰かが助けることができれば、私はあなたのアドバイスに深く感謝しています。多くのおかげで....
data(dune)
テスト1
dune.type.1<-aov(Natural~Restored+Degraded, data=dune)
summary.aov(dune.type.1, intercept=T)
Df Sum Sq Mean Sq F value Pr(>F)
(Intercept) 1 34694 34694 138.679 1.34e-09 ***
Restored 1 94 94 0.375 0.548
Degraded 1 486 486 1.942 0.181
Residuals 17 4253 250
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
ポストホック検定の
posthoc<-TukeyHSD(dune.type.1, conf.level=0.95)
Error in TukeyHSD.aov(dune.type.1, conf.level = 0.95) :
no factors in the fitted model
In addition: Warning messages:
1: In replications(paste("~", xx), data = mf) :
non-factors ignored: Restored
2: In replications(paste("~", xx), data = mf) :
non-factors ignored: Degraded
テスト2
dune1<-aov(Restored~Natural, data=dune)
dune2<-aov(Restored~Degraded, data=dune)
dune3<-aov(Degraded~Natural, data=dune)
summary(dune1)
Df Sum Sq Mean Sq F value Pr(>F)
Natural 1 86 85.58 0.356 0.558
Residuals 18 4325 240.26
summary(dune2)
Df Sum Sq Mean Sq F value Pr(>F)
Degraded 1 160 159.7 0.676 0.422
Residuals 18 4250 236.1
summary(dune3)
Df Sum Sq Mean Sq F value Pr(>F)
Natural 1 168.5 168.49 2.318 0.145
Residuals 18 1308.5 72.69
試験3
melt.dune<-melt(dune, measure.vars=c("Degraded", "Restored", "Natural"))
colnames(melt.dune)=c("Ecosystem.Type", "Percentage.cover")
melt.dune$Percentage.cover<-as.numeric(melt.dune$Percentage.cover)
glm.dune<-glm(Ecosystem.Type~Percentage.cover, data=melt.dune)
summary(glm.dune)
Error
glm.dune<-glm(Ecosystem.Type~Percentage.cover, data=melt.dune)
Error in glm.fit(x = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, :
NA/NaN/Inf in 'y'
In addition: Warning messages:
1: In Ops.factor(y, mu) : ‘-’ not meaningful for factors
2: In Ops.factor(eta, offset) : ‘-’ not meaningful for factors
3: In Ops.factor(y, mu) : ‘-’ not meaningful for factors
溶けDATAFRAME
structure(list(Ecosystem.Type = structure(c(1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("Degraded", "Restored",
"Natural"), class = "factor"), Percentage.cover = c(12, 17, 21,
11, 22, 16, 7, 9, 14, 2, 3, 15, 23, 4, 19, 36, 26, 4, 15, 23,
38, 46, 65, 35, 54, 29, 48, 13, 19, 33, 37, 55, 11, 53, 13, 24,
28, 44, 42, 39, 18, 61, 31, 46, 51, 51, 41, 44, 55, 47, 73, 43,
25, 42, 21, 13, 65, 30, 47, 29)), row.names = c(NA, -60L), .Names = c("Ecosystem.Type",
"Percentage.cover"), class = "data.frame")
データ
structure(list(Degraded = c(12L, 17L, 21L, 11L, 22L, 16L, 7L,
9L, 14L, 2L, 3L, 15L, 23L, 4L, 19L, 36L, 26L, 4L, 15L, 23L),
Restored = c(38L, 46L, 65L, 35L, 54L, 29L, 48L, 13L, 19L,
33L, 37L, 55L, 11L, 53L, 13L, 24L, 28L, 44L, 42L, 39L), Natural = c(18L,
61L, 31L, 46L, 51L, 51L, 41L, 44L, 55L, 47L, 73L, 43L, 25L,
42L, 21L, 13L, 65L, 30L, 47L, 29L)), .Names = c("Degraded",
"Restored", "Natural"), class = "data.frame", row.names = c(NA,
-20L))
1) '因子コラムのウィットを持つためにあなたのdata.frameをmelt' hレベル劣化、復元、自然。これは、これらの関数が期待するデータ形状です。 2)従属者としての割合は、前提条件に違反している。おそらくGLMを使うべきです。 – Roland
こんにちはローランド、ご助言ありがとうございます。私はデータフレームを解凍し(上記を見てください)、glmモデルを作成しました。ただし、エラーメッセージが表示されています(上記)。エラーを修正する方法の提案はありますか?ご協力いただき誠にありがとうございます。 –