def checkGroupEffectsValidity(columnsForZ, columnEffects):
    """On input user request removal of columnsForZ
    Here we confimr if they all exist in the current data set. If not
    reduce columnsForZ to include only valid effects. Print out a message
    NOTE: always convert to and return uppercase for comparisons and subsequent analysis
    """
    upperColumnsForZ = list()
    for effect in columnsForZ:
        upperColumnsForZ.append(effect)
    newList = list(set(upperColumnsForZ) & set(columnEffects))
    if newList.sort() != upperColumnsForZ.sort():
        print(
            'Input group list has been reduced based on preestablished possible effects'
            )
        print('Size on data effects is ' + str(len(columnsForZ)) +
            ' new removal list is of size ' + str(len(newList)))
        print('New removal list is ' + str(newList))
    return newList
