R-analysis-of-covariance

提供:Dev Guides
移動先:案内検索

R-共分散分析

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

Rに組み込まれたデータセットmtcarsについて考えます。 その中で、フィールド「am」は伝送のタイプ(自動または手動)を表していることがわかります。 値0および1のカテゴリ変数です。 馬力( "hp")の値に加えて、車のガロンあたりのマイル値(mpg)もそれに依存します。

「mpg」と「hp」の間の回帰に対する「am」の値の影響を研究します。 これは、* aov()関数の後に anova()*関数を使用して、重回帰を比較することにより行われます。

入力データ

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

input <- mtcars[,c("am","mpg","hp")]
print(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分析

「am」と「hp」の間の相互作用を考慮して、予測変数として「hp」、応答変数として「mpg」を使用する回帰モデルを作成します。

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

# Get the dataset.
input <- mtcars

# Create the regression model.
result <- aov(mpg~hp*am,data = input)
print(summary(result))

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

            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つの変数間の相互作用は重要ではありません。

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

# Get the dataset.
input <- mtcars

# Create the regression model.
result <- aov(mpg~hp&plus;am,data = input)
print(summary(result))

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

            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()*関数を使用します。

# Get the dataset.
input <- mtcars

# Create the regression models.
result1 <- aov(mpg~hp*am,data = input)
result2 <- aov(mpg~hp+am,data = input)

# Compare the two models.
print(anova(result1,result2))

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

Model 1: mpg ~ hp * am
Model 2: mpg ~ hp &plus; 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より大きいため、馬力と伝達タイプの相互作用は重要ではないと結論付けます。 したがって、ガロンあたりの走行距離は、自動および手動変速モードの両方で、同様に自動車の馬力に依存します。