Trouver Optimale Lambda pour de Box-Cox Transformer en R
Je suis en train de transformer les données dans un vecteur de R.
Ce n'est pas pour la régression linéaire donc je n'ai pas un prédicteur et la réponse de la relation. Je suis simplement à l'aide d'un modèle qui permettra d'améliorer la précision en normalisant mes données. (donc je ne peux pas utiliser le boxcox fonction puisqu'il ne fonctionne qu'avec les modèles linéaires).
les données que je suis en train de transformer, c'est:
vect
[1] 99.64 49.71 246.84 96.17 16.67 352.00 421.25 81.77 105.00 37.85
J'ai regardé ce post.
Il n'était pas clair sur ce qui est fait et comment l'optimiser fonction est utilisée, mais j'ai réussi à modifier la fonction pour créer une fonction que je voudrais minimiser.
xskew <- function(data,par) {
abs(skewness((data^par-1)/par)) }
Je voudrais d'entrée une séquence de valeurs de lambda (peut-être entre 0,5 et 1 avec des sauts de 0,01) et de trouver lequel de ces valeurs minimise xskew pour mon dataset.
J'ai essayé de le faire avec la fonction optim mais avec pas de chance, donc je ne pense pas que cela pourrait être la bonne fonction pour moi.
Comment dois-je effectuer ce calcul?
edit: je voudrais quelque chose le long des lignes de:
x <- seq(0.51,0.99,by=0.01)
which(xskew(vect,x) < 0.05)
Alors peut-être que je trouverais une valeur inférieure à un certain seuil. Ce code évidemment produit une erreur.
OriginalL'auteur Michal | 2014-10-28
Vous devez vous connecter pour publier un commentaire.
Noter que
y~1
compte comme un modèle linéaire dans R, de sorte que vous pouvez utiliser leboxcox
fonction de MASSE:Je pense que la partie la plus importante de cette fonction n'est pas qu'il trouve un "meilleur" lambda, mais qu'il trouve l'intervalle de confiance pour lambda, alors vous encourage à penser à ce que les différentes transformations de la moyenne et de la combiner avec la science derrière les données. Si le "meilleur" lambda pour vos données est de 0,41, mais l'intervalle contient entre 0,5 et il y a un raisonnement scientifique pourquoi une racine carrée de transformation ne fait sens, alors pourquoi utiliser 0.41 au lieu de 0,5?
ils sont construits à l'aide de l'idée d'un test du rapport de vraisemblance. Essentiellement, les limites sont les
range
des valeurs de x correspondant à l'axe des valeurs qui sont à l'intérieur dechisq(0.95,1)/2
du maximum. Voir l'édition ci-dessus.OriginalL'auteur Greg Snow
Pour l'application de la boîte de cox transformation de vecteur, de l'utilisation des prévisions paquet dans r:
OriginalL'auteur TheMI