He is not home. He could have gone shopping. This implies that he did NOT go shopping even though he had a chance to.
He is not home. He might have gone shopping. This implies that there is a possibility that he went shopping.
Yesterday, when leaving for work, I took my raincoat because it could
have rainedrain. Personally, I see no reason to use that type of construction in this sentence. We don't know if it rained that day - the guy took his raincoat with him to be on the safe side.