2014-06-19 52 views
6

Guten Tag,R: Mit Gleichung mit natürlichen Logarithmus in

Ich habe mit R und natürlichen Logarithmus (IN) zu kämpfen. Erstens kann ich keine ln (x) -Funktion in R finden. Ich habe bemerkt, dass log (x) dasselbe ist wie ln (x) (wenn ln (x) mit einem Taschenrechner verwendet wird).

In R:

log(5) = 1.609438 

Und mit einem Rechner:

ln(5) = 1.609438 
log(5) = 0.69897 

Ich versuche, eine Gleichung in R zu passen (dies ist genau, wie ich in der Literatur von 3 Referenzen gefunden) :

y = a + b (x /) + c (x /) + d ln (/ x) + f ln (/ x)

Ist es richtig, die folgenden zu verwenden Syntax in R, um die Gleichung zu verwenden?

y ~ a + b*(x/305) + c*((x/305)^2) + d*log(305/x) + f*(log(305/x))^2 

Die Idee ist, diese Funktion mit nls im Voraus() in R. Dank nutzen!

+1

'log' in R bedeutet den natürlichen Logarithmus. Dies ist die Konvention der Mathematiker, da "gewöhnliche" Logarithmen kein mathematisches Interesse haben. Die Abkürzung "ln" wurde eingeführt, um die Studenten weniger verwirrend zu machen. –

+2

Sie brauchen keinen Rechner, um herauszufinden, was "log" bedeutet. Sie müssen nur die Dokumentation lesen: 'help (" log ")'. Ihre Formel sieht korrekt aus. – Roland

Antwort

13

In R, log ist der natürliche Logarithmus. In Rechnern bedeutet log normalerweise den Logarithmus zur Basis 10. Um das in R zu erreichen, können Sie die log10 Funktion verwenden.

log(5) 
## [1] 1.609438 
log10 
## [1] 0.69897(5) 

Wie für Ihre Formel, so scheint es richtig, da log der natürliche Logarithmus ist.

+0

Danke für die Antwort! Ich erwartete so viel und brauchte nur Exterieur. Danke noch einmal! – wernerfeuer

4

Darüber hinaus werde ich darauf hinweisen, dass Ihr Modell

y ~ a + b*(x/305) + c*((x/305)^2) + d*log(305/x) + f*(log(305/x))^2 

linear im statistischen Sinne ist linear in den Koeffizienten des Seins; es muss nicht linear in x sein.

Sie brauchen keine nls, um dieses Modell zu verwenden, Sie könnten lm() verwenden.

Aber denken Sie daran, die I() -Funktion zu betrachten, um Ausdrücke wie (x/305)^2 auszudrücken.

ETA Beispiel:

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)