基礎統計(29)多重線形回帰


📈 クリーンアップ用語

  • 平方根平均二乗誤差(RMSE):回帰時の平均二乗誤差の平方根.回帰モデルを評価する最も広く用いられる測定指標である.
  • 残差標準誤差(RSE):平均二乗誤差と等しいが、自由度に応じて補正値
  • .
  • R二乗(R-squared):モデル記述の分布のパーセント
  • t統計量(t-statistics):係数の標準誤差を予測変数の係数で割った.モデルにおける変数の重要性を比較する基準とする.
    -重み付け回帰(weighted regression):
  • を使用して他の重み付け記録を回帰

    📈 王県住宅情報例

  • 多重線形回帰解析を用いて,住宅価値の典型的な事例の一つを推定できた.
  • # 예제 데이터
    subset = ['AdjSalePrice', 'SqFtTotLiving', 'SqFtLot', 'Bathrooms', 
              'Bedrooms', 'BldgGrade']
    print(house[subset].head())          
  • 目標は、所与の変数(特徴、列)で販売金額を予測することである.
  • 多重線形回帰の場合、線形回帰として使用することができる.
  • from sklearn.linear_model import LinearRegression
    
    predictors = [ 'SqFtTotLiving', 'SqFtLot', 'Bathrooms', 
              'Bedrooms', 'BldgGrade']
    outcome = 'AdjSalePrice'
    
    house_lm = LinearRegression()
    house_lm.fit(house[predictors], house[outcome])
    
    print(f'Intercept: {house_lm.intercept_:.3f}') # 절편
    print('Coefficients:') # 계수
    for name, coef in zip(predictors, house_lm.coef_):
    	print(f'{name}:{coef}')
      
    >>>
      
    Intercept: -521871.368
    Coefficients:
    SqFtTotLiving:228.83060360240796
    SqFtLot:-0.06046682065307607
    Bathrooms:-19442.840398321056
    Bedrooms:-47769.95518521438
    BldgGrade:106106.96307898083
    解釈
  • 係数は単純な線形回帰に等しい.
  • 例えば、「SqFtTotLiving」(SqFtTotLiving)は1平方フィート増加し、価格は約229ドル増加する見通しだ.

    📈 モデル評価

  • データ科学の観点から,最も重要な性能指標は平方根平均二乗誤差(RMSE)である.
  • RMSEとは、平均二乗誤差の平方根を指す.
  • セキレンは回帰または分類のために複数の指標を提供した.ここでmean squared errorを用いて結晶係数のRMSEとr 2 scoreを得た.
  • from sklearn.metrics import r2_score, mean_squared_error
    import numpy as np
    
    fitted = house_lm.predict(house[predictors])
    RMSE = np.sqrt(mean_squared_error(house[outcome], fitted))
    r2 = r2_score(house[outcome], fitted)
    print(f'RMSE: {RMSE:.0f}')
    print(f'r2:{r2:.4f}')
    
    >>>
    RMSE: 261220
    r2:0.5406
  • Pythonでは,回帰モデルをより詳細に解析するためにstatsモデルを用いることができる.
  • import statsmodels.api as sm
    model = sm.OLS(house[outcome], house[predictors].assign(const=1)) # assign 메서드는 값이 1인 상수 열을 예측변수에 추가한다.(절편을 모델링하기 위해 필요)
    results = model.fit()
    results.summary()

  • ここで使用する代入方法は、値が1の定数列を予測番号に追加します.スライスをモデリングします.

  • 有用な指標は粒界数と呼ばれるR二乗統計量である.R二乗の範囲は0から1であり,モデルデータの変化率を(分散のために)測定した.評価モデルがどれだけデータに適しているかを評価すると,回帰解析を説明するために用いられる.

  • R二乗値が1に近いほど予測精度が高くなり、式は以下の通りである.R 2 R^2 R 2=(予測値分散)/(実績値分散)

  • 自由度を考慮した修正R二乗(adjusted R−squared)値も示した.これは,モデルにより多くの予測変数を追加することを効果的に罰する.

  • 係数の標準誤差(SE)とt統計量を同時に出力する.

  • t統計量、および常に一緒に従うp値は、予測変数とターゲット変数がランダムに再分配されると、偶然に得られる範囲から逸脱することを測定するために、係数が統計的に有意義な程度である.