try:
  import gretl
except ModuleNotFoundError:
  exit('*** please install gretl4py by running: "python(.exe) -m pip install gretl4py" ***\n')

try:
  from tabulate import tabulate
except ModuleNotFoundError:
  exit('*** \'tabulate\' package required ***\n')

assert float(gretl.version) >= 0.41, "required gretl4py 0.41 or higher"

nls_panel = gretl.get_data('nls_panel.gdt')

############################################
# 15.4 The Random Effects Model
############################################
spec = 'lwage const educ exper exper2 tenure tenure2 black south union'

RE = gretl.panel(formula=spec, random_effects=True, matrix_diff=True).fit()
RE_r = gretl.panel(formula=spec, random_effects=True, robust=True).fit()

print(RE)
print(RE_r)

print("\nTable 15.4 Random Effects Estimates of Wage Equation")
gretl.modeltab([RE, RE_r])
print(f'\nalpha_hat = {RE.theta:.4f}')

print("\n15.5.3. A Hausmann Test")
print(RE.hausman_test)
