空間固定効果
空間固定効果アルゴリズムは、各制度に対してインターセプト・パラメータまたは定数パラメータを計算しますが、他のモデル・パラメータは一定です。 これは、空間体制アルゴリズムの簡易バージョンです。
SpatialFixedEffectsRegressor
クラスは、各モデルに異なる定数パラメータ(各制度に1つずつ)がある回帰モデルで構成されます。 モデルの残りのパラメータは同じです。 新しい値を予測するには、対応する政権の定数パラメータを内部的に取得し、そのパラメータを回帰方程式で他のパラメータとともに使用します。 spatial_weights_definition
パラメータを渡して、入力機能を分析するための空間診断を取得し、モデルを微調整することもできます。
次の表に、SpatialFixedEffectsRegressor
クラスの主なメソッドを示します。
メソッド | 説明 |
---|---|
fit |
regime パラメータは、制度として使用されるカテゴリ変数を示します。 線形方程式のインターセプト・パラメータは制度ごとに異なりますが、残りのパラメータは一定です。
|
predict |
新しい値を予測するために、アルゴリズムは(regime パラメータに従って)対応する政権から線形方程式のインターセプトを取得し、他のパラメータとともに使用します。
|
fit_predict |
トレーニング・データを使用して、fit およびpredict メソッドを順番にコールします。
|
score |
指定されたデータのR平方統計を返します。 監視ごとに、regime パラメータに従って、対応する政権に関連付けられたインターセプトが使用されます。
|
SpatialFixedEffectsRegresssor
クラスのインスタンスを作成する場合は、モデルのトレーニング後に空間診断を取得するためのspatial_weights_definition
パラメータを定義できます。
詳細は、「Oracle Spatial AI Python APIリファレンス」のSpatialFixedEffectsRegressorクラスを参照してください。
次の例では、block_groups
SpatialDataFrame
および「空間制度」で定義された関数を使用して、地理的領域をグリッドに分割し、各セルが1つの制度を表すことで制度を作成します。
次に、Spatial Fixed Effects
モデルをトレーニングします。 最後に、テスト・セットを使用して、predict
メソッドとscore
メソッドをコールし、ターゲット変数とR平方メトリックをそれぞれ推定します。
from oraclesai.preprocessing import spatial_train_test_split
from oraclesai.weights import KNNWeightsDefinition
from oraclesai.regression import SpatialFixedEffectsRegressor
from oraclesai.pipeline import SpatialPipeline
from sklearn.preprocessing import StandardScaler
# Create a categorical variable by splitting the geographic region in a grid
block_groups_grid = create_grid(block_groups, "GRID_ID", nrows=3, ncols=3)
# Define the explanatory variables
X = block_groups_grid[['MEDIAN_INCOME', 'MEAN_AGE', 'MEAN_EDUCATION_LEVEL', 'HOUSE_VALUE', 'INTERNET', 'GRID_ID', 'geometry']]
# Define the training and test sets
X_train, X_test, _, _, _, _ = spatial_train_test_split(X, y="MEDIAN_INCOME", test_size=0.2, random_state=32)
# Get the regime values
regimes_train = X_train["GRID_ID"].values.tolist()
regimes_test = X_test["GRID_ID"].values.tolist()
# Discard the categorical variable
X_train = X_train.drop("GRID_ID")
X_test = X_test.drop("GRID_ID")
# Define the spatial weights
weights_definition = KNNWeightsDefinition(k=10)
# Create a Spatial Fixed Effects Regressor model
sfe_model = SpatialFixedEffectsRegressor(spatial_weights_definition=weights_definition)
# Add the model to a spatial pipeline along with a preprocessing step
sfe_pipeline = SpatialPipeline([('scale', StandardScaler()), ('sfe', sfe_model)])
# Train the model using "MEDIAN_INCOME" as the target variable and specifying the regimes
sfe_pipeline.fit(X_train, "MEDIAN_INCOME", sfe__regimes=regimes_train)
# Print the predictions with the test set
sfe_predictions_test = sfe_pipeline.predict(X_test.drop(["MEDIAN_INCOME"]), sfe__regimes=regimes_test).flatten()
print(f"\n>> predictions (X_test):\n {sfe_predictions_test[:10]}")
# Print the score with the test set
sfe_r2_score = sfe_pipeline.score(X_test, y="MEDIAN_INCOME", sfe__regimes=regimes_test)
print(f"\n>> r2_score (X_test):\n {sfe_r2_score}")
プログラムは、最初の10個の観測のターゲット変数の予測、およびテスト・セットのR平方メトリックを次のように出力します:
>> predictions (X_test):
[101512.84282764 109422.92724391 29615.01694646 29230.32429018
162356.33498145 53108.14145735 105985.63259313 28588.56284749
81056.36661461 19790.46314804]
>> r2_score (X_test):
0.6701128016747615
各政権のインターセプト値は、summary
プロパティを使用してビジュアル化できます。また、リグレッサの作成時にspatial_weights_definition
パラメータを定義した場合、サマリーには、空間ラグおよび空間エラーのMoranのIおよびLagrange乗数などの空間統計も含まれます。
REGRESSION
----------
SUMMARY OF OUTPUT: ORDINARY LEAST SQUARES - REGIMES
---------------------------------------------------
Data set : unknown
Weights matrix : unknown
Dependent Variable : dep_var Number of Observations: 2750
Mean dependent var : 69703.4815 Number of Variables : 12
S.D. dependent var : 39838.5789 Degrees of Freedom : 2738
R-squared : 0.6573
Adjusted R-squared : 0.6559
Sum squared residual:1495203246049.754 F-statistic : 477.4024
Sigma-square :546093223.539 Prob(F-statistic) : 0
S.E. of regression : 23368.638 Log likelihood : -31558.731
Sigma-square ML :543710271.291 Akaike info criterion : 63141.461
S.E of regression ML: 23317.5957 Schwarz criterion : 63212.494
------------------------------------------------------------------------------------
Variable Coefficient Std.Error t-Statistic Probability
------------------------------------------------------------------------------------
1_CONSTANT 75646.5430042 1406.0974938 53.7989317 0.0000000
2_CONSTANT 77794.0850074 1338.3185516 58.1282273 0.0000000
3_CONSTANT 58981.5644323 1948.7462992 30.2664151 0.0000000
4_CONSTANT 60320.9906786 1002.6995461 60.1585898 0.0000000
5_CONSTANT 69884.3635458 1076.5155202 64.9171909 0.0000000
6_CONSTANT 75355.5269590 1338.6764983 56.2910659 0.0000000
7_CONSTANT 71531.4267958 1445.6625603 49.4800300 0.0000000
8_CONSTANT 72960.0800416 1983.5523209 36.7825337 0.0000000
_Global_MEAN_AGE 2989.5036511 583.1586204 5.1263988 0.0000003
_Global_MEAN_EDUCATION_LEVEL 6304.4360113 904.9392927 6.9666950 0.0000000
_Global_HOUSE_VALUE 21452.9209086 664.4420803 32.2871196 0.0000000
_Global_INTERNET 8352.1786588 664.9940434 12.5597797 0.0000000
------------------------------------------------------------------------------------
Regimes variable: unknown
REGRESSION DIAGNOSTICS
MULTICOLLINEARITY CONDITION NUMBER 4.274
TEST ON NORMALITY OF ERRORS
TEST DF VALUE PROB
Jarque-Bera 2 1415.811 0.0000
DIAGNOSTICS FOR HETEROSKEDASTICITY
RANDOM COEFFICIENTS
TEST DF VALUE PROB
Breusch-Pagan test 11 1252.140 0.0000
Koenker-Bassett test 11 486.455 0.0000
DIAGNOSTICS FOR SPATIAL DEPENDENCE
TEST MI/DF VALUE PROB
Moran's I (error) 0.2201 27.742 0.0000
Lagrange Multiplier (lag) 1 317.696 0.0000
Robust LM (lag) 1 1.495 0.2214
Lagrange Multiplier (error) 1 722.582 0.0000
Robust LM (error) 1 406.382 0.0000
Lagrange Multiplier (SARMA) 2 724.078 0.0000
REGIMES DIAGNOSTICS - CHOW TEST
VARIABLE DF VALUE PROB
CONSTANT 7 184.738 0.0000
Global test 7 184.738 0.0000
================================ END OF REPORT =====================================