def METHOD_NAME(exog):
    X = exog
    e = sige * np.random.normal(size=nobs)
    endog = np.dot(X, beta) + e
    #X[:,0] += 0.01 * e
    #z1 = X.sum(1) + np.random.normal(size=nobs)
    #z2 = X[:,1]
    z3 = (np.dot(X, np.array([2,1, 0])) +
                    sige/2. * np.random.normal(size=nobs))
    z4 = X[:,1] + np.random.normal(size=nobs)
    instrument = np.column_stack([X[:,:2], z3, z4, X[:,-1]]) #last is constant
    return endog, exog, instrument