R で linearhypothesis() 関数を使用する方法
R のcarパッケージのLinearHypothesis()関数を使用して、特定の回帰モデルで線形仮説をテストできます。
この関数は次の基本構文を使用します。
linearHypothesis(fit, c(" var1=0 ", " var2=0 "))
この特定の例では、 fitと呼ばれるモデルの回帰係数var1とvar2が合わせて 0 に等しいかどうかをテストします。
次の例は、この関数を実際に使用する方法を示しています。
例: R で LinearHypothesis() 関数を使用する方法
R に、クラスの 10 人の生徒の学習時間数、受験した模擬試験の数、および最終試験の得点を示す次のデータ フレームがあるとします。
#create data frame df <- data.frame(score=c(77, 79, 84, 85, 88, 99, 95, 90, 92, 94), hours=c(1, 1, 2, 3, 2, 4, 4, 2, 3, 3), prac_exams=c(2, 4, 4, 2, 4, 5, 4, 3, 2, 1)) #view data frame df score hours prac_exams 1 77 1 2 2 79 1 4 3 84 2 4 4 85 3 2 5 88 2 4 6 99 4 5 7 95 4 4 8 90 2 3 9 92 3 2 10 94 3 1
ここで、次の重線形回帰モデルを R に当てはめたいとします。
試験のスコア = β 0 + β 1 (時間数) + β 2 (実技試験)
lm()関数を使用して、このモデルを適応させることができます。
#fit multiple linear regression model fit <- lm(score ~ hours + prac_exams, data=df) #view summary of model summary(fit) Call: lm(formula = score ~ hours + prac_exams, data = df) Residuals: Min 1Q Median 3Q Max -5.8366 -2.0875 0.1381 2.0652 4.6381 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 72.7393 3.9455 18.436 3.42e-07 *** hours 5.8093 1.1161 5.205 0.00125 ** prac_exams 0.3346 0.9369 0.357 0.73150 --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 3.59 on 7 degrees of freedom Multiple R-squared: 0.8004, Adjusted R-squared: 0.7434 F-statistic: 14.03 on 2 and 7 DF, p-value: 0.003553
ここで、時間係数とprac_exams が両方とも 0 であるかどうかをテストしたいとします。
これを行うには、 LinearHypothesis()関数を使用できます。
library (car) #perform hypothesis test for hours=0 and prac_exams=0 linearHypothesis(fit, c(" hours=0 ", " prac_exams=0 ")) Linear hypothesis testing Hypothesis: hours = 0 prac_exams = 0 Model 1: restricted model Model 2: score ~ hours + prac_exams Res.Df RSS Df Sum of Sq F Pr(>F) 1 9 452.10 2 7 90.24 2 361.86 14.035 0.003553 ** --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
仮説検定は次の値を返します。
- F 検定統計量: 14.035
- p値: .003553
この特定の仮説検定では、次の帰無仮説と対立仮説を使用します。
- H 0 : 両方の回帰係数がゼロに等しい。
- H A : 少なくとも 1 つの回帰係数がゼロに等しくありません。
検定の p 値 (0.003553) は 0.05 未満であるため、帰無仮説を棄却します。
言い換えれば、時間とプラクテストの回帰係数が両方ともゼロに等しいと言える十分な証拠がありません。
追加リソース
次のチュートリアルでは、R の線形回帰に関する追加情報を提供します。
R で回帰出力を解釈する方法
R で単純な線形回帰を実行する方法
R で重回帰を実行する方法
R でロジスティック回帰を実行する方法