I've completed a multi-season analysis of simple occupancy data (i.e., 0=detected, 1=not detected) for a single species. I had a number of site-specific covariates that varied across primary survey occasions, and I was interested in determining how much of the spatial variation and how much of the temporal variation were explained by the top model.
I ran my candidate models in PRESENCE and identified a top-ranked overall model using AIC values. Then I used MARK to run random-effects models. I ran two models, both using the best structure for detection probability: 1) extinction and colonization varied by year, and 2) extinction and colonization varied according to the covariates in the top-ranked model.
For these 2 models, I then used the 'variance components' module in MARK, where I specified a derived parameter (annual probability of occupancy) as a random effect and chose the 'intercept only' design matrix. The MARK output reports sigma^2, or the residual variance. I considered sigma^2 from the first model (i.e., colonization and extinction vary by year) as the unexplained temporal variation in occupancy, and then used the sigma^2 from the top-ranked model to determine how much of the temporal variation in occupancy was explained by the top-ranked model (the sigma^2 was always considerably lower for this model).
Is this a sound approach? If so, then I've identified how much of the temporal variation in occupancy has been explained by habitat (and sometimes climate) covariates. To address specifcally how much variation is explained by habitat, I suppose I could just remove any covariates that aren't habitat-related from the top-ranked model, and run that model.