良い一日、
私はRと自然対数(ln)と格闘しています。最初に、Rでln(x)関数を見つけることができません。log(x)がln(x)と同じであることに気付きました(電卓でln(x)を使用する場合)。
R:
log(5) = 1.609438
そして電卓で:
ln(5) = 1.609438
log(5) = 0.69897
私はRに方程式を当てはめようとしています(これは、3つの参考文献で見つけた方法とまったく同じです)。
y = a + b(バツ/305)+ c(バツ/305)2 + d ln(305/バツ)+ f ln2(305/バツ)
方程式を使用するためにRで次の構文を使用することは正しいですか?
y ~ a + b*(x/305) + c*((x/305)^2) + d*log(305/x) + f*(log(305/x))^2
Rのnls()でこの関数を使用するという考えです。事前に感謝します!
Rでは、log
は自然対数です。計算機では、logは通常、10を底とする対数を意味します。 Rでそれを実現するには、log10
関数。
log(5)
## [1] 1.609438
log10
## [1] 0.69897(5)
log
は自然対数なので、数式については正しいようです。
さらに、私はあなたのモデルが
y ~ a + b*(x/305) + c*((x/305)^2) + d*log(305/x) + f*(log(305/x))^2
係数において線形であるという統計的な意味で線形です。 xで線形である必要はありません。
このモデルに合わせるためにnlsは必要ありません。lm()を使用できます。
ただし、I()関数を見て、(x/305)^ 2のような用語を表すことを忘れないでください。
ETAの例:
aDF <- data.frame(x=abs(rnorm(100)), y=rnorm(100))
lm(y ~ 1 + I(x/305) + I((x/305)^2) + log(305/x) + I(log(305/x)^2), data=aDF)
Rでは、logは対数を計算します。デフォルトでは自然対数、log10は一般的な(つまり、基数10)対数を計算し、log2はバイナリ(つまり、基数2)対数を計算します。一般的な形式log(x、base)は、baseを使用して対数を計算します。( "R Documentation")