2010-09-17 28 views
1

J'ai des valeurs de production (q) de 4 méthodes différentes stockées dans les 4 matrices. Chacune des 4 matrices contient des valeurs de q à partir d'une autre méthode que:Comment comparer différents moyens de distribution avec la valeur de vérité de référence dans Matlab?

Matrix_1 = 1 row x 20 column 

Matrix_2 = 100 rows x 20 columns 

Matrix_3 = 100 rows x 20 columns 

Matrix_4 = 100 rows x 20 columns 

Le nombre de colonnes indiquent le nombre d'années. Une rangée contiendrait les valeurs de production correspondant aux 20 années. Les 99 autres lignes pour les matrices 2, 3 et 4 ne sont que les différentes réalisations (ou simulations). Donc, fondamentalement, les 99 autres lignes pour les matrices 2,3 et 4 sont des cas de répétition (mais pas avec des valeurs exactes à cause des nombres aléatoires).

Considérer Matrix_1 comme la vérité de référence (ou le cas de base). Maintenant, je veux comparer les 3 autres matrices avec Matrix_1 pour voir laquelle parmi ces trois matrices (chacune avec 100 répétitions) compare le mieux, ou imite étroitement, avec Matrix_1.

Comment cela peut-il être fait dans Matlab?

Je sais, manuellement, que nous utilisons un intervalle de confiance (CI) en traçant la mean of Matrix_1, et le dessin chaque distribution de mean of Matrix_2, mean of Matrix_3 et mean of Matrix_4. Le CI le plus grand parmi les matrices 2, 3 et 4 qui contient la vérité de référence (ou mean of Matrix_1) sera la réponse.

mean of Matrix_1 = (1 row x 1 column) 

mean of Matrix_2 = (100 rows x 1 column) 

mean of Matrix_3 = (100 rows x 1 column) 

mean of Matrix_4 = (100 rows x 1 column) 

J'espère que la question est claire et pertinente pour SO. Sinon, n'hésitez pas à modifier/suggérer quelque chose en question. Merci!

EDIT: Mes trois méthodes dont j'ai parlé sont a1, a2 et a3 respectivement. Voici mon résultat:

ci_a1 = 

    1.0e+008 * 

    4.084733001497999 
    4.097677503988565 

ci_a2 = 

    1.0e+008 * 

    5.424396063219890 
    5.586301025525149 

ci_a3 = 

    1.0e+008 * 

    2.429145282593182 
    2.838897116739112 

p_a1 = 

    8.094614835195452e-130 

p_a2 = 

    2.824626709966993e-072 

p_a3 = 

    3.054667629953656e-012 

h_a1 = 1; h_a2 = 1; h_a3 = 1 

Aucun de mes CI, à partir des trois méthodes, comprend l'mean (= 3.454992884900722e+008) à l'intérieur. Alors considérons-nous toujours la valeur p pour choisir le meilleur résultat?

+1

Hors sujet: J'ai vu votre question fermée, et j'ai remarqué que vous voulez utiliser la géostatistique. Si vous voulez faire cela, veuillez passer à R au lieu de le garder strictement sur Matlab ou Python. R est fait à cet effet et a toute une liste de paquets spécifiquement pour l'analyse géostatistique. Il peut aussi communiquer avec GRASS par exemple. –

+0

@Joris: En fait, pour mon travail de géo-statistique, j'utilise SGEMS, mais j'utilise Matlab pour écrire des codes. Fondamentalement, je voulais savoir lequel parmi Matlab et Python est mieux pour le codage général, mais j'ai mal expliqué ma question. Merci pour votre suggestion BTW. – Pupil

+1

@Harptreet: J'ai édité votre titre pour mieux refléter votre vraie question. –

Répondre

2

Si je comprends bien, le calcul dans MATLAB est assez avancé.

étapes 1-2 (moyenne calcul):

k1_mean = mean(k1); 
k2_mean = mean(k2); 
k3_mean = mean(k3); 
k4_mean = mean(k4); 

Étape 3, utilisez HIST pour tracer des histogrammes de distribution:

hist([k2_mean; k3_mean; k4_mean]') 

Étape 4. Vous pouvez faire un test t comparant vos vecteurs 2 , 3 et 4 contre la distribution normale avec la variance moyenne k1 et inconnue. Voir TTEST pour plus de détails.

[h,p,ci] = ttest(k2_mean,k1_mean); 
+0

Vous n'utilisez PAS de test t pour comparer les distributions, un test t teste uniquement les moyennes. –

+0

Vous avez raison, mais OP veut comparer les distributions avec une seule valeur, ce qui est impossible. Je crois qu'il s'est trompé en comparant les distributions à des moyens de comparaison. Voir son article 4). Il veut trouver quelle matrice est la plus proche de la première. Si ses vecteurs ne sont pas trop proches de la valeur 'k1_mean', il peut le résoudre avec le test t. Bien sûr, il suppose une distribution normale des valeurs de vecteurs, qui peuvent être testées. – yuk

+0

@Yuk: Pouvez-vous éditer votre réponse, pour que je puisse l'afficher de nouveau, car par erreur, la réponse mise à jour a été annulée.Aussi, comment interpréter mon résultat, car je ne pouvais pas comprendre clairement les paramètres ** h, p et ci ** dans l'aide de la fonction. Est-ce que le ** ci ** ayant la plus grande valeur est celui qui ressemble le plus à la vérité de référence? – Pupil

2

EDIT: J'ai mal interprété votre question. Voir la réponse de Yuk et les commentaires suivants. Ma réponse est ce dont vous avez besoin si vous voulez comparer les distributions de deux vecteurs au lieu d'un vecteur contre une seule valeur. Apparemment, ce dernier est le cas ici.

En ce qui concerne vos tests t, vous devez garder à l'esprit qu'ils testent par rapport à une «vraie» moyenne. Étant donné le nombre de valeurs pour chaque matrice et les intervalles de confiance, il n'est pas trop difficile de deviner l'écart-type de vos résultats. C'est une mesure de la "propagation" de vos résultats. Maintenant, l'erreur sur votre moyenne est calculée comme l'écart-type de vos résultats divisé par le nombre d'observations. Et l'intervalle de confiance est calculé en multipliant cette erreur standard par appx.2.

Cet intervalle de confiance contient la vraie moyenne dans 95% des cas. Donc, si la moyenne vraie est exactement à la limite de cet intervalle, la valeur p est 0,05 plus la moyenne est éloignée, plus la valeur p est faible. Cela peut être interprété comme la chance que les valeurs que vous avez dans la matrice 2, 3 ou 4 proviennent d'une population avec une moyenne comme dans la matrice 1. Si vous voyez vos valeurs p, ces chances peuvent être dites inexistantes.

Vous voyez donc que lorsque le nombre de valeurs devient élevé, l'intervalle de confiance devient plus petit et le test t devient très sensible. Ce que cela vous dit, n'est rien de plus que les trois matrices diffèrent significativement de la moyenne. Si vous devez en choisir un, je regarderais les distributions de toute façon. Sinon, celui avec la moyenne la plus proche semble être une bonne supposition. Si vous souhaitez obtenir plus profondément dans cela, vous pouvez également demander à stats.stackexchange.com


Votre question et votre méthode ne sont pas vraiment claires:

  • La répartition égale dans toutes les colonnes ? Ceci est important, car deux distributions peuvent avoir la même moyenne, mais diffèrent significativement:

alt text

  • est-il une raison pour laquelle vous n'utilisez pas le théorème central limite? Cela me semble être une manière très complexe d'obtenir un résultat qui peut facilement être trouvé en utilisant le fait que la distribution d'une moyenne approche une distribution normale où sd (mean) = sd (observations)/nombre d'observations. Vous économise un peu de travail, si les distributions sont semblables! -

Maintenant, si la question est vraiment la comparaison des distributions, vous devriez envisager de regarder un qqplot pour une idée générale, et à un 2-sample kolmogorov-smirnov test contrôle formel. Mais veuillez lire ce test, car vous devez comprendre ce qu'il fait pour interpréter correctement les résultats.

Sur une note: si vous faites ce test sur plusieurs cas, assurez-vous de comprendre le problème des comparaisons multiples et d'utiliser la correction appropriée, par exemple. Bonferroni ou Dunn-Sidak.

+1

@Harpeet: Si vous prenez les moyennes des colonnes, vous avez 4 vecteurs de 20 valeurs. De cette façon, vous pouvez comparer la distribution 2, 3 et 4 avec la distribution dans la matrice 1. Ce n'est pas 100% statistiquement solide, mais sinon, nous devons aller dans une modélisation plus avancée. Si vous êtes intéressé par quelle matrice est la plus proche, alors vous prenez la moyenne des 100 moyennes (qui est ce que vous avez construit autour de l'intervalle de confiance), et vous voyez quelle approche approche la plus proche. C'est aussi une supposition, mais pas la pire. -continued –

+1

La chose est que vous devez décider ce qui est "le plus proche" est-il celui avec la plus grande chance de contenir la vraie valeur dans le ci? Ou celui qui est en moyenne le plus proche? Il se peut que la moyenne soit plus éloignée, mais que la propagation soit plus grande et donc plus importante. Vous pouvez même regarder les distributions: celles qui ont la forme la plus égale sont les plus proches. Ceci est - très simplifié - ce que le test de Kolgomorov smirnov teste. Mais ce que «le plus proche» signifie est quelque chose que je ne peux pas décider pour vous. –