RでANCOVAを実行する方法


17

植物着生植物の密度に関するデータのANCOVA分析を行いたい。最初は、NとSの2つの斜面の間で植物密度に違いがあるかどうかを知りたいのですが、宿主植物の高度、キャノピーの開放性、高さなどの他のデータがあります。私の共変量は2つの勾配(NとS)でなければならないことを知っています。Rで実行するこのモデルを作成しましたが、うまく機能するかどうかはわかりませんが。また、シンボル+またはを使用した場合の違いを知りたい*です。

model1 <- aov(density~slope+altitude+canopy+height)
summary(model1)
model1

3
+は主効果のみを計算し、*は*に関連する因子間の相互作用を推定します。ANCOVAフレームワークは通常、連続因子の主効果のみを推定しますが、グループ化されたすべての因子間の相互作用を推定します。
ラッセルピアス

回答:


14

このための基本的なツールは次のとおりですlmaovはのラッパーであることに注意してくださいlm

特に、グループ化変数(因子)gおよび連続共変量x場合、モデルy ~ x + gは主効果ANCOVAモデルにy ~ x * g適合し、共変量との相互作用を含むモデルに適合します。aov同じ式を取ります。

Noteのヘルプで特に注意してくださいaov

用として+*、russellpierceほとんどカバーそれは、私はあなたが見てお勧めします?lm?formula、最も特にマニュアルのセクション11.1 Rへの入門あなたはどのように考え出したていない場合(またはあなたがオンラインでそれを見つけることができますRが付属していますお使いのコンピューターで見つけるには、最も簡単には、RまたはRStudioで「ヘルプ」プルダウンメニューを見つける必要があります。


私のモデルが 2つのグループ因子と2つの共変量とします y〜g_1 + g_2 + x_1 + x_2は同じトリックをしますか?x_1およびx_2に対して取得したF値は、それぞれおよびテストしますか?g1,g2x1,x2
yij=μ+αi+ηj+xij1γ1+xij2γ2+ϵij
γ1=0γ2=0
サヤン

どうしてこれを見逃したのかわかりません。はい。....そして、両方を一度にテストしたい場合は、それらの有無にかかわらずフィットし、フィットしたlmオブジェクトを渡しanovaます(間違った順序でそれらを与えると、SSが負になるのですぐにわかります)
Glen_b -Reinstate Monica

10

R by Field を使用したDiscovering Statisticsを取得して読むことをお勧めします。彼はANCOVAに関する素晴らしいセクションを持っています。

RでANCOVAを実行するには、次のパッケージをロードします。

car
compute.es
effects
ggplot2
multcomp
pastecs
WRS

lmまたはaovを使用している場合(または使用しますaov)、aovまたはを実行する前に、「コントラスト」機能を使用してコントラストを設定してくださいlm。RはデフォルトでANCOVAのすべてを台無しにする非直交コントラストを使用します。直交コントラストを設定する場合:

contrasts(dataname$factorvariable)=contr.poly(# of levels, i.e. 3) 

次にモデルを実行します

model.1=aov(dv~covariate+factorvariable, data=dataname)

モデルを表示するには、次を使用します。

Anova(model.1, type="III") 

Anovaここでは大文字ではなく「A」を使用してくださいanova。これにより、タイプIII SSを使用した結果が得られます。

summary.lm(model.1)別の要約が表示され、R-sqが含まれます。出力。

posth=glht(model.1, linfct=mcp(factorvariable="Tukey"))  ##gives the post-hoc Tukey analysis
summary(posth) ##shows the output in a nice format.

回帰勾配の均一性をテストする場合は、IVと共変量の交互作用項を含めることもできます。それは:

model=aov(dv~covariate+IV+covariate:IV, data=dataname)

相互作用項が重要な場合、均質性はありません。


なぜ非直交コントラストがすべてを台無しにするのですか?
-tintinthong

1
「なぜ非直交コントラストがすべてを台無しにするのか」に関する上記の質問に答えるために。答えは、Rはデフォルトで非直交(つまり、平均の差)になり、各IVの寄与を個別に表示したい場合に問題を引き起こす可能性があるということです。直交コントラストを指定するとき、IVのSSを完全に分割し、重複しないようにすることをRに伝えます。このようにして、各予測変数に起因する変動を明確かつ明確に見ることができます。指定しない場合、Rはデフォルトでより自由なコントラストのアプローチになります。

2
タイプIII SSに関心があるのはなぜですか?
フランクハレル

4

これは、@ Butorovichによって提案された手順の補足ドキュメントhttp://goo.gl/yxUZ1Rです。さらに、私の観察では、共変量がバイナリの場合、summary(lm.object)を使用すると、Anova(lm.object、type = "III")によって生成されるのと同じIV推定値が得られます。


1
これが答えであるべきかどうかは明らかではありません。それは...ですか?その場合、明確にするために編集してください。質問の場合はASK QUESTION、上部のをクリックして質問してください。それから私達はきちんと助けることができます。
GUNG -復活モニカ

同意した。このメッセージは、前のメッセージに対する(補完的な)回答として改訂されました。
XX

3

回帰分析を使用して、予測変数の変動が応答変数に与える影響を記述するモデルを作成します。Yes / NoやMale / Femaleなどの値を持つカテゴリ変数がある場合、単純回帰分析では、カテゴリ変数の各値に対して複数の結果が得られることがあります。このようなシナリオでは、予測変数と一緒に使用し、カテゴリ変数の各レベルの回帰直線を比較することにより、カテゴリ変数の効果を調べることができます。このような分析は、ANCOVAとも呼ばれる共分散分析と呼ばれます。

組み込みのデータセットを
考えます。このフィールドでは、フィールドが伝送のタイプ(自動または手動)を表していることがわかります。値0および1のカテゴリ変数です。車のガロンあたりのマイル数の値()は、馬力の値()に加えて、これにも依存します。私たちは、の値の影響の研究間の回帰上とを。これは、関数に続いて関数を使用して、重回帰を比較することにより行われます。Rmtcarsammpghpammpghpaov()anova()

入力データは、
フィールドを含むデータフレームを作成しmpghpそしてamデータセットからmtcars。ここではmpg、応答変数、hp予測変数、およびamカテゴリ変数として取ります。

input <- mtcars[,c("am","mpg","hp")]
head(input)

上記のコードを実行すると、次の結果が生成されます。

                  am  mpg  hp
Mazda RX4          1 21.0 110
Mazda RX4 Wag      1 21.0 110
Datsun 710         1 22.8  93
Hornet 4 Drive     0 21.4 110
Hornet Sportabout  0 18.7 175
Valiant            0 18.1 105

ANCOVAの分析は、
我々は回帰モデルの撮影を作成するhp予測変数としてとmpg考慮間の相互作用取って応答変数としてamとをhp

カテゴリ変数と予測変数の間の相互作用があるモデル

回帰モデルを作成1

result1 <- aov(mpg~hp*am,data=mtcars)
summary(result1)

上記のコードを実行すると、次の結果が生成されます。

            Df Sum Sq Mean Sq F value   Pr(>F)    
hp           1  678.4   678.4  77.391 1.50e-09 ***
am           1  202.2   202.2  23.072 4.75e-05 ***
hp:am        1    0.0     0.0   0.001    0.981    
Residuals   28  245.4     8.8                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

この結果は、両方の場合のp値が0.05未満であるため、馬力と伝達タイプの両方がガロンあたりのマイル数に大きな影響を与えることを示しています。ただし、p値が0.05を超えるため、これら2つの変数間の相互作用は重要ではありません。

カテゴリ変数と予測変数間の相互作用のないモデル

回帰モデルを作成する2

result2 <- aov(mpg~hp+am,data=mtcars)
summary(result2)

上記のコードを実行すると、次の結果が生成されます。

            Df Sum Sq Mean Sq F value   Pr(>F)    
hp           1  678.4   678.4   80.15 7.63e-10 ***
am           1  202.2   202.2   23.89 3.46e-05 ***
Residuals   29  245.4     8.5                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

この結果は、両方の場合のp値が0.05未満であるため、馬力と伝達タイプの両方がガロンあたりのマイル数に大きな影響を与えることを示しています。

2つのモデルの比較2つのモデル
を比較して、変数の相互作用が本当に重要でないかどうかを結論付けることができます。このために、anova()関数を使用します。

 anova(result1,result2)

 Model 1: mpg ~ hp * am
 Model 2: mpg ~ hp + am
   Res.Df    RSS Df  Sum of Sq     F Pr(>F)
 1     28 245.43                           
 2     29 245.44 -1 -0.0052515 6e-04 0.9806

p値が0.05より大きいため、馬力と伝達タイプ間の相互作用は重要ではないと結論付けます。したがって、ガロンあたりの走行距離は、自動および手動変速モードの両方で、同様に自動車の馬力に依存します。


最初に来たのは、この回答とチュートリアルに関するこの投稿のどちらですか?tutorialspoint.com/r/r_analysis_of_covariance.htm。この回答は盗作として削除すべきですか?または、チュートリアルはここからコピーするだけでしたか?
ジョン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.