Ну может я не совсем правильно понял структуру, но я бы сгруппировал так:
$stats = array();
$stats_by_group_id = array();
foreach($stats['response'] as $day_stats) {
$date = new DateTime($day_stats['day']);
$date = $date->format('Y-m-') . '01';
foreach($day_stats['cities'] as $id_city => $day_stats_city) {
if (!isset($stats_by_group_id[$id_city])) {
$stats_by_group_id[$id_city] = array(
'date' => $date,
'visitors' => 0,
'cities' => 0
);
}
$stats_by_group_id[$id_city]['visitors'] += $day_stats_city['visitors'];
$stats_by_group_id[$id_city]['cities'] += $day_stats_city['cities'];
}
}