Question

Je veux étudier l'impact des 26 paramètres sur une variable, et donc déterminer les 3 ou 4 qui doivent le plus d'influence sur elle. Pour cela, j'ai construit une matrice 10 x 26: 26 paramètres avec 10 observations, et d'un vecteur de 10 matrices contenant la variable je veux étudier avec 10 observations. De là, comment puis-je déterminer quels sont les 3 ou 4 la plupart des variables influentes sur les paramètres. Je considérais en utilisant PCA, mais je ne suis pas sûr que ce soit la bonne approche. Quelqu'un peut-il me donner une certaine direction ici?

Était-ce utile?

La solution

Il y a un certain nombre de méthodes pour cela. Voici une liste:

  1. Vous pouvez construire un modèle de régression et d'observer les valeurs p des coefficients de chaque variable.
  2. corrélation de Pearson
  3. Spearman Corrélation
  4. Kendall Corrélation
  5. Information mutuelle
  6. RReliefF algorithme
  7. Les arbres de décision
  8. analyse en composantes principales (que vous avez essayé)

etc.

Vous pouvez rechercher d'autres méthodes avec ces mots-clés:

fonction de sélection, importance variable classement de variable, la sélection des paramètres

Ils sont tous à peu près la même chose, juste une terminologie différente dans différents domaines.

Cependant, la question que vous devez faire attention est ici observations « 10 » sont presque rien. Il sera extrêmement difficile de faire confiance aux résultats, quelle que soit la méthode que vous utilisez.

Autres conseils

Mise à jour. Avec cette taille de l'échantillon, vous presque ne peut pas trouver une idée utile

L'une des façons de trouver relation un à un est de trouver le coefficient de corrélation de deux variables aléatoires. La corrélation est la relation statistique entre deux variables aléatoires ou les attributs (dans votre cas). Ce coefficient est une valeur comprise entre 1 et -1. Si la valeur est proche de 1, cela signifie qu'il ya une forte corrélation positive entre les deux variables aléatoires. Dans d'autres mondes que la valeur d'un des attributs augmente, la valeur de l'autre attribut augmente aussi. D'autre part, si la valeur est proche de -1, cela signifie qu'il y a une forte corrélation négative entre les moyens dont la valeur d'un attribut augmente la valeur de l'autre attribut diminue. Si la valeur de corrélation est proche de zéro, cela signifie qu'il n'y a pas de corrélation significative entre les deux variables aléatoires.

Si vous pouvez utiliser Python, vous pouvez charger un fichier CSV dans un objet et pandas géants exécuter la méthode corr () des Pandas objet pour obtenir le coefficient de corrélation de deux ou plusieurs variables aléatoires. Voir le code ci-dessous (je ne pouvais pas trouver la source de ce code mention)

from string import letters
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

sns.set(style="white")

# Generate a large random dataset
rs = np.random.RandomState(33)
d = pd.DataFrame(data=rs.normal(size=(100, 26)),
                 columns=list(letters[:26]))

# Compute the correlation matrix
corr = d.corr()

# Generate a mask for the upper triangle
mask = np.zeros_like(corr, dtype=np.bool)
mask[np.triu_indices_from(mask)] = True

# Set up the matplotlib figure
f, ax = plt.subplots(figsize=(11, 9))

# Generate a custom diverging colormap
cmap = sns.diverging_palette(220, 10, as_cmap=True)

# Draw the heatmap with the mask and correct aspect ratio
sns.heatmap(corr, mask=mask, cmap=cmap, vmax=.3,
            square=True, xticklabels=5, yticklabels=5,
            linewidths=.5, cbar_kws={"shrink": .5}, ax=ax)

plt.show()

Dans ce graphique, vous pouvez voir la corrélation forte ou une semaine entre toutes les variables, puis choisir celui que vous trouvez le plus important.

Vous pouvez essayer d'utiliser Lasso qui fait régularisation L1 sur les poids et définit les paramètres pertinents à 0. Parmi les sous-ensemble de paramètres corrélés, il y aura un seul choix. Cela fonctionne particulièrement bien si vous pensez qu'il ya multicollinéarité dans votre ensemble de données.

Licencié sous: CC-BY-SA avec attribution
scroll top