2 votos

Suavización en el tiempo y el espacio, con efectos aleatorios

Configurar

Mi ciudad ha puesto en marcha recientemente un programa piloto para obligar a que sólo el transporte público utilice determinadas secciones del centro de la ciudad.

La ciudad ha publicado datos sobre el programa. Disponen de sensores en lugares estratégicos del centro de la ciudad para controlar el tiempo de viaje entre segmentos. Los datos incluyen:

  • La latitud y la longitud del sensor
  • Un código para el segmento (por ejemplo, Yo_Ds_Yo_Ds).
  • La hora en que se realizaron las mediciones.
  • Es el número medio de segundos necesarios para recorrer un segmento. Es una medida de la congestión. Más tiempo significa mayor congestión.

Los datos abarcan desde los 3 meses anteriores al inicio de la prueba piloto hasta casi 8 meses después de su comienzo. Los datos se registran en todas las horas del día.

Me interesa determinar cómo ha cambiado la congestión en las zonas circundantes debido a la entrada en vigor del programa. Preveo que esto requerirá una suavidad en el espacio y el tiempo.

Los datos y el modelo

El conjunto de datos tiene 5 columnas:

  • TravelTime -- Tiempo medio en segundos para atravesar el segmento
  • Lat/Lon -- coordenadas del sensor
  • Time -- Hora en que se hizo la observación
  • IsProgram -- Indicador binario para saber si la observación es del programa.

A partir de ahora, utilizo lo siguiente para modelar los datos

bam(TravelTime ~ s(Lat,Lon, bs = 'gp', by = IsProgram) + s(Time,bs = 'cc'))

aquí está mi razonamiento:

  • Utilizo un bam porque tengo algo así como 1.000.000+ observaciones

  • IsProgram es un factor que indica si la observación es de cuando el programa estaba en marcha. Pasando esto a la función by argumento me permitirá estimar la congestión para antes y después del programa.

  • Utilizo un s(Time) para controlar el efecto del tiempo en la congestión. El sitio web cc es porque el efecto del tiempo es periódico.

Pregunta

¿Es este un enfoque razonable para utilizar GAMS para modelar este problema? ¿Debería utilizar un modelo de efectos aleatorios ya que tengo observaciones repetidas de los sensores?

Si necesitas datos, puedo enlazar con un repo de GitHub.

2voto

David J. Sokol Puntos 1730

En general, no necesito para incluir un efecto aleatorio del sensor si crees que el sensor de la razón $s_i$ registra tiempos de tránsito más altos en promedio que el sensor $s_j$ se debe a un proceso espacial que varía suavemente.

Lo único que hace el efecto aleatorio es decir que la media de la respuesta en cada sensor es una variable aleatoria con media igual al intercepto del modelo más una variable aleatoria de media cero con alguna varianza a estimar.

Lo único que dice la suavidad espacial es que la media de la respuesta en cada sensor es una variable aleatoria con una media igual al intercepto del modelo más una contribución de un proceso espacial que varía suavemente.

Ese proceso espacial no tiene por qué ser suave, pero puede tener más estructura espacial que la que implica el efecto aleatorio. Por ejemplo, podríamos considerar que los sensores arrojan datos para un bloque entero de espacio y entonces podríamos querer tener un proceso espacial que utilice información areal (piense en datos agregados a nivel de estado o de condado, donde hay estructura espacial pero no está en la forma necesariamente de coordenadas espaciales continuas porque los datos están agregados arealmente a nivel de estado o de condado). Entonces podríamos modelar el proceso espacial como un campo aleatorio de Markov, que también puede representarse como una base spline penalizada. Esto sería en el marco del GAM. Hay otras formas de abordar este tipo de modelización espacial.

Yo sugeriría que no se ajustara a su modelo como indica en su pregunta. Usted está haciendo una suposición muy fuerte de que la escala de longitud de las funciones de correlación que componen la base del proceso gaussiano es la mayor distancia entre dos lugares cualesquiera. Para la equivalencia del proceso gaussiano y los modelos de base spline penalizada / penalización cuadrática estimados por mgcv La base GP no puede depender de parámetros adicionales y, sin embargo, las funciones de correlación sí dependen del parámetro de la escala de longitud. Por lo tanto, se utiliza una heurística por defecto si el usuario no la proporciona a través de la opción m argumento. Por defecto se utiliza la distancia máxima entre dos puntos cualesquiera como escala de longitud.

Para estimar este modelo sin fijar la escala de longitud, necesita escribir un bucle sobre los valores de la escala de longitud e introducirlo en el modelo, estimar el modelo y luego extraer la puntuación REML del ajuste. A continuación, puede trazar la puntuación REML contra los valores de la escala de longitud que ajustó y ver si hay un mínimo en la curva producida, lo que sugeriría una escala de longitud óptima para este modelo.

De manera más sencilla, basta con sustituir el gp baiss con el valor por defecto tp base (spline de regresión de placa fina) o incluso el ds base para un spline de Duchon e invariablemente lo harás igual de bien sin tener que perfilar sobre el parámetro de la escala de longitud.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X