前回はMS-Excelでの検量線についてご紹介しました。
今回は、
同じ例題を使ってデータ解析環境「R」でやって見ましょう。
今回は、
同じ例題を使ってデータ解析環境「R」でやって見ましょう。
初めに、
package"investr" をインストールしておいて下さい。では、
前回の図1のデータ(直線回帰)を使って見ましょう。
package"investr" をインストールしておいて下さい。では、
前回の図1のデータ(直線回帰)を使って見ましょう。
「R」プログラム
***
# 標準物質の濃度(Ⅹ)と吸光度(Y)
***
# 標準物質の濃度(Ⅹ)と吸光度(Y)
XY
「R」の実行結果
> dat
x y
1 50 0.09
2 100 0.15
3 200 0.29
4 300 0.42
5 400 0.52
> round(INV.fit1$estimate,1) # 吸光度(y0=0.29)の逆推定値
[1] 206.8
datdat
fit1summary(fit1)
library(investr)
INV.fit1round(INV.fit1$estimate,1)
plotFit(fit1, interval = "confidence")
abline(h = 0.29, v = c(INV.fit1$lower, INV.fit1$estimate, INV.fit1$upper), lty = 2, col = "red")
abline(h = 0.29, v = c(INV.fit1$lower, INV.fit1$estimate, INV.fit1$upper), lty = 2, col = "red")
「R」の実行結果
> dat
x y
1 50 0.09
2 100 0.15
3 200 0.29
4 300 0.42
5 400 0.52
> summary(fit1)
Call:
lm(formula = y ~ x, data = dat)
lm(formula = y ~ x, data = dat)
Residuals:
......1..............2...............3.............4.............5
-0.003415 -0.006098 0.008537 0.013171 -0.012195
......1..............2...............3.............4.............5
-0.003415 -0.006098 0.008537 0.013171 -0.012195
Coefficients:
..................Estimate....Std. Error...t value...Pr(>|t|)
(Intercept)..3.073e-02..1.045e-02....2.941...0.0604 .
x................1.254e-03..4.248e-05...29.512..8.54e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
..................Estimate....Std. Error...t value...Pr(>|t|)
(Intercept)..3.073e-02..1.045e-02....2.941...0.0604 .
x................1.254e-03..4.248e-05...29.512..8.54e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.01216 on 3 degrees of freedom
Multiple R-squared: 0.9966, Adjusted R-squared: 0.9954
F-statistic: 871 on 1 and 3 DF, p-value: 8.544e-05
Multiple R-squared: 0.9966, Adjusted R-squared: 0.9954
F-statistic: 871 on 1 and 3 DF, p-value: 8.544e-05
> round(INV.fit1$estimate,1) # 吸光度(y0=0.29)の逆推定値
[1] 206.8
図1 直線回帰からの逆推定(95%信頼限界)
***
次に、
前回(図3)のデータ(2次方程式の当てはめ)を使って見ましょう。
「R」プログラム
***
# 標準物質の濃度(Ⅹ)と吸光度(Y)
***
# 標準物質の濃度(Ⅹ)と吸光度(Y)
XY
datdat
datdat
fit2summary(fit2)
library(investr)
INV.fit2
round(INV.fit2$estimate,1) # 吸光度(y0)の逆推定値
round(INV.fit2$estimate,1) # 吸光度(y0)の逆推定値
plotFit(fit2, interval = "confidence")
abline(h = 0.835, v = c(INV.fit2$lower, INV.fit2$estimate, INV.fit2$upper), lty = 2, col = "red")
abline(h = 0.835, v = c(INV.fit2$lower, INV.fit2$estimate, INV.fit2$upper), lty = 2, col = "red")
「R」の実行結果
> dat
x y
1 23 0.056
2 46 0.126
3 92 0.224
4 180 0.419
5 370 0.601
6 740 0.835
7 1500 1.177
> dat
x y
1 23 0.056
2 46 0.126
3 92 0.224
4 180 0.419
5 370 0.601
6 740 0.835
7 1500 1.177
> summary(fit2)
Formula: y ~ a * x^2 + b * x + c
Parameters:
......Estimate...Std. Error...t value...Pr(>|t|)
a..-4.989e-07..1.285e-07..-3.883....0.01780 *
b...1.469e-03..1.980e-04....7.423....0.00176 **
c....8.395e-02..4.207e-02....1.995....0.11673
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
......Estimate...Std. Error...t value...Pr(>|t|)
a..-4.989e-07..1.285e-07..-3.883....0.01780 *
b...1.469e-03..1.980e-04....7.423....0.00176 **
c....8.395e-02..4.207e-02....1.995....0.11673
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.06677 on 4 degrees of freedom
Number of iterations to convergence: 1
Achieved convergence tolerance: 5.894e-09
Achieved convergence tolerance: 5.894e-09
> round(INV.fit2$estimate,1) # 吸光度(y0=0.835)の逆推定値
[1] 658.3
[1] 658.3
図1 2次曲線回帰からの逆推定(95%信頼限界)
***
検量線として、2次方程式からの逆推定はあまり良くないようです。
この様な、曲線になる検量線では片対数変換とか両対数変換を試みることもあります。
(すぐに役立つ統計のコツ、85ページ 参照)
(すぐに役立つ統計のコツ、85ページ 参照)
次回は、線形補間による方法をご紹介したいと思います。
情報統計研究所はここから!