1. A method for determining whether to perform vertical handoff from a current communication network to one of a plurality of other communication networks, the method comprising the steps of: obtaining, for each of the plurality of other communication networks, a plurality of selection metrics; calculating, for each of the plurality of other communication networks, a first predicted utility value from at least the corresponding first plurality of selection metrics using a first variable kernel regression function, the first predicted utility value is determined for a predetermined period of time in the future; obtaining, for the current communication network, a second plurality of selection metrics; calculating a second predicted utility value for the current communication network from at least the corresponding second plurality of selection metrics using a second variable kernel regression function, the second predicted utility value is determined for a predetermined period of time in the future; comparing each of the first predicted utility values for each of the plurality of other communication networks with the second predicted utility value; and switching to one of the plurality of other communication networks having the highest first predicted utility value, if the highest first predicted utility value is greater than the second predicted utility value.