機械翻訳について

空間制度

空間体制アルゴリズムでは、回帰方程式のパラメータは、体制と呼ばれる質的変数に従って推定されます。

このカテゴリ変数は、空間コンテキスト内のリージョンなど、様々なものを表すことができます。 地区名やブロック名などの近隣を使用して、制度を定義できます。 モデルは、リージョン間の空間異種性を反映し、異なるリージョンに独自の回帰モデルがあります。

SpatialRegimesRegressorクラスは、線形方程式の項が政権によって異なる線形回帰モデルで構成されます。 次の表に、SpatialRegimesRegressorクラスの主なメソッドを示します。

メソッド 説明
fit regimeパラメータは、制度として使用されるカテゴリ変数を示します。 各制度に対してOLSが実行され、各制度に対して異なるパラメータ・セットが取得されます。
predict 新しい値を予測するために、アルゴリズムは予測データの体制に関連付けられたパラメータを使用します。
fit_predict トレーニング・データを使用して、fitおよびpredictメソッドを順番にコールします。
score 指定されたデータのR平方統計を返します。 観察ごとに、対応する制度に関連付けられたモデルが使用されます。

SpatialRegimesRegressorクラスは、トレーニング・プロセスで空間重みを考慮しない場合でも、spatial_weights_definitionパラメータを使用して空間診断を取得します。

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

次の例では、block_groups SpatialDataFrame およびSpatialRegimesRegressorクラスを使用します。 ただし、回帰タスクを実行する前に、この例では、分類変数を制度として定義する必要があります。 次に、関数は、SpatialDataFrameの地理的領域を、特定の数の行および列を含むグリッドに分割します。各グリッド・セルは、カテゴリ変数として機能する整数で表されます。

import bisect

def get_cell_id(array_x, array_y, point, ncols):
    point_x, point_y = point.x, point.y
    grid_x = bisect.bisect_left(array_x, point_x) - 1
    grid_y = bisect.bisect_left(array_y, point_y) - 1
    
    return grid_y * ncols + grid_x
    
def create_grid(pdf_data, grid_column, nrows=2, ncols=2):
    min_x, min_y, max_x, max_y = pdf_data.total_bounds
    geometries = pdf_data["geometry"].values
    centroids = [geom.centroid for geom in geometries]
    
    step_x = (max_x - min_x) / ncols
    step_y = (max_y - min_y) / nrows
    
    split_x = [min_x + step_x * i for i in range(ncols + 1)]
    split_y = [min_y + step_y * i for i in range(nrows + 1)]
    
    column_values = []
    for centroid in centroids:
        column_values.append(get_cell_id(split_x, split_y, centroid, ncols))
        
    return pdf_data.add_column(grid_column, column_values)

前述の関数を使用して、次のコードを実行します:

  1. 制度として機能するグリッド・セルを表すカテゴリ変数GRID_IDを使用して、SpatialDataFrameの別のインスタンスを作成します。
  2. 制度を別の変数に格納し、データセットからカテゴリ変数を削除します。
  3. fitメソッドをコールし、regimeパラメータを設定し、 MEDIAN_INCOME列をターゲット変数として使用して、SpatialRegimesRegressorモデルをトレーニング・セット(X_train)でトレーニングします。
  4. テスト・セット(X_test)を使用してpredictおよびscoreメソッドをコールし、ターゲット変数を見積り、R平方メトリックを取得します。
from oraclesai.weights import KNNWeightsDefinition 
from oraclesai.regression import SpatialRegimesRegressor 
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 Regimes Regressor model 
spatial_regimes_model = SpatialRegimesRegressor(spatial_weights_definition=weights_definition) 

# Add the model to a spatial pipeline along with a preprocessing step 
spatial_regimes_pipeline = SpatialPipeline([('scale', StandardScaler()), ('spatial_regimes', spatial_regimes_model)]) 

# Train the model using "MEDIAN_INCOME" as the target variable and specifying the regime values 
spatial_regimes_pipeline.fit(X_train, "MEDIAN_INCOME", spatial_regimes__regimes=regimes_train) 

# Print the predictions with the test set
spatial_regimes_predictions_test = spatial_regimes_pipeline.predict(X_test.drop(["MEDIAN_INCOME"]), spatial_regimes__regimes=regimes_test).flatten() 
print(f"\n>> predictions (X_test):\n {spatial_regimes_predictions_test[:10]}") 

# Print the score with the test set 
spatial_regimes_r2_score = spatial_regimes_pipeline.score(X_test, y="MEDIAN_INCOME", spatial_regimes__regimes=regimes_test) 
print(f"\n>> r2_score (X_test):\n {spatial_regimes_r2_score}")

このプログラムの出力は次のとおりです:

>> predictions (X_test):
 [ 99973.28903064 119316.0422925   21627.0522275   26862.24033126
 176529.76909922  55563.36270093 115297.87445691  33401.15374394
  63827.11873494  26992.92679579]

>> r2_score (X_test):
 0.67377148094271

SpatialRegimesRegressorインスタンスの作成時にspatial_weights_definitionパラメータが設定されているため、トレーニング済モデルのsummaryプロパティに空間統計が表示されます。 各制度には一連のパラメータと、空間依存のMoran's IやLagrange Multipliersなどの空間統計があります。

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   :          40
S.D. dependent var  :  39838.5789                Degrees of Freedom    :        2710
R-squared           :      0.6974
Adjusted R-squared  :      0.6930
Sum squared residual:1320270117156.439                F-statistic           :    160.1405
Sigma-square        :487184545.076                Prob(F-statistic)     :           0
S.E. of regression  :   22072.257                Log likelihood        :  -31387.645
Sigma-square ML     :480098224.421                Akaike info criterion :   62855.290
S.E of regression ML:  21911.1438                Schwarz criterion     :   63092.065

------------------------------------------------------------------------------------
            Variable     Coefficient       Std.Error     t-Statistic     Probability
------------------------------------------------------------------------------------
          1_CONSTANT    67301.4371567    1953.6056568      34.4498578       0.0000000
          1_MEAN_AGE    -787.8377162    1485.8378441      -0.5302313       0.5959950
1_MEAN_EDUCATION_LEVEL    19399.3182180    3114.5763711       6.2285576       0.0000000
       1_HOUSE_VALUE    18607.2342406    1584.1781459      11.7456703       0.0000000
          1_INTERNET    13025.7000079    2370.5082392       5.4948976       0.0000000
          2_CONSTANT    70316.2663016    3128.3635757      22.4770122       0.0000000
          2_MEAN_AGE    4475.1151552    1602.7038604       2.7922283       0.0052714
2_MEAN_EDUCATION_LEVEL    6155.3917348    2436.3442043       2.5264869       0.0115775
       2_HOUSE_VALUE    8287.3366860    4847.3374558       1.7096678       0.0874418
          2_INTERNET    9610.2177802    1714.0106903       5.6068599       0.0000000
          3_CONSTANT    24528.5879950    5872.7675236       4.1766659       0.0000305
          3_MEAN_AGE    4605.8239137    1904.1647555       2.4188159       0.0156366
3_MEAN_EDUCATION_LEVEL    22124.7054269    5152.1353075       4.2942788       0.0000181
       3_HOUSE_VALUE    22528.7956619    1505.5002005      14.9643259       0.0000000
          3_INTERNET    22442.8115822    3672.8299785       6.1104956       0.0000000
          4_CONSTANT    60346.7138163    1011.7946534      59.6432424       0.0000000
          4_MEAN_AGE    2025.4934828    1131.5366834       1.7900378       0.0735594
4_MEAN_EDUCATION_LEVEL    12613.8139792    1879.7592801       6.7103347       0.0000000
       4_HOUSE_VALUE    15802.2959953    1094.1149414      14.4429944       0.0000000
          4_INTERNET    7544.7984901    1423.9963625       5.2983271       0.0000001
          5_CONSTANT    60570.6305539    1375.4910298      44.0356420       0.0000000
          5_MEAN_AGE    4004.8956000    1338.2798927       2.9925695       0.0027914
5_MEAN_EDUCATION_LEVEL    7093.5634835    1762.1713354       4.0254675       0.0000584
       5_HOUSE_VALUE    4973.1688262    2760.5550262       1.8015105       0.0717336
          5_INTERNET    5212.2336124    1092.1003496       4.7726691       0.0000019
          6_CONSTANT    74193.6261803    1593.8110537      46.5510802       0.0000000
          6_MEAN_AGE    8804.9736797    1830.8258733       4.8092906       0.0000016
6_MEAN_EDUCATION_LEVEL    -1282.6669985    2732.9823394      -0.4693287       0.6388725
       6_HOUSE_VALUE    24763.0330906    2724.0892923       9.0903896       0.0000000
          6_INTERNET    14378.1718270    2116.0137823       6.7949330       0.0000000
          7_CONSTANT    72053.1153887    1522.5496169      47.3239851       0.0000000
          7_MEAN_AGE    3957.0149819    1885.0370696       2.0991709       0.0358941
7_MEAN_EDUCATION_LEVEL    -1604.5557316    2759.9951560      -0.5813618       0.5610450
       7_HOUSE_VALUE    25077.4167626    3315.7621906       7.5630927       0.0000000
          7_INTERNET    11840.4394166    2062.1006321       5.7419309       0.0000000
          8_CONSTANT    58026.3709199    3699.6679150      15.6842107       0.0000000
          8_MEAN_AGE    4496.6200307    2673.0921045       1.6821792       0.0926493
8_MEAN_EDUCATION_LEVEL    17341.3083231    5737.4485722       3.0224773       0.0025306
       8_HOUSE_VALUE    35050.3546911    3390.1281391      10.3389469       0.0000000
          8_INTERNET    15125.8210946    3364.7884860       4.4953260       0.0000072
------------------------------------------------------------------------------------
Regimes variable: unknown

REGRESSION DIAGNOSTICS
MULTICOLLINEARITY CONDITION NUMBER           10.296

TEST ON NORMALITY OF ERRORS
TEST                             DF        VALUE           PROB
Jarque-Bera                       2        1869.657           0.0000

DIAGNOSTICS FOR HETEROSKEDASTICITY
RANDOM COEFFICIENTS
TEST                             DF        VALUE           PROB
Breusch-Pagan test               39        1548.245           0.0000
Koenker-Bassett test             39         544.999           0.0000

DIAGNOSTICS FOR SPATIAL DEPENDENCE
TEST                           MI/DF       VALUE           PROB
Moran's I (error)              0.1497        19.689           0.0000
Lagrange Multiplier (lag)         1         174.856           0.0000
Robust LM (lag)                   1           1.572           0.2099
Lagrange Multiplier (error)       1         334.438           0.0000
Robust LM (error)                 1         161.155           0.0000
Lagrange Multiplier (SARMA)       2         336.010           0.0000


REGIMES DIAGNOSTICS - CHOW TEST
                 VARIABLE        DF        VALUE           PROB
                 CONSTANT         7         141.366           0.0000
              HOUSE_VALUE         7          74.722           0.0000
                 INTERNET         7          41.075           0.0000
                 MEAN_AGE         7          19.445           0.0069
     MEAN_EDUCATION_LEVEL         7          54.041           0.0000
              Global test        35         566.146           0.0000
================================ END OF REPORT =====================================