毛虫では、捕食者に対する抵抗力においてサイズよりも食事が重要ですか?


8

自然食(モンキーフラワー)を食べる毛虫が、人工食(小麦胚芽とビタミンの混合物)を食べる毛虫よりも捕食者(アリ)に対して耐性があるかどうかを調べています。小さなサンプルサイズで試験研究を行いました(20の幼虫、食事あたり10匹)。実験前に各キャタピラーの重量を量った。アリのグループに5分間、1組の毛虫(食事ごとに1つ)を提供し、各毛虫が拒否された回数をカウントしました。このプロセスを10回繰り返しました。

これは私のデータのようになります(A =人工食、N =自然食):

Trial A_Weight   N_Weight   A_Rejections N_Rejections
1     0.0496     0.1857     0     1 
2     0.0324     0.1112     0     2
3     0.0291     0.3011     0     2
4     0.0247     0.2066     0     3
5     0.0394     0.1448     3     1
6     0.0641     0.0838     1     3
7     0.0360     0.1963     0     2
8     0.0243     0.145      0     3
9     0.0682     0.1519     0     3
10    0.0225     0.1571     1     0

私はRで分散分析を実行しようとしています。これは私のコードのようになります(0 =人工飼料、1 =自然飼料。すべてのベクトルは最初に10の人工飼料の幼虫のデータで構成され、その後に10の天然飼料のデータが続きます。キャタピラー):

diet <- factor (rep (c (0, 1), each = 10) 
rejections <- c(0,0,0,0,3,1,0,0,0,1,1,2,2,3,1,3,2,3,3,0) 
weight <- c(0.0496,0.0324,0.0291,0.0247,0.0394,0.0641,0.036,0.0243,0.0682,0.0225,0.1857,0.1112,0.3011,0.2066,0.1448,0.0838,0.1963,0.145,0.1519,0.1571)   
all.data <- data.frame(Diet=diet, Rejections = rejections, Weight = weight)  
fit.all <- lm(Rejections ~ Diet * Weight, all.data)  
anova(fit.all)  

そして、これらは私の結果がどのように見えるかです:

Analysis of Variance Table  

Response: Rejections  
            Df  Sum Sq Mean Sq F value   Pr(>F)    
Diet         1 11.2500 11.2500  9.8044 0.006444 ** 
Weight       1  0.0661  0.0661  0.0576 0.813432    
Diet:Weight  1  0.0748  0.0748  0.0652 0.801678    
Residuals   16 18.3591  1.1474                     
--- 
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

私の質問は:

  • ここで分散分析は適切ですか?サンプルサイズが小さいことが統計的検定で問題になることを理解しています。これは単なる試験研究であり、クラスのプレゼンテーションで統計を実行したいと思います。より大きなサンプルサイズでこの調査をやり直す予定です。
  • データをRに正しく入力しましたか?
  • これは、食事は重要だが体重は重要ではないことを私に教えていますか?

7
体重は食事と完全に混同されているため、自然食の方が人工食よりも一様に重いため、どちらか一方と拒絶反応の関係について結論を出す方法を理解するのは困難です。
whuber

ええ、私はあなたに同意します。これをやり直すときは、すべてのキャタピラー人工飼料(1つはアレロケミカルを分離したもの)に給餌して、同じ速度で成長するようにします。
Meow

回答:


14

tl; dr @whuberは、ダイエットと体重が分析で混乱しているのは正しいです。これが図のようになります。

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

ファットポイント+範囲は、食事のみの平均とブートストラップ信頼区間を示します。灰色の線+信頼区間は、体重との全体的な関係を示しています。個々の線+ CIは、各グループの重みとの関係を示しています。diet = Nの方が拒絶反応が多くなりますが、それらの個人の体重も高くなります。

厄介な機械の詳細に入る:分析は正しい方向に進んでいますが、(1)ダイエットの効果をテストするときは、体重の影響を考慮に入れる必要があり、その逆も同様です。デフォルトでは、Rは逐次 ANOVAを実行し、食事のみの効果をテストします。(2)このようなデータについては、おそらくポアソン一般化線形モデル(GLM)を使用する必要がありますが、この場合の統計的結論にはそれほど大きな違いはありません。

限界効果をテストするでsummary()はなくを見ると、anova()特に有意に見えるものは何もないことがわかります(相互作用が存在する場合の主効果のテストにも注意する必要があります。この場合、食事の効果は、ゼロの重み:おそらく賢明ではありませんが、相互作用は重要ではないため(大きな影響があります!)、大きな違いはない可能性があります。

summary(fit.lm <- lm(rejections~diet*weight,data=dd2))
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)
## (Intercept)    0.3455     0.9119   0.379    0.710
## dietN          1.9557     1.4000   1.397    0.182
## weight         3.9573    21.6920   0.182    0.858
## dietN:weight  -5.7465    22.5013  -0.255    0.802

重み変数の中央揃え:

dd2$cweight <- dd2$weight-mean(dd2$weight)
summary(fit.clm <- update(fit.lm,rejections~diet*cweight))
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)
## (Intercept)     0.7559     1.4429   0.524    0.608
## dietN           1.3598     1.5318   0.888    0.388
## cweight         3.9573    21.6920   0.182    0.858
## dietN:cweight  -5.7465    22.5013  -0.255    0.802

ここでの話に大きな変化はありません。

car::Anova(fit.clm,type="3")
## Response: rejections
##               Sum Sq Df F value Pr(>F)
## (Intercept)   0.3149  1  0.2744 0.6076
## diet          0.9043  1  0.7881 0.3878
## cweight       0.0382  1  0.0333 0.8575
## diet:cweight  0.0748  1  0.0652 0.8017
## Residuals    18.3591 16               

いわゆる「タイプ3」テストが理にかなっているかどうかについては、いくつかの議論があります。必ずしもそうとは限りませんが、重さを中央に揃えることは役立ちます。モデルから相互作用を取り除いた後で主効果をテストするタイプ2分析は、より防御可能かもしれません。この場合、食事とcweightは、相互の関係なしにテストされますが、相互作用は含まれません。

car::Anova(fit.clm,type="2")
## Response: rejections
##               Sum Sq Df F value  Pr(>F)  
## diet          4.1179  1  3.5888 0.07639 .
## cweight       0.0661  1  0.0576 0.81343  
## diet:cweight  0.0748  1  0.0652 0.80168  
## Residuals    18.3591 16                  

体重の影響を無視して食事を分析した場合、非常に有意な結果が得られることがわかります。これは、逐次分散分析により、分析で見つけたものと本質的に同じです。

fit.lm_diet <- update(fit.clm,. ~ diet)
car::Anova(fit.lm_diet)
## Response: rejections
##           Sum Sq Df F value   Pr(>F)   
## diet       11.25  1  10.946 0.003908 **
## Residuals  18.50 18                    

この種のデータをポアソンGLM(glm(rejections~diet*cweight,data=dd2,family=poisson))に当てはめるのがより標準的ですが、この場合、結論に大きな違いはありません。

ちなみに、可能であれば、手動でデータを再配置するよりも、プログラムでデータを再配置する方が適切です。参考までに、これは私が行った方法です(私が使用した「魔法」の量については申し訳ありません):

library(tidyr)
library(dplyr)

dd <- read.table(header=TRUE,text=
"Trial A_Weight   N_Weight   A_Rejections N_Rejections
1     0.0496     0.1857     0     1 
2     0.0324     0.1112     0     2
3     0.0291     0.3011     0     2
4     0.0247     0.2066     0     3
5     0.0394     0.1448     3     1
6     0.0641     0.0838     1     3
7     0.0360     0.1963     0     2
8     0.0243     0.145      0     3
9     0.0682     0.1519     0     3
10    0.0225     0.1571     1     0
")

## pick out weight and rearrange to long format
dwt <- dd %>% select(Trial,A_Weight,N_Weight) %>%
    gather(diet,weight,-Trial) %>%
    mutate(diet=gsub("_.*","",diet))
## ditto, rejections
drej <- dd %>% select(Trial,A_Rejections,N_Rejections) %>%
    gather(diet,rejections,-Trial) %>%
    mutate(diet=gsub("_.*","",diet))
## put them back together
dd2 <- full_join(dwt,drej,by=c("Trial","diet"))

プロットコード:

dd_sum <- dd2 %>% group_by(diet) %>%
   do(data.frame(weight=mean(.$weight),
              rbind(mean_cl_boot(.$rejections))))

library(ggplot2); theme_set(theme_bw())
ggplot(dd2,aes(weight,rejections,colour=diet))+
geom_point()+
scale_colour_brewer(palette="Set1")+
scale_fill_brewer(palette="Set1")+
geom_pointrange(data=dd_sum,aes(y=y,ymin=ymin,ymax=ymax),
                size=4,alpha=0.5,show.legend=FALSE)+
geom_smooth(method="lm",aes(fill=diet),alpha=0.1)+
geom_smooth(method="lm",aes(group=1),colour="darkgray",
            alpha=0.1)+
scale_y_continuous(limits=c(0,3),oob=scales::squish)

2
手伝ってくれてありがとうございます。私はANOVAが逐次的であり、この場合は重みを無視していることに気付きませんでした-知っておくと良いです!
Meow
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.