Я новичок в python и пытаюсь рассчитать простую линейную регрессию. Моя модель имеет одну зависимую переменную и одну независимую переменную. Я использую linear_model.LinearRegression() из пакета sklearn. Я получил значение R квадрата .16 Затем я использовал статистику импорта statsmodels.api как sm mod = sm.OLS (Y_train, X_train) , и я получил квадрат R 0.61. ниже - код, начинающийся с получения данных из большого запросаРазница между статистической моделью OLS и линейной регрессией scikit; разные модели дают разные r square
****Code for linear regression****
train_data_df = pd.read_gbq(query,project_id)
train_data_df.head()
X_train = train_data_df.revisit_next_day_rate[:, np.newaxis]
Y_train = train_data_df.demand_1yr_per_new_member[:, np.newaxis]
#scikit-learn version to get prediction R2
model_sci = linear_model.LinearRegression()
model_sci.fit(X_train, Y_train)
print model_sci.intercept_
print ('Coefficients: \n', model_sci.coef_)
print("Residual sum of squares %.2f"
% np.mean((model_sci.predict(X_train) - Y_train ** 2)))
print ('Variance score: %.2f' %model_sci.score(X_train, Y_train))
Y_train_predict = model_sci.predict(X_train)
print ('R Square', r2_score(Y_train,Y_train_predict))
****for OLM****
print Y_train[:3]
print X_train[:3]
mod = sm.OLS(Y_train,X_train)
res = mod.fit()
print res.summary()
Я очень недавно знаком с этим. Попытка понять, какой пакет линейной регрессии я должен использовать?
Вы должны показать нам, что вы на самом деле сделали, или как можно сказать, что вы сделали неправильно? –
Добро пожаловать в StackOverflow. Прочтите и следуйте инструкциям по отправке в справочной документации. [Минимальный, полный, проверяемый пример] (http://stackoverflow.com/help/mcve) применим здесь. Мы не можем эффективно помочь вам, пока вы не разместите свой код MCVE и не сможете точно описать проблему. – Prune
@ juanpa.arrivillaga Я изменил вопрос, чтобы добавить код. – SAM244776