Currently there is no way to get p-value from GLM fitted model in Python, it does work in R.

>>> import numpy as np >>> df1 = h2o.H2OFrame.from_python(np.random.randn(100,4).tolist(), column_names=list('ABCD'))

Now try the following:

>>> from h2o.estimators.glm import H2OGeneralizedLinearEstimator >>> glmfitter3 = H2OGeneralizedLinearEstimator(family="gaussian", solver = "IRLSM", alpha=0, lambda_=0,... compute_p_values=True ) >>> glmfitter3.train(x=['A','B'],y="C",training_frame=df1 )glm Model Build progress: |██ | 100%

Now lets get Model Details:

>> print(glmfitter3)

**Model Details**

============= H2OGeneralizedLinearEstimator : Generalized Linear Modeling Model Key: GLM_model_python_1473895693010_1 GLM Model: summary family link regularization number_of_predictors_total number_of_active_predictors number_of_iterations training_frame – -------- -------- ---------------- ---------------------------- ----------------------------- ---------------------- ------------------------------------------------------ gaussian identity None 2 2 0 Key_Frame__upload_bc7ed024599c9c807ffee0ab12f8457a.hex ModelMetricsRegressionGLM: glm Reported on train data. ** MSE: 0.965343913566 RMSE: 0.982519167022 MAE: 0.76322016906 RMSLE: NaN R^2: 0.00763659012861 Mean Residual Deviance: 0.965343913566 Null degrees of freedom: 99 Residual degrees of freedom: 97 Null deviance: 97.2772579041 Residual deviance: 96.5343913566 AIC: 288.260621239 Scoring History: timestamp duration iteration negative_log_likelihood objective – ------------------- ---------- ----------- ------------------------- ----------- 2016-09-14 16:32:24 0.000 sec 0 97.2773 0.972773

Now we can print the coefficient as below:

>>> print(glmfitter3.coef()) {u'A': -0.08288242123163249, u'B': 0.027858667912495073, u'Intercept': 0.012225954789000987}>>>

Parsing the JSON does get p-values however it would be great to have p-values from some function.

There is not direct method to get p-values from GLM however you can access model JSON to get those values as below:

Once you have you GLM fitted model i.e. glmfitter3, you can get the model JSON as below:

>>> glmfitter3._model_json

Within the model JSON you can look for ‘output’ values as below:

>>> glmfitter3._model_json['output']

Now if you look for ‘coefficients_table’ you will get your p-values as below:

>>> glmfitter3._model_json['output']['coefficients_table']

Coefficients: glm coefficients

names coefficients std_error z_value p_value standardized_coefficients

Intercept 0.012226 0.0820524 0.149002 0.881862 0.0148644

A -0.0828824 0.0970972 -0.853603 0.395428 -0.0868894

B 0.0278587 0.0999033 0.278856 0.780949 0.0283852