- 目的変数: モデルが予測する対象の変数。従属変数、基準変数ともいう(注意: これらすべてを予告なしに使うことがある)。
- 予測変数: 目的変数の予測に用いられる変数。独立変数、説明変数ともいう(注意: これらすべてを予告なしに使うことがある)。
- 予測変数が複数個ある回帰分析を重回帰分析、一つのものを単回帰分析という
> Data <- data.frame(重回帰データ) # データフレームに変換 > attach(Data) # attachすることで、次の省略記法が使える > ( result <- lm(娘 ~ 父 + 母) ) # Data$娘 を 娘 で表せる Call: lm(formula = 娘 ~ 父 + 母) Coefficients: # 偏回帰係数と切片 (Intercept) 父 母 100.66683 0.38064 -0.04289 > summary(result) # 詳しい分析結果の表示 Call: lm(formula = 娘 ~ 父 + 母) Residuals: Min 1Q Median 3Q Max -2.7014 -1.3216 -0.4500 0.6065 4.5125 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 100.66683 22.42209 4.490 0.000371 *** 父 0.38064 0.09569 3.978 0.001081 ** 母 -0.04289 0.09367 -0.458 0.653215 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 1.952 on 16 degrees of freedom Multiple R-squared: 0.509, Adjusted R-squared: 0.4476 F-statistic: 8.294 on 2 and 16 DF, p-value: 0.003377この結果から次の回帰式(予測変数が複数なので「重」回帰式)が導かれました:
[母親の身長を予測変数から外す]
それには、 lm(娘 ~ 父)として回帰分析をやり直す方法もありますが、次のように、 関数updateを使う方法があります:
> 単解析結果 <- update(result, .~. - 母) # 予測変数から「母」を取り除く > summary(単解析結果) # 結果の詳しい表示 Call: lm(formula = 娘 ~ 父) Residuals: Min 1Q Median 3Q Max -2.6841 -1.2146 -0.4087 0.5352 4.7036 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 93.32204 15.29708 6.101 1.18e-05 *** 父 0.38516 0.09294 4.144 0.000678 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 1.906 on 17 degrees of freedom Multiple R-squared: 0.5026, Adjusted R-squared: 0.4733 F-statistic: 17.18 on 1 and 17 DF, p-value: 0.0006784予想通り、「父」のみでも有意であり、しかもp値が先より小さくなっています。 これが示す単回帰モデルは次のとおりです:
標準偏回帰係数は次の式で与えられます:
ここで標準偏回帰係数とは、元データを標準化したときの偏回帰係数のことです。そして、 これはRでは次のように求めることができます:
> coef(result)[2:3]*sapply(Data[,2:3],sd)/sd(Data[,1]) 父 母 0.70254903 -0.08093953なお、coef(result)は、lm関数の結果から偏回帰係数を抽出するための関数で、 coef(result)[2:3]により、父親と母親の偏回帰係数が取り出せています。 それぞれの値に対し、標準偏回帰係数の定義どおり、 独立変数の標準偏差(