2017-01-23 8 views
8

私は、同じ栽培シーズンにわたって2つのサイトにわたって構築された野外試験でいくつかの統計解析を試みています。両方のサイトでブロック設計と繰り返し測定によるANOVA

Site、レベル:HF | NW)実験設計は、4とRCBD(N = 4)のブロックであった(Block、レベル:| 2 | 3 | 1各Site以内4)。 3種類の窒素肥料と対照(窒素肥を含まない)がありました(Treatment、レベル:AN、U、IU、C)。 フィールドトライアル中には、肥料添加から始まり、草の収穫で終わった3つの明確な期間があった。これらの期間は、ファクターN_appの下にレベル1 | 2 | 3を与えられています。

私が上で、次の帰無仮説H0をテストしたい測定値の範囲があります。

Treatment(H0)は、私はアールで特に興味が測定の測定

二つに影響を及ぼしませんでした:草量とアンモニア排出量。私はこの使用上ANOVAを実行しているで行くを持っていた

library(tidyverse) 

download.file('https://www.dropbox.com/s/w5ramntwdgpn0e3/HF_NW_grass_yield_data.csv?raw=1', destfile = "HF_NW_grass_yield_data.csv", method = "auto") 
raw_data <- read.csv("HF_NW_grass_yield_data.csv", stringsAsFactors = FALSE) 

HF_NW_grass <- raw_data %>% mutate_at(vars(Site, N_app, Block, Plot, Treatment), as.factor) %>% 
    mutate(Date = as.Date(Date, format = "%d/%m/%Y"), 
     Treatment = factor(Treatment, levels = c("AN", "U", "IU", "C"))) 

: として草収量(Dry_tonnes_ha)を皮切り

here, a nice balanced data set

を示すデータは、次のコードを使用してRでダウンロードすることができます次のアプローチ:

model_1 <- aov(formula = Dry_tonnes_ha ~ Treatment * N_app + Site/Block, data = HF_NW_grass, projections = TRUE) 

私はこれにいくつかの懸念があります。

まず、仮定をテストする最良の方法は何ですか?単純な一元配置ANOVAの場合、従属変数(Dry_tonnes_ha)にshapiro.test()bartlett.test()を使用して、標準偏差と分散の異質性を評価します。ここでも同じアプローチを使用できますか?

第2に、同じ測定値が3つの異なる期間にわたって同じプロットから取得されるので、N_appが繰り返された測定値であることを心配しています。この繰り返し測定値をモデルに組み込む最良の方法は何ですか?

第3に、Blockをネストする最善の方法がわかりませんSiteです。両方のサイトでBlockのレベルは1:4です。各サイトに固有のBlockレベルが必要ですか?

私はanother data set for NH3 emissions hereです。ダウンロードするRコード:

download.file('https://www.dropbox.com/s/0ax16x95m2z3fb5/HF_NW_NH3_emissions.csv?raw=1', destfile = "HF_NW_NH3_emissions.csv", method = "auto") 
raw_data_1 <- read.csv("HF_NW_NH3_emissions.csv", stringsAsFactors = FALSE) 

HF_NW_NH3 <- raw_data_1 %>% mutate_at(vars(Site, N_app, Block, Plot, Treatment), as.factor) %>% 
    mutate(Treatment = factor(Treatment, levels = c("AN", "U", "IU", "C"))) 

このため、データセットがアンバランスであることを追加しました。 でHFN_appであるが、3n = 4 でNWすべてのN_appレベルではn = 4である。 NFで測定が唯一NW measuremntsがTreatmentレベルANUIU

私は複雑さのこの追加のレベルに対処するかどうかはわかりませんに行われた時TreatmentレベルUIU で行われました。私はちょうど2つの別のサイト(各サイトでN_appの期間が同じではないという事実は、このアプローチを奨励するかもしれないという事実)として分析するように誘惑される。 ここでは、タイプ√3平方和ANOVAを使用できますか?

線形混合モデリングのアプローチが前進の方法かもしれないと私に示唆されていますが、私はこれらの使用に慣れていません。

上記のいずれかに関するあなたの考えを歓迎します。御時間ありがとうございます。

ロリー

答えて

4

あなたの最初の質問は、前提条件をテストするための最良の方法です。 Rで実装された別の統計検定を使用しようとする試みは合理的ですが、実際には分布を視覚化し、データがANOVA仮定を満たしているかどうかを確認します。このアプローチはやや主観的に思えるかもしれませんが、ほとんどの場合はうまくいきます。

  • 同じように分布している(i.i.d)データ:これは、データについてどれだけ知っているかに基づいて、回答が得られているかもしれないという質問です。独立性を判断するためにカイ2乗検定を使用することも可能です(そうでない場合)。
  • 通常配信されるデータ:ヒストグラム/ QQプロットを使用して確認します。この分布に基づいて、わずかに二峰性の分布にもかかわらず、aovを使用することは妥当であると私は考える。

(そのログ変換を助け、さらにこれは、あなたが特に下流の分析のために、考えることが何かである。正規性の仮定を満たして表示されます。)

par(mfrow=c(2,2)) 
plot(density(HF_NW_grass$Dry_tonnes_ha), col="red", main="Density") 
qqnorm(HF_NW_grass$Dry_tonnes_ha, col="red", main="qqplot") 
qqline(HF_NW_grass$Dry_tonnes_ha) 

DTH_trans <- log10(HF_NW_grass$Dry_tonnes_ha) 
plot(density(DTH_trans), col="blue", main="transformed density") 
qqnorm(DTH_trans, col="blue", main="transformed density") 
qqline(DTH_trans) 

構築するためにどのような最善の方法であなたの2番目の質問について残念ながら、そのような「ベスト」モデルを特定することは困難ですが、私の知識(主にゲノミクスの大きなデータを使用)に基づいて、線形混合効果モデルを使用することができます。これは、例えば、lme4 Rパッケージを通じて実装できます。 Rで線形モデルを構築する方法はすでにわかっているので、lme4関数を適用することで問題はありません。

2つの変数をネストするかどうかに関する3番目の質問は難しいです。私があなたの場合、私はSiteBlockで始まり、独立した要素であるかのようにします。しかし、彼らが独立していないことを知っていれば、おそらくそれらを入れ子にするべきです。

ご質問やご心配はありません。私の推薦は、あなたがもっともらしい正当な理由がある限り、進んで進んでいくことです。

+0

あなたのレスポンスに感謝します。統計が複雑になればなるほどプロセスはより主観的になります!仮定に関する素晴らしい情報。私は今、私が繰り返し措置が必要かどうか質問しています。私が分析しているすべての測定は、 'N_app 'ごとに1回しか起こらず、同じ' plot'が3回の '' N_app''期間に使われます。線形混合モデルをもう一度見てみましょう。また、2つのサイトを別々に簡素化して分析することもできます。 –

+0

私は線形混合モデルが不均衡なデータセットの助けになるかもしれないと思います。私はここでAnovaをタイプIII ssで使うことができると思いますが? –

1

私は視覚的診断の使用について@David Cに同意します。シンプルQQプロットは、ログ変換が私には合理的に見える

# dependent variable. 
par(mfrow=c(1,2)) 
qqnorm(dt[,dry_tonnes_ha]); qqline(dt[,dry_tonnes_ha], probs= c(0.15, 0.85)) 
qqnorm(log(dt[,dry_tonnes_ha])); qqline(log(dt[,dry_tonnes_ha]), probs= c(0.15, 0.85)) 

enter image description here

動作するはずです。あなたはまた、長い尾のとご希望の場合は、代わりラインナッププロット(ブジャら、2009)を使用することができ

par(mfrow=c(1,1)) 
plot(density(dt[,dry_tonnes_ha])) 

ややバイモーダルれる密度プロットから、これを見ることができます。私は彼らがこの場合に必要であると確信していません。その他の仮定についてはVignette provided

library(nullabor) 
# this may not be the best X variable. I'm not familiar with your data 
dt_l <- lineup(null_permute("dry_tonnes_ha"), dt) 
qplot(dry_tonnes_ha, treatment, data = dt_l) + facet_wrap(~ .sample) 

enter image description here

、あなたはちょうど私がこれらのプロットでは、あまりにも面倒何も表示されませんlm

lm2 <- lm(log(dry_tonnes_ha) ~ treatment * n_app + site/block, data = dt) 
plot(lm2) 

から標準的な診断プロットを使用することができます。

+0

ありがとう@Alexは、前にラインのプロットを見ていない - 常に多くのオプションを持つと便利です –

関連する問題