Просто хотел услышать все мысли о моделировании строковой переменной. Предположим, что dataframe
(df
) со строковой переменной (Пол), закодированной как ('M' или 'F'). Попытка подобрать модель Кокса приведет к ошибке, даже если df['Sex']
является категориальной переменной:
df['Sex']=df['Sex'].astype('category)
cph = CoxPHFitter()
cph.fit(df, duration_col='time', event_col='event')
Это вызовет ошибку, понятное дело
ValueError: could not convert string to float: 'M'
Это можно легко отсортировать путем кодирования «Пол» в 0,1 одним из нескольких методов, например:
df['Sex2']=df['Sex'].replace({'F':1, 'M':0})
Затем подгонка модели с использованием вместо этого нового столбца, который будет работать плавно. Однако ... проблема (скорее, неудобство) заключается в том, что вам нужно будет повторить этот процесс для всех строковых переменных, и если у вас много переменных, становится сложнее, например, при просмотре cox.plot () вспомнить, какая ссылка переменную, так как вам нужно go вернуться в свой код, чтобы вспомнить, как вы кодировали каждую переменную.
Исходя из других платформ статистики (R и SAS), я считаю это небольшим неудобством, поскольку R и SAS могут без проблем управлять строковой переменной в моделях. SAS также может маркировать содержимое столбца, чтобы сделать его более читаемым в окончательном виде. Есть мысли или предложения о том, как это обойти?