Как найти корреляцию между двумя столбцами панд данных в одном столбце в float64 и другом столбце - объект (строка) - PullRequest
0 голосов
/ 26 декабря 2018

В моем случае это между состоянием неба и видимостью

Skycondition visibility
 CLR.                 10SM
SCT103.              7SM

1 Ответ

0 голосов
/ 27 декабря 2018

Поскольку у вас есть номинальная переменная, вы не можете вычислить корреляцию как таковую.Однако один из способов получить представление о силе взаимосвязи между переменными - определить для них фиктивные переменные и выполнить серию множественных линейных регрессий.Например, если предположить, что ваши данные находятся в кадре данных с именем data, который я немного переформатировал для ясности:

       Skycond   Vis
    0      CLR  10SM
    1   SCT103    7S

Затем мы генерируем фиктивные переменные:

demo = pd.get_dummies(data)

       Skycond_CLR  Skycond_SCT103  vis_10SM    vis_7SM
    0            1               0         1          0
    1            0               1         0          1

И, наконец,подходят модели линейной регрессии.Здесь я выбираю сравнение Skycond_CLR с переменными видимости:

from sklearn.preprocessing import LinearRegression

model.fit(demo[list(demo.columns[2:])],
          demo[demo.columns[0]])

print("Model slope:    ", model.coef_)
print("Model intercept:", model.intercept_)

Что дает:

Model slope:     [-0.33333333  0.33333333 -0.33333333]
Model intercept: 0.6666666666666666

Конечно, только для двух выборок регрессия не говориттебе очень.По мере добавления дополнительных данных коэффициенты градиента начнут указывать на некоторую связь с выбранной зависимой переменной, которая может быть интерпретирована как суррогат для корреляции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...