Tengo cuatro series temporales diferentes de mediciones por hora:
- El consumo de calor dentro de una casa.
- La temperatura fuera de la casa
- La radiación solar
- La velocidad del viento
Quiero poder predecir el consumo de calor dentro de la casa. Existe una clara tendencia estacional, tanto anualmente como a diario. Dado que existe una clara correlación entre las diferentes series, quiero ajustarlas usando un modelo ARIMAX. Esto se puede hacer en R, utilizando la función arimax del paquete TSA.
Intenté leer la documentación sobre esta función y leer sobre las funciones de transferencia, pero hasta ahora, mi código:
regParams = ts.union(ts(dayy))
transferParams = ts.union(ts(temp))
model10 = arimax(heat,order=c(2,1,1),seasonal=list(order=c(0,1,1),period=24),xreg=regParams,xtransf=transferParams,transfer=list(c(1,1))
pred10 = predict(model10, newxreg=regParams)
me da
donde la línea negra son los datos medidos reales, y la línea verde es mi modelo ajustado en comparación. No solo no es un buen modelo, sino que claramente algo está mal.
Admitiré que mi conocimiento de los modelos ARIMAX y las funciones de transferencia es limitado. En la función arimax (), (por lo que he entendido), xtransf es la serie de tiempo exógena que quiero usar (usando funciones de transferencia) para predecir mi serie de tiempo principal. Pero, ¿cuál es la diferencia entre xreg y xtransf realmente?
En general, ¿qué he hecho mal? Me gustaría poder obtener un mejor ajuste que el que se obtiene de lm (heat ~ temp radi wind * time).
Ediciones: Basado en algunos de los comentarios, eliminé la transferencia y agregué xreg en su lugar:
regParams = ts.union(ts(dayy), ts(temp), ts(time))
model10 = arimax(heat,order=c(2,1,1),seasonal=list(order=c(0,1,1),period=24),xreg=regParams)
donde dayy es el "día número del año" y time es la hora del día. La temperatura vuelve a ser la temperatura exterior. Esto me da el siguiente resultado:
lo cual es mejor, pero no es lo que esperaba ver.