Расчет поправочного коэффициента - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть переменная, которая, как я подозреваю, зависит от температуры, и я хотел бы рассчитать поправочный коэффициент, который учитывает влияние температуры.

Итак, приведите временной ряд данных о температуре:

Temp<-c(23.545, 23.475, 23.382, 23.328, 23.251, 23.247, 23.241, 23.227, 23.146,
 23.133, 23.127, 23.567, 23.561, 23.521, 23.496, 23.348, 23.274, 23.270,
 23.258, 23.244, 23.158, 23.152, 23.132, 23.123, 23.083, 23.025, 22.999,
 22.666, 22.330, 22.072, 21.794, 21.532, 21.063, 20.742, 19.183, 18.556,
 17.165, 15.233, 13.844, 12.818, 12.236, 11.914)

И рассматриваемая переменная:

var<-c(0.080, -0.003, -0.018, -0.035,  0.005, -0.023,  0.080,  0.035,  0.065,
 -0.055, -0.030, -0.038,  0.010,  0.013,  0.018, -0.033, -0.028,  0.105,
 -0.085,  0.010,  0.018, -0.065, -0.048, -0.013, -0.103, -0.013,  0.002,
 0.053, -0.018,  0.080,  0.057,  0.083,  0.060,  0.085,  0.158,  0.155,
 0.232,  0.245,  0.390,  0.400,  0.568,  0.508)

Я могу построить их вместе, чтобы увидеть влияние temp на var

plot(Temp,var) 

У меня есть одно наблюдение Tempв 22.330, что я знаю, это правильно.Поэтому я хотел бы откорректировать данные var на основе некоторого поправочного коэффициента, предположив:

A - Все значения var близки к одному и тому же значению, и большая часть дисперсии обусловлена ​​temp

B- Точка в 22.330 верна, и значения выше и ниже должны быть исправлены соответственно

1 Ответ

0 голосов
/ 19 сентября 2018

Возможно, это отправная точка.

Давайте начнем с подбора линейной модели var ~ Temp

fit <- lm(var ~ Temp)

Я не вижу смысла в использовании взвешенной линейной модели, другиечем искусственное проталкивание модели через / несколько конкретных точек.Данные являются тем, чем они являются, и линейная модель вида var ~ Temp будет характеризовать общую линейную зависимость между var и Temp.

Давайте скомбинируем данные в data.frame и добавим столбец Time, а также остатки из линейного соответствия модели.

df <- cbind.data.frame(Time = 1:length(Temp), Temp, var, resid = fit$residuals)

Мы покажем следующие графики:

library(gridExtra)
gg1 <- ggplot(df, aes(Time, var)) + geom_point()
gg2 <- ggplot(df, aes(Temp, var)) + geom_point()
gg3 <- ggplot(df, aes(Time, resid)) + geom_point()
grid.arrange(gg1, gg2, gg3, nrow = 1)

enter image description here

  1. На левой панели показана зависимость var от Time.
  2. Средняя панельпоказывает зависимость var от Temp, которая, как вы предполагаете, существует.
  3. Правая панель показывает остаточный эффект var на Time после того, как мы исправили линейную зависимость var наTemp.

Другими словами, вы можете рассматривать остатки как значения var, скорректированные на Temp.Они характеризуют изменчивость в var, которая не объясняется Temp.

...