Coding week #1

Published: 06/04/2019

What did I do this week?

I started with expanding and understanding a module within the PySAL package that estimates GWR models with Poisson response variables. My initial understanding was that updating and changing the functions while using the core functionality in the module to accommodate parameters from the MGWR model would be the way forward to enable its implementation for the MGWR model. It soon became that this approach would not work for more than one predictor variables in the model. The next approach I attempted was to use the existing functionality in the MGWR module to enable changing the family to Poisson() and implementing the hypothesized algorithm. On a detailed call with the mentors, it was realized that integration within the existing module could be challenging given the current design restricted to only Gaussian response variables for MGWR. Some functions would need to be re-written and new functions to handle parameters differently would be needed to supplement the algorithm and it was suggested that integration could follow once the algorithm is tested and finalized. On a discussion with regard to the algorithm suggested in the proposal it was also realized that the various estimations and updates implemented in the iterations needed to be theoretically checked and stated clearly.

What is coming up next?

In the coming week I will work on coding a separate module calling the functions as needed and creating new functions for implementing some already existing functionality to accommodate the Poisson implementation for MGWR. Once the algorithm is tested and the implementation gives the expected output, I will work toward integrating the algorithm in the package. Alongside, I will also work on rechecking the equations from the proposal to ensure they are theoretically sound and that they read clearly.

Did I get stuck anywhere?

This week I got stuck in a few places which led to an enhanced understanding about the functions, dependencies and module architecture. The attempts to implement the algorithm using the preexisting functions also made the differences between the existing implementation and required changes in the functions to accommodate the new implementation clearer. Detailed discussions with the mentors really helped me through the blocks and led to a defined way forward.

Excited to be learning new things everyday and for the progress update next week!