Pomiar pokazuje sygnał utworzony jako pierwiastek kwadratowy z przesunięciem i współczynnikiem. Jak znaleźć współczynniki i wykreślić surowe dane i dopasowaną krzywą na jednym wykresie?Jak dopasować dane za pomocą funkcji nieliniowej i danych wykresu i dopasować za pomocą ggplot()
require(ggplot2)
require(nlmrt) # may be this will help later..?
# generate simulated measurement data
time <- seq(-10,20,0.2)
signal <- sqrt(time + 2) # generate sqrt signal; includes some NA
signal[is.na(signal)] <- 0 # set all NA to zero
signal <- signal + rnorm(length(time)) * 0.1 # add noise
df <- data.frame(x=time, y=signal)
# find coefficiants for y ~ b * sqrt(x - a)
# no idea how...
# plot raw data and fitted curve in one ggplot diagram
ggplot()+
geom_point(data=df, aes(x=x, y=y))
Tylko podpowiedź, prawdopodobnie chcesz dopasować 'y ~ b * sqrt (x - a)', w przeciwieństwie do 'a + b * sqrt (c * x)'. –
Jeśli nie możesz określić punktu odcięcia * a priori * (tzn. Czy jest to parametr dopasowany), prawdopodobnie będziesz musiał dopasować to osobno (nie pasowałoby to do modelu liniowego, a szczególnie trudne aspekty dopasowania odcięć, ponieważ dobroć dopasowania jest płaska w odstępach między punktami danych). Jeśli możesz określić wartość graniczną, to myślę, że możesz skonstruować zmienną ślepą i zrobić to ... –
Jako pierwszy krok mogę ręcznie zdefiniować stałą dla odcięcia. Później chciałbym znaleźć to automatyczne. Ale to może być temat innego pytania. –