Вариантов много, можно создать свой валидатор:
['birth_date', 'date', 'timestampAttribute' => 'birth_date', 'timestampAttributeFormat' => 'php:Y-m-d'],
['death_date', 'date', 'timestampAttribute' => 'death_date', 'timestampAttributeFormat' => 'php:Y-m-d'],
['death_date', function($attribute, $params) {
if (\DateTime::createFromFormat("Y-m-d", $this->{$attribute})->getTimestamp() < \DateTime::createFromFormat("Y-m-d", $this->birth_date)->getTimestamp()) {
$this->addError($attribute, 'Дата смерти не может быть меньше даты рождения.');
}
}]
Можно все это проверять в afterValidate():
if (\DateTime::createFromFormat("Y-m-d", $this->death_date)->getTimestamp() < \DateTime::createFromFormat("Y-m-d", $this->birth_date)->getTimestamp()) {
$this->addError($attribute, 'Дата смерти не может быть меньше даты рождения.');
}