我正在Python中使用此实现的模型进行生存分析:
从生命线导入CoxPHFitter
不幸的是,我无法(我不知道如何)遍历所有协变量(特征)以单独运行回归以进行特征选择并保存其结果。我正在尝试以下脚本:
`def fit_and_score_features2(X):
y=X[["Status","duration_yrs"]]
X.drop(["duration_yrs", "Status"], axis=1, inplace=True)
n_features = X.shape[1]
scores = np.empty(n_features)
m = CoxPHFitter()
for j in range(n_features):
Xj = X.values[:, j:j+1]
Xj=pd.merge(X, y, how='right', left_index=True, right_index=True)
m.fit(Xj, duration_col="duration_yrs", event_col="Status", show_progress=True)
scores[j] = m._score_
return scores`
不幸的是,它返回了此错误:
ValueError跟踪(最近的呼叫 最后)在() 1#尝试上述功能 ----> 2分= fit_and_score_features2(样本) 3个pd.Series(分数,index = features.columns).sort_values(升序= False)
fit_and_score_features2(X)中的15 Xj = pd.merge(X,y,how ='right',left_index = True,right_index = True) 16 m.fit(Xj,duration_col =“ duration_yrs”,event_col =“ Status”,show_progress = True) ---> 17分[j] = m。得分 18分得分
ValueError:设置具有序列的数组元素。
谢谢。
答案 0 :(得分:1)
我认为我可以在您的帮助下进行调试(@ Cam.Davidson.Pilon)。非常感谢。我认为这是正确的脚本:
`def fit_and_score_features2(X):
y=X[["Status","duration_yrs"]]
X.drop(["duration_yrs", "Status"], axis=1, inplace=True)
n_features = X.shape[1]
scores = np.empty(n_features)
m = CoxPHFitter()
for j in range(n_features):
Xj = X.iloc[:, j:j+1]
Xj=pd.merge(Xj, y, how='right', left_index=True, right_index=True)
m.fit(Xj, duration_col="duration_yrs", event_col="Status", show_progress=True)
scores[j] = m.score_
return scores`