Eu tenho os seguintes três conjuntos de dados.
data_a=[0.21,0.24,0.36,0.56,0.67,0.72,0.74,0.83,0.84,0.87,0.91,0.94,0.97]
data_b=[0.13,0.21,0.27,0.34,0.36,0.45,0.49,0.65,0.66,0.90]
data_c=[0.14,0.18,0.19,0.33,0.45,0.47,0.55,0.75,0.78,0.82]
data_a são dados reais e os outros dois são os simulados. Aqui, estou tentando verificar qual deles (data_b ou data_c) é o mais próximo ou se assemelha ao data_a. Atualmente, estou fazendo isso visualmente e com o teste ks_2samp (python).
Visualmente
Criei um gráfico do cdf de dados reais vs cdf de dados simulados e tento ver visualmente o que é o mais próximo.
Acima está o cdf de data_a vs cdf de data_b
Acima está o cdf de data_a vs cdf de data_c
Portanto, ao visualizá-lo, pode-se dizer que data_c está mais próximo de data_a do que data_b, mas ainda não é preciso.
Teste KS
O segundo método é o teste KS, onde eu testei data_a com data_b, bem como data_a com data_c.
>>> stats.ks_2samp(data_a,data_b)
Ks_2sampResult(statistic=0.5923076923076923, pvalue=0.02134674813035231)
>>> stats.ks_2samp(data_a,data_c)
Ks_2sampResult(statistic=0.4692307692307692, pvalue=0.11575018162481227)
Acima, podemos ver que a estatística é mais baixa quando testamos dados_a com dados_c, portanto, dados_c devem estar mais próximos dos dados_a do que os dados_b. Não considerei o pvalor, pois não seria apropriado considerá-lo um teste de hipóteses e usar o valor p obtido porque o teste é projetado com a hipótese nula predeterminada.
Então, minha pergunta aqui é que, se estou fazendo isso corretamente e também há alguma outra maneira melhor de fazê-lo ??? Obrigado
x_points=np.asarray(list(range(0,len(data_a)))) >>> x_points=x_points/len(data_a) >>> plt.plot(x_points,data_a) >>> x_points=np.asarray(list(range(0,len(data_b)))) >>> x_points=np.asarray(list(range(0,len(data_c)))) >>> x_points=x_points/len(data_c) >>> plt.plot(x_points,data_c)
Este é o código. Mas a minha pergunta é como pode-se encontrar a proximidade entre os dois conjuntos de dados