[R]重み付き最小二乗法による回帰モデルを作成する(2変量、従属変数にのみ誤差あり)
いわゆる y = f(x) のような方程式で、従属変数(この場合は変数y)にのみ誤差がある場合の、重み付き最小二乗法を、lm関数で行う方法。
lm関数にweightsオプションを付けて実行すればよい。以下、例。
以下、計算例のためのデータ。左から順に、独立変数(x)、従属変数(y)、重み(w)。
1 1 4.00
2 4 1.00
3 9 4.00
5 25 0.01
これらのデータが含まれているファイルをxyw.txtと保存しておく。以下が実行例。図が表示される。
> dtf <- read.table("xyw.txt")
> x <- as.numeric(dtf$V1)
> y <- as.numeric(dtf$V2)
> w <- as.numeric(dtf$V3)
> r <- lm(y ~ x)
> rw <- lm(y ~ x, weights = w)
> plot(x, y)
> abline(r, col = "blue")
> abline(rw, col = "red")

白丸が元データ。青直線が重みを考慮しないときの回帰直線。赤直線が重みを考慮したときの回帰直線。データを見ての通り、4番目の組(x = 5)は重みを小さくしているので、重みを考慮させると、残り3点で決められたような回帰モデルになっているのがわかる。
なお、lm関数により作成された回帰モデルの詳細はsummary関数で確認することができる。
> summary(rw)
Call:
lm(formula = y ~ x, weights = w)Weighted Residuals:
1 2 3 4
0.2645 -0.8978 0.1443 0.8012
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -3.1623 0.6834 -4.627 0.0437 *
x 4.0300 0.3084 13.068 0.0058 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Residual standard error: 0.8771 on 2 degrees of freedom
Multiple R-squared: 0.9884, Adjusted R-squared: 0.9826
F-statistic: 170.8 on 1 and 2 DF, p-value: 0.005805
« [Excel]数値が入力されているセルの個数を数える | トップページ | [R]非線形最小二乗法を簡単に行う »
「R(数値計算)」カテゴリの記事
- [R]複数のパラメーターと定数を持つ関数の値が最大・最小となるパラメーターを求める(2026.03.30)
- [R]重み付き線形最小二乗法を行う(2026.03.20)
- [R]重み付き非線形最小二乗法を行う(2026.03.06)
- [R]計算機イプシロンを求める(2025.10.29)
- [R]複数の引数を持つ関数の値の最小値(最大値)を求める(2024.12.07)

コメント