Sinus-Kurve passen, lm-und nls in R

Ich bin ein Anfänger in der curve-fitting und mehrere posts auf Stackoverflow hat mir wirklich geholfen.

Ich versucht, fit einer Sinus-Kurve, um meine Daten mit lm und nls aber beide Methoden zeigen eine seltsame Passform, wie unten gezeigt. Könnte jemand zeigen, wo ich falsch gelaufen ist. Ich würde vermuten, dass etwas zu tun mit der Zeit aber konnte es nicht Recht. Meine Daten zugegriffen werden kann von hier.
Sinus-Kurve passen, lm-und nls in R

data <- read.table(file="900days.txt", header=TRUE, sep="")
time<-data$time
temperature<-data$temperature

#lm fitting
xc<-cos(2*pi*time/366)
xs<-sin(2*pi*time/366)
fit.lm<-lm(temperature~xc+xs)
summary(fit.lm)
plot(temp~time, data=data, xlim=c(1, 900))
par(new=TRUE)
plot(fit.lm$fitted, type="l", col="red", xlim=c(1, 900), pch=19, ann=FALSE, xaxt="n",
yaxt="n")

#nls fitting
fit.nls<-nls(temp~C+alpha*sin(W*time+phi),
   start=list(C=27.63415, alpha=27.886, W=0.0652, phi=14.9286))
summary(fit.nls)
plot(fit.nls$fitted, type="l", col="red", xlim=c(1, 900), pch=19, ann=FALSE, xaxt="n", 
axt="n")
  • fit.lm der Klasse "lm" , so gibt es eine plot-Methode für Sie. plot(fit.lm, type.....) kann mehr, was Sie wollen.
  • Was ist die Bedeutung/ wo ist die "366" aus der Formel 2*pi*Zeit/366 ?
InformationsquelleAutor Eddie | 2013-11-20
Schreibe einen Kommentar