Beispiel #1
0
import scipy.stats as stats

import statsmodels
import statsmodels.api as sm
from statsmodels.formula.api import ols
import util_ler_dados as udata

df_tudo = udata.obterDados2()

arq_destino = '03-Anova-2/_ANOVA_ANALISES_Probabilidades_de_um_mesmo_Algoritmo.txt'
if os.path.exists(arq_destino):
    os.remove(arq_destino)
arq_destino = open(arq_destino, 'w+')

for alg in udata.ALGORTIMOS:
    data = udata.filtrarPorAlgoritmo(df=df_tudo, algoritmo=alg)
    # print(data.head())
    print(data['probabilidade_erro'].unique())

    lm = ols(formula='percentual_k_unordered ~ probabilidade_erro',
             data=data).fit()
    anova = sm.stats.anova_lm(lm, typ=2)  # Type 2 ANOVA DataFrame

    tit = ' ANOVA para %s' % (alg.upper())
    hr = '=' * 70  #len(tit)
    anov = anova.head(10)

    s = '%s\n%s\n%s\n%s\n\n' % (hr, tit, hr, anov)
    arq_destino.write(s)
    print(s)
    for coef in coeficientes_confianca:
        arq_destino.write(
            '=============================================================================\n'
        )
        arq_destino.write('Coeficiente de Confiança = %s\n' % (coef))
        arq_destino.write(
            '=============================================================================\n'
        )
        arq_destino.write('\n')

        for prob in probs:
            df_prob = udata.filtrarPorProbabilidadeErro(df, prob)
            for size in sizes:
                df_size = udata.filtrarPorTamanhoArray(df_prob, size)
                for alg in algs:
                    df_alg = udata.filtrarPorAlgoritmo(df_size, alg)
                    if (df_alg.shape[0] > 0):
                        arq_destino.write(col)
                        arq_destino.write('\n')
                        arq_destino.write(
                            'Coef. Confiança = %s;  Prob = %s;  Size = %s;  Alg = %s'
                            % (coef, prob, size, alg))
                        arq_destino.write('\n')

                        data = df_alg[col]
                        lim_inferior, mean, lim_superior, h, std_error, std_dev = mean_confidence_interval(
                            data, confidence=coef)
                        arq_csv_destino.write(
                            printCsvInfo(coef, prob, size, alg, col,
                                         lim_inferior, mean, lim_superior, h,
                                         std_error, std_dev))

q1 = udata.obterDados()
q1 = udata.filtrarPorTamanhoArray(q1, 100)
print(q1.corr())

df = udata.obterDados()
# salvarGrafico(df=df, file_title='teste-04-correlacao-0-geral')

for prob in udata.PROBABILIDADES:
    df_prob = udata.filtrarPorProbabilidadeErro(df, prob)
    # print( df_prob.shape )
    # print(df_alg.shape)
    for tam in udata.TAMANHOS:
        # print('%.2f-%s-%s' % (prob, alg, tam))
        df_tam = udata.filtrarPorTamanhoArray(df_prob, tam)
        for alg in udata.ALGORTIMOS:
            df_alg = udata.filtrarPorAlgoritmo(df_tam, alg)
            # print(df_tam.head())
            # print(df_tam.shape)
            # print('')
            # se tiver dados no DF
            if (df_alg.shape[0] > 0):
                print(df_alg.head())
                df_alg.loc[:]['size_of_array'] = tam * 1.0
                file_title = 'teste-04-correlacao-%s-%s-%s' % (prob, alg, tam)
                salvarGrafico(df_p=df_alg, file_title=file_title, tam=int(tam))
                break
            break
        break
    break