2016-11-08 18 views
0

データフレームに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") 

enter image description here

データ

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)) 
+0

1) '因子コラムのウィットを持つためにあなたのdata.frameをmelt' hレベル劣化、復元、自然。これは、これらの関数が期待するデータ形状です。 2)従属者としての割合は、前提条件に違反している。おそらくGLMを使うべきです。 – Roland

+0

こんにちはローランド、ご助言ありがとうございます。私はデータフレームを解凍し(上記を見てください)、glmモデルを作成しました。ただし、エラーメッセージが表示されています(上記)。エラーを修正する方法の提案はありますか?ご協力いただき誠にありがとうございます。 –

答えて

1

あなたに指摘したいことがいくつかあります。

まず、テスト1とテスト2で同様の結果が得られます。唯一の違いは、テスト1のインターセプトを選択したことです。その結果、リニアモデルに適合すれば(数分でそれになります)、インターセプトが必要であることがわかります。したがって、あなたが見ている重要性は、あなたがフィットさせるように強制する行がインターセプトを必要とするかどうかということです。他の結果に "intercept = T"を使ってみてください。同様の結果が得られるでしょう。

あなたが注意しなければならない2つ目は、あなたが合うようにしようと線形モデルについてです。 dune.type.1モデルは、さまざまな砂丘の生態系がどのように相関しているかを実際に確認するモデルです。言い換えれば、自然と復元の間に線形の関連があると仮定し、復元された単位の増加ごとに自然にいくらか増加します。私があなたが望むものを正しく理解していれば、彼らの相関ではなく平均の違いを調べることです。したがって、あなたは、2つのことを行うことができます。

  1. データがt.tests(いくつかのカテゴリ間の平均を比較するテスト)を実行する用意があります。すべての変数が合理的に正常であるため、Rと有効では非常に簡単です。しかし、複数のテストの問題があります(おそらく3つのt検定をすべて平均差を得るために実行する)ので、Bonferroni補正を使用する必要があります。

  2. しかし、私は、あなたが本当にしたいことは、次のだと思う。

まず改革のデータ

 data <- data.frame(v = c(dune$Degraded, dune$Restored, dune$Natural), 
        labels = c(rep("Degraded", times = 20), rep("Restored", times = 20), 
           rep("Natural", times = 20))) 

その後

mod.1 <- lm(v ~ labels, data = data) 
    summary(mod.1) 
    lm(formula = v ~ labels, data = data) 

Residuals: 
Min  1Q Median  3Q  Max 
-28.650 -10.725 0.875 8.050 31.350 

Coefficients: 
       Estimate Std. Error t value Pr(>|t|)  
(Intercept)  14.950  3.066 4.875 9.07e-06 *** 
labelsNatural 26.700  4.337 6.157 7.95e-08 *** 
labelsRestored 21.350  4.337 4.923 7.64e-06 *** 

どこが実際にできる線形モデルをフィットベースラインカテゴリの平均(すなわち、劣化した)が平均値自然カテゴリおよびその他のあなたがまた見て、モデルの仮定を確認することができ、あなたのモデルが良いフィット感である場合

qqnorm(residuals(mod.1)) 
    qqline(residuals(mod.1)) 

enter image description here 彼ら残差は合理的に正常であるので、モデルは結構です。また、あなたのANOVAのアプローチに従うと持つことができます。

post <- TukeyHSD(aov(v ~ labels, data = data)) 
    plot(post, ylim = c(0, 4)) 
:砂丘の生態系の手段との間に少なくとも1つの有意差があることを示し、点状の間隔についてテューキーのフォローアップ

anova.model <- aov(v ~ labels, data = data)) 
    summary(anova.model) 

      Df Sum Sq Mean Sq F value Pr(>F)  
labels  2 7982 3991 21.22 1.29e-07 *** 
Residuals 57 10720  188 

すでに複数の試験について調整

enter image description here

:)

+0

ありがとうAkis、この説明とコードは素晴らしいです!これは深く感謝しています。私はポストホックテストの結果をプロットし、2つのペアワイズラベルしかプロットには示されていません。それを修正する方法の提案.........ありがとう、もう一度ありがとう:) –

+0

プロット関数のylimで試してみてください。私の例では、ylim = c(0,4)を使用したので、ペアワイズの違いの3つの信頼区間をすべて明確に見ることができます – Akis

関連する問題