计算校正因子
Calculating a correction factor
我怀疑有一个变量受温度影响,我想计算一个考虑温度影响的校正因子。
所以给出温度数据的时间序列:
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)
我在 22.330 有一个 Temp 观测值,我知道它是正确的。所以我想根据某种校正因子来调整 var 数据,方法是假设:
A - 所有 var 值都接近相同的值,大部分差异是由于 temp
B- 22.330 点是正确的,上下数值应相应修正
也许这里是一个起点。
让我们从拟合线性模型开始var ~ Temp
fit <- lm(var ~ Temp)
我看不出使用加权线性模型有什么意义,除了人为地迫使模型通过 a/multiple 个特定点。数据就是它们,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)
- 左侧面板显示
var
对 Time
的依赖性。
- 中间的面板显示
var
对 Temp
的依赖性,您假设存在。
- 右侧面板显示了在我们校正了
var
对 Temp
的线性依赖性后 var
对 Time
的残余影响。
换句话说,您可以将残差视为针对 Temp
校正的 var
值。他们描述了 var
中的可变性,而 Temp
无法解释。
我怀疑有一个变量受温度影响,我想计算一个考虑温度影响的校正因子。
所以给出温度数据的时间序列:
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)
我在 22.330 有一个 Temp 观测值,我知道它是正确的。所以我想根据某种校正因子来调整 var 数据,方法是假设:
A - 所有 var 值都接近相同的值,大部分差异是由于 temp
B- 22.330 点是正确的,上下数值应相应修正
也许这里是一个起点。
让我们从拟合线性模型开始var ~ Temp
fit <- lm(var ~ Temp)
我看不出使用加权线性模型有什么意义,除了人为地迫使模型通过 a/multiple 个特定点。数据就是它们,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)
- 左侧面板显示
var
对Time
的依赖性。 - 中间的面板显示
var
对Temp
的依赖性,您假设存在。 - 右侧面板显示了在我们校正了
var
对Temp
的线性依赖性后var
对Time
的残余影响。
换句话说,您可以将残差视为针对 Temp
校正的 var
值。他们描述了 var
中的可变性,而 Temp
无法解释。