※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。



Ch.2, "Simple Linear Regression Analysis" より (pp.34-36)

プログラムと結果

データ

z <- c(1,2,4,6,7,8,10,15)
x <- c(0.045, 0.114, 0.215, 0.346, 0.410, 0.520, 0.670, 0.942)
data <- data.frame(z, x)

直線回帰

result.1 <- lm(x ~ z, data=data)
result.1

Call:
lm(formula = x ~ z, data = data)

Coefficients:
(Intercept)            z  
   -0.02777      0.06574  

共変量の平均値周りの回帰

result.2 <- lm(x ~ I(z - mean(z)), data=data)
result.2

Call:
lm(formula = x ~ I(z - mean(z)), data = data)

Coefficients:
  (Intercept)  I(z - mean(z))  
      0.40775         0.06574

計算値のチェック

sum(data$x - predict(result.1))
[1] 6.938894e-17
data$z %*% (data$x - predict(result.1))
             [,1]
[1,] 1.831868e-15

残差分散

sum(result.1$res ^2)/result.1$df
[1] 0.000644371

パラメータの SE,信頼区間

summary(result.1)

Call:
lm(formula = x ~ z, data = data)

Residuals:
      Min        1Q    Median        3Q       Max 
-0.022402 -0.020304 -0.004642  0.013185  0.040380 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
Intercept) -0.027773   0.016647  -1.668    0.146    
            0.065739   0.002116  31.063 7.39e-08 ***

Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.02538 on 6 degrees of freedom
Multiple R-Squared: 0.9938, Adjusted R-squared: 0.9928
F-statistic: 964.9 on 1 and 6 DF, p-value: 7.392e-08

confint(result.1)
                 2.5 %     97.5 %
(Intercept) -0.06850670 0.01296021
z            0.06056098 0.07091773

原点を通る直線

result.3 <- lm(x ~ z - 1, data=data)
summary(result.3)

Call:
lm(formula = x ~ z - 1, data = data)

Residuals:
      Min        1Q    Median        3Q       Max 
-0.036063 -0.029668 -0.014648  0.004855  0.042343 

Coefficients:
  Estimate Std. Error t value Pr(>|t|)    
z 0.062766   0.001278   49.11  3.8e-10 ***

Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.02843 on 7 degrees of freedom
Multiple R-Squared: 0.9971, Adjusted R-squared: 0.9967
F-statistic: 2412 on 1 and 7 DF, p-value: 3.799e-10

confint(result.3)
       2.5 %     97.5 %
z 0.05974354 0.06578778

予測区間

pred.1 <- predict(result.1, interval="prediction")
matplot(data$z, pred.1, type="l", xlab="z", ylab="x")
points(data$z, data$x)


参照




  
添付ファイル