2017-01-05 19 views
-1

私はPythonには新しく、単純な線形回帰を計算しようとしています。私のモデルには、1つの従属変数と1つの独立変数があります。私はsklearnパッケージからlinear_model.LinearRegression()を使用しています。私はRの二乗値.16を得た 次に私はsmt mod = sm.OLS(Y_train、X_train) としてインポートstatsmodels.apiを使用し、私は0.61のRの平方根を得た。以下は大きなクエリからデータを取得するコードです。統計モデルOLSとscikit線形回帰の違い。異なるモデルが異なる正方形を与える

****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() 

私は非常にこれに新しいです。どの線形回帰パッケージを使うべきか理解しようとしていますか?

+0

実際に行ったことを表示する必要がありますか、それとも誰かが間違って行ったことをどのように伝える必要がありますか? –

+0

ようこそStackOverflowへ。ヘルプドキュメントの投稿ガイドラインを読み、それに従ってください。 [最小、完全で検証可能な例](http://stackoverflow.com/help/mcve)がここに適用されます。 MCVEコードを投稿して問題を正確に記述するまでは、効果的にお手伝いすることはできません。 – Prune

+0

@ juanpa.arrivillaga私はコードを追加する質問を編集しました。 – SAM244776

答えて

0

差異を発見しました。それは傍受だった。 OLSはデフォルトでそれを受け取りません。したがって、以下のコードを追加することで、回答が一致します。

X = sm.add_constant(X) 
sm.OLS(y,X) 
関連する問題