OLS регрессия: Scikit против Statsmodels?

Укороченная версия: Я использовал scikit LinearRegression на некоторых данных, но я привык к p-значениям, поэтому помещаю данные в OLS statsmodels, и хотя R ^ 2 примерно одинаков, переменные коэффициенты все различаются в больших количествах. Это касается меня, так как наиболее вероятная проблема заключается в том, что я где-то допустил ошибку, и теперь я не чувствую уверенности ни в одном из выводов (поскольку, вероятно, я сделал одну модель неправильно, но не знаю, какая именно).

Более длинная версияПотому что я не знаю, в чем проблема, я не знаю точно, какие детали включать, и включение всего, вероятно, слишком много. Я также не уверен относительно включения кода или данных.

У меня сложилось впечатление, что LLS scikit и OLS statsmodels должны выполнять OLS, и, насколько я знаю, OLS - это OLS, поэтому результаты должны быть одинаковыми.

Для LR Скикита результаты (статистически) одинаковы независимо от того, установлен ли я normalize = True или = False, что я нахожу несколько странным.

Для statsmodels OLS я нормализую данные, используя StandardScaler из sklearn. Я добавляю столбец из них, чтобы он содержал перехват (поскольку вывод Scikit включает перехват). Подробнее об этом здесь:http://statsmodels.sourceforge.net/devel/examples/generated/example_ols.html (Добавление этого столбца не изменило переменные коэффициенты в какой-либо заметной степени, и пересечение было очень близко к нулю.) StandardScaler не понравилось, что мои целые числа не были плавающими, поэтому я попробовал это:https://github.com/scikit-learn/scikit-learn/issues/1709 Это заставляет предупреждение исчезнуть, но результаты точно такие же.

Конечно, я использую 5-кратное cv для подхода sklearn (R ^ 2 согласуются как для тестовых, так и для тренировочных данных каждый раз), а для statsmodels я просто выкидываю все эти данные.

R ^ 2 составляет около 0,41 для sklearn и statsmodels (это хорошо для социальных наук). Это может быть хорошим знаком или просто совпадением.

Данные наблюдений аватаров в WoW (изhttp://mmnet.iis.sinica.edu.tw/dl/wowah/), который я собирался сделать это еженедельно с некоторыми различными функциями. Первоначально это был классный проект для класса данных науки.

Независимые переменные включают количество наблюдений за неделю (int), уровень персонажа (int), если в гильдии (Boolean), когда они видны (Booleans в день недели, канун дня недели, поздний день недели и те же три для выходных), фиктивный для класса символов (на момент сбора данных в WoW было только 8 классов, поэтому есть 7 фиктивных переменных, а исходная строковая категориальная переменная отброшена) и другие.

Зависимая переменная - это то, сколько уровней получил каждый персонаж за эту неделю (int).

Интересно, что некоторый относительный порядок внутри одинаковых переменных поддерживается в statsmodels и sklearn. Таким образом, порядок ранжирования «когда видно» одинаков, хотя нагрузки очень разные, и порядок рангов для манекенов класса символов одинаков, хотя опять же нагрузки очень разные.

Я думаю, что этот вопрос похож на этот:Разница в Python statsmodels OLS и R's lm

Я достаточно хорош в Python и его статистике, но не настолько хорош, чтобы понять что-то подобное. Я пытался читать документы sklearn и statsmodels, но если ответ был там, глядя мне в лицо, я не понимал этого.

Я хотел бы знать:

Какой вывод может быть точным? (Конечно, они оба могут быть, если я пропустил kwarg.)Если я ошибся, что это такое и как это исправить?Мог ли я понять это, не спрашивая здесь, и если да, то как?

Я знаю, что в этом вопросе есть довольно неопределенные моменты (без кода, без данных, без вывода), но я думаю, что это больше касается общих процессов двух пакетов. Конечно, у кого-то больше статистики, у кого-то больше машинного обучения, но они оба OLS, поэтому я не понимаю, почему результаты не совпадают.

(Я даже попробовал некоторые другие вызовы OLS для триангуляции, один дал намного более низкое значение R ^ 2, один зациклился на пять минут, и я убил его, а один разбился.)

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос