2 つのデータセット: 1 つには明らかに影響力のある観測があり、もう 1 つにはありません。ただし、帽子の値を見つけて経験則テストを使用すると、最初の値は元に戻すレバレッジを示しておらず、2 番目の値は示しています。
df1 <- dplyr::tribble(
~input_date, ~input_reading,
as.Date('2006-02-01'), 12428,
as.Date('2006-02-17'), 12543,
as.Date('2006-02-23'), 12555,
as.Date('2006-03-14'), 12716,
as.Date('2006-06-16'), 13275
)
fit1 <- lm(input_reading ~ input_date, data=df1)
hatvalues(fit1)
1 2 3 4 5
0.3594735 0.2625274 0.2376641 0.2002821 0.9400529
最後の観測 (5) に注目してください。ハット値が 0.94 で、ハット値の平均の 2 倍または 3 倍以上であるため、影響力があるとフラグが立てられます。
df2 <- dplyr::tribble(
~input_date, ~input_reading,
as.Date('2006-02-17'), 12543,
as.Date('2006-02-23'), 12555,
as.Date('2006-03-14'), 12716,
as.Date('2006-06-16'), 13275,
as.Date('2006-07-23'), 247 # Obseravation is influential
)
fit2 <- lm(input_reading ~ input_date, data=df2)
hatvalues(fit2)
1 2 3 4 5
0.3833232 0.3491395 0.2641404 0.3635198 0.6398770
最後の観察結果を見てください。明らかに影響力がありますが、ハット値は平均の 2 倍以下です。
背景:データセットは経時的な値です。頻繁に値が不安定になります (異常、スパイク、リセット、ゼロになる)。私の考えは、for ループを使用して、5 つのデータ ポイントごとに回帰を計算することです。異常が発生した場合は、それを修正するためのロジックを記述できます。