機械翻訳について

空間エラー・モデル

空間エラー・モデル(SEM)では、線形方程式のerror項に空間ラグが導入されています。

残差の空間ラグを追加することによって、ネイバーのエラーが観察エラーに影響します。 これにより、次の式に示すように、追加のパラメータがエラー用語の空間ラグに関連付けられます:



前述の式で、Wは空間加重マトリックスです。

SpatialErrorRegressorクラスは、空間エラー・モデルを実装します。このモデルを使用するには、spatial_weights_definitionパラメータの定義が必要です。 次の表に、SpatialErrorRegressorクラスの主なメソッドを示します。

メソッド 説明
fit 指定されたトレーニング・データからSpatialErrorRegressorモデルをトレーニングします。 モデルには、エラー用語の空間ラグのパラメータが含まれます。
predict 訓練されたパラメータ(エラー用語の空間ラグに関連付けられたパラメータを含む)を使用して、指定されたデータのターゲット変数を見積ります。
fit_predict トレーニング・データを使用して、fitおよびpredictメソッドを順番にコールします。
score 指定されたデータのR平方統計を返します。

詳細は、「Oracle Spatial AI Python APIリファレンス」SpatialErrorRegressorクラスを参照してください。

次の例では、block_groups SpatialDataFrame を使用します。 隣接する観測間の関係を確立するspatial_weights_definitionパラメータを定義するSpatialErrorRegressorクラスのインスタンスが作成されます。 次に、データを標準化するための前処理ステップとともに、空間パイプラインにモデルを追加します。 モデルは、トレーニング・セット(X_train)およびMEDIAN_INCOME列をターゲット変数として使用してトレーニングされます。 最後に、テスト・セット(X_test)を使用してpredictおよびscoreメソッドをコールし、ターゲット変数とモデルのR-Squareスコアの値をそれぞれ推定します。

from oraclesai.preprocessing import spatial_train_test_split 
from oraclesai.weights import KNNWeightsDefinition 
from oraclesai.regression import SpatialErrorRegressor 
from oraclesai.pipeline import SpatialPipeline 
from sklearn.preprocessing import StandardScaler 

# Define features
X = block_groups[["MEDIAN_INCOME", "MEAN_AGE", "HOUSE_VALUE", "INTERNET", "geometry"]] 

# Define training and test sets
X_train, X_test, _, _, _, _ = spatial_train_test_split(X, y="MEDIAN_INCOME", test_size=0.2, random_state=32) 

# Create an instance of SpatialErrorRegressor
spatial_error_model = SpatialErrorRegressor(spatial_weights_definition=KNNWeightsDefinition(k=5)) 

# Add the model in a Spatial Pipeline along with a preprocessing step
spatial_error_pipeline = SpatialPipeline([("scaler", StandardScaler()), ("spatial_error", spatial_error_model)]) 

# Train the model with MEDIAN_INCOME as the target variable
spatial_error_pipeline.fit(X_train, "MEDIAN_INCOME") 

# Print the predictions with the test set
spatial_error_predictions_test = spatial_error_pipeline.predict(X_test.drop(["MEDIAN_INCOME"])).flatten() 
print(f"\n>> predictions (X_test):\n {spatial_lag_predictions_test[:10]}") 

# Print the R-squared metric with the test set
spatial_error_r2_score = spatial_error_pipeline.score(X_test, y="MEDIAN_INCOME") 
print(f"\n>> r2_score (X_test):\n {spatial_error_r2_score}")

プログラムは次の出力を生成します:

>> predictions (X_test):
 [ 92285.13545208 100551.0381313   30910.61123168  45166.3218764
 177515.68764358  44088.89962954  98205.35728383  27788.19879028
  72553.17695035  24875.81828048]

>> r2_score (X_test):
 0.635646418630968

トレーニング済モデルのプロパティ・サマリーを出力すると、追加のlambdaパラメータが表示されます。 このパラメータは、エラー用語の空間ラグに関連付けられています。

REGRESSION
----------
SUMMARY OF OUTPUT: MAXIMUM LIKELIHOOD SPATIAL ERROR (METHOD = FULL)
-------------------------------------------------------------------
Data set            :     unknown
Weights matrix      :     unknown
Dependent Variable  :     dep_var                Number of Observations:        2750
Mean dependent var  :  69703.4815                Number of Variables   :           4
S.D. dependent var  :  39838.5789                Degrees of Freedom    :        2746
Pseudo R-squared    :      0.6285
Sigma-square ML     :472895616.755                Log likelihood        :  -31440.423
S.E of regression   :   21746.163                Akaike info criterion :   62888.846
                                                 Schwarz criterion     :   62912.523

------------------------------------------------------------------------------------
            Variable     Coefficient       Std.Error     z-Statistic     Probability
------------------------------------------------------------------------------------
            CONSTANT    70397.9327157     855.6991730      82.2694878       0.0000000
            MEAN_AGE    4337.6721310     537.9090592       8.0639507       0.0000000
         HOUSE_VALUE    20927.8165549     706.2614165      29.6318276       0.0000000
            INTERNET    10643.3244395     580.3422845      18.3397363       0.0000000
              lambda       0.5152500       0.0215703      23.8869736       0.0000000
------------------------------------------------------------------------------------
================================ END OF REPORT =====================================