def train_test_split(X, y, test_size = 0.3):
    """
    Returns data split in train and test part.
    Test part cotains the last 0.3 percentage of data, while train part
    contains rest. Useful in spliting time series data, where we want to predict
    on data that model has never seen
    Keyword arguments:
    X -- data frame or numpy array contaning predictors
    y -- dataframe or numpy array contaning predicted values
    test_size -- percent of data taken into test sample
    """
    assert len(X) == len(y), "X and y not the same size"
    size = int((1 - test_size) * len(X))
    X_train = X[:size]
    X_test = X[size:]
    y_train = y[:size].values.reshape(-1,1)
    y_test = y[size:].values.reshape(-1,1)
    return X_train, X_test, y_train, y_test