0

線形モデルに適合させる必要があるデータがあります。また、x 値と y 値のすべてに関連するエラーがあります。

基本的に、私はこのようなことをしたいです(同じ長さのすべてのベクトル):

lm(y_data +- y_errors ~ x_data +- x_errors)

しかし、明らかにそれはうまくいきません。

Origin でできるようです ( http://www.originlab.com/doc/Origin-Help/LinearFit-XErr-Dialog )。

Origin のように、線形モデルを作成するために x および y 誤差を使用するように R に指示するにはどうすればよいですか?

4

1 に答える 1

0

x と y を考慮すると、それぞれ xe と ye の誤差が生じる可能性があります。すべての (x,y) の組み合わせについて、次の組み合わせを追加して分析すると、必要なものが得られる場合があります。originlab の結果と比較してみてください。

x,y
x-xe, y-ye
x+xe, y+ye
x-xe, y+ye
x+xe, y-y2

これらの組み合わせを取得するには、次のコードを試してください (x、y、xe、および ye をデータに置き換えてください)。

x = c(1,2,3,4)
xe = 0.1
y = c(12, 24, 28, 46)
ye = 1.3

ddf = data.frame(xx=as.numeric(), yy=as.numeric())
i=1
counter=1
while(i<(length(x)+1)){
    ddf[counter,]=c(x[i],y[i])
    ddf[counter+1,]=c(x[i]-xe,y[i]-ye)
    ddf[counter+2,]=c(x[i]+xe,y[i]+ye)
    ddf[counter+3,]=c(x[i]-xe,y[i]+ye)
    ddf[counter+4,]=c(x[i]+xe,y[i]-ye)
    counter = counter+5
    i = i+1
}
ddf
    xx   yy
1  1.0 12.0
2  0.9 10.7
3  1.1 13.3
4  0.9 13.3
5  1.1 10.7
6  2.0 24.0
7  1.9 22.7
8  2.1 25.3
9  1.9 25.3
10 2.1 22.7
11 3.0 28.0
12 2.9 26.7
13 3.1 29.3
14 2.9 29.3
15 3.1 26.7
16 4.0 46.0
17 3.9 44.7
18 4.1 47.3
19 3.9 47.3
20 4.1 44.7

次に、テストを実行します。

with(ddf, lm(yy~xx))

Call:
lm(formula = yy ~ xx)

Coefficients:
(Intercept)           xx  
      1.169       10.533  
于 2014-09-01T17:04:38.890 に答える