Вычитание подогнанного многочлена из набора данных в R - PullRequest
3 голосов
/ 07 апреля 2020

У меня есть одна кривая, диаграмма рассеяния, которая является графиком набора данных, с которым я работаю (названный «mydata»), и другая кривая, которая является подогнанной полиномиальной кривой 2-й степени, которую я получила из набора данных. Диаграмма рассеяния была получена с помощью простой функции построения графика:

plot(mydata)

Код, который я использовал для примерки:

fit<-lm(mydata$Volts ~ poly(mydata$Frequency, 2, raw=TRUE),data=mydata)
#summary(fit)
lines(mydata$Frequency, predict(fit))

Теперь я хотел бы вычесть подобранный полином из набора данных , Мой подход был следующим:

given<-plot(mydata)
fit<-lm(mydata$Volts ~ poly(mydata$Frequency, 2, raw=TRUE),data=mydata)
new<-lines(mydata$Frequency, predict(fit))
corrected<-given-new
plot(corrected)

Я получил ошибку:

Error in plot(corrected) : object 'corrected' not found

Как мне исправить это?

Ответы [ 2 ]

3 голосов
/ 07 апреля 2020

Похоже, вы пытаетесь вычесть графические элементы. Вы должны выполнить любые математические операции над вашими данными, прежде чем пытаться построить их. Может работать что-то вроде следующего. Однако без выборочных данных это только обоснованное предположение.

given <- mydata$Volts
fit <- lm(mydata$Volts ~ poly(mydata$Frequency, 2, raw=TRUE),data=mydata)
new <- predict(fit)
corrected <- given-new
plot(mydata$Frequency, corrected)
1 голос
/ 07 апреля 2020

Я запустил представление (хотя технически мне нужно случайное начальное число для истинного представления, но из-за реальной проблемы с кодом, которая здесь не имеет значения) для бессмысленных данных.

volts=rnorm(50,mean=220,sd=5)
frequency=runif(50,min=30,max=90)

mydata=data.frame(Volts=volts,Frequency=frequency)
given<-plot(mydata)
fit<-lm(mydata$Volts ~ poly(mydata$Frequency, 2, raw=TRUE),data=mydata)
new<-lines(mydata$Frequency, predict(fit))
corrected<-given-new
plot(corrected)

Цель моего ответа - строго объяснить, почему появилась ошибка not found . Код Дэниела показывает вам исправление.

Я не уверен, почему ответ Daniel O не был выбран, потому что он работал. Я знаю, это расстраивает, когда вы явно определили что-то и ваш исходный код находится прямо перед вами, хотя переводчик говорит NOT FOUND. Урок, извлеченный здесь, когда вы получаете эту ситуацию, чтобы проверить NULL. Это хорошая привычка для R.

...