如何使用for循环运行多个回归?

时间:2020-11-05 14:39:51

标签: python statistics regression sklearn-pandas

我有一个包含多个城市,一个响应变量和一个预测变量的数据集。我正在尝试对每个城市进行回归分析。这样不仅返回我一行数据,而且还返回系数为NaN。

train_output = pd.DataFrame(columns = ['intercept','coefficient','r2'])

for cit in train.city.unique():

    y = train[train['city']==cit]['response']

    y = np.array(y.values.tolist())

    x = train[data['city']==cit]['predictor']

    x = np.array(x).reshape((len(x), 1))

    model = LinearRegression().fit(x, y)

    model_output = {'intercept':model.intercept_,'coefficient':model.coef_[0], 'r2': model.score(x,y)}

    df = pd.DataFrame(model_output, columns = ['intercept','coefficient','r2'], index = [cit])

    train_output.append(df)

    print(train_output)

1 个答案:

答案 0 :(得分:0)

在不查看数据的情况下很难说出来。 但是,最常见的原因是输入中的NaN或Inf(要素或标签)。 每次迭代都得到NaN吗?