Обычно требуется добавить результаты прогнозов в набор данных, используемый для создания прогнозов, но функция statsmodels predict
возвращает (неиндексированные) результаты потенциально другой длины, чем набор данных, на котором основаны прогнозы.
Например, если тестовый набор данных test
содержит пустые записи, то
mod_fit = sm.Logit.from_formula('Y ~ A B C', train).fit()
press = mod_fit.predict(test)
создаст массив короче, чем длина test
, и к нему нельзя добавить с пользой
test['preds'] = preds
А поскольку результат predict
не индексируется, нет возможности восстановить строки, к которым должны быть привязаны результаты.
Какова идиома для связывания predict
результатов со строками, из которых они были сгенерированы? Возможно, есть способ заставить predict
возвращать фрейм данных, который сохраняет индексы своего аргумента?
predict
вообще так работает? Почему бы не вернуть кадр данных с индексами, соответствующими тем строкам, из которых делаются прогнозы? - person orome   schedule 22.03.20140.6.0.dev
, и там, хотя вы не возвращаете кадр данных, пропущенные значения не удаляются из прогнозируемого вывода. - person behzad.nouri   schedule 22.03.20140.6.0.dev
len(train) == len(preds)
, независимо от пропущенных значений вtrain
? Что возвращается вpress
, если вtrain
отсутствуют значения? - person orome   schedule 23.03.2014