2017-01-22 4 views
1

Actuellement j'étudie QDA et j'utilise le logiciel R pour analyser mes données.Normaliser les données dans R

Les données ont été téléchargées à partir du lien ci-dessous:

https://www.kaggle.com/uciml/pima-indians-diabetes-database

Je veux vérifier l'hypothèse QDA-à-dire les deux groupes sont à variables multiples normalement distribués, d'où ont utilisé la commande ci-dessous dans l'affaire R.

library(MVN)  
group1 <- discrim[1:500, 1:8] 
result<- mardiaTest(group1, qqplot = FALSE) #To check whether our data from group1 is MND  
group2 <- discrim[501:765, 1:8]  
result2 <- mardiaTest(group2, qqplot= TRUE)#To check whether our data from group2 is MND 

Les deux groupes sont distribués de manière non-normale, donc je veux normaliser les données et j'ai codé le suivant pour normaliser les données du premier groupe.

x1bar <- t(t(as.vector(sapply(as.data.frame(group1),mean))))  
x1bartilda<- (x1bar - mean(x1bar))/sd(x1bar) 

De même pour group2 cependant vecteur moyen X pour groupe1 n'a pas donné un résultat qui est proche de 0.

Quelqu'un peut-il me aider ce qui est la voie à suivre s'il vous plaît?

+0

Quelle est la vraie question? Utiliser une moyenne qui est hors du groupe pour standardiser une variable ne doit pas donner un résultat nul ... – AlexR

+1

Comment puis-je normaliser mes données et continuer à travailler sur mes données? –

+0

Cela dépend de la distribution réelle des données et est une question mieux adaptée pour [stats.SE]. – AlexR

Répondre

0

Si vous voulez normaliser avec la moyenne 0 et std 1, vous pouvez utiliser la commande d'échelle.

Exemple:

my_data <- data.frame(x = rnorm(10, 30, .2), y = runif(10, 3, 5)) 
my_data_scaled <- scale(my_data) 

summary(my_data_scaled) 

Le résultat est:

x     y   
Min. :-1.91046 Min. :-1.59037 
1st Qu.:-0.57552 1st Qu.:-0.39842 
Median : 0.06104 Median : 0.01998 
Mean : 0.00000 Mean : 0.00000 
3rd Qu.: 0.47280 3rd Qu.: 0.84296 
Max. : 1.74638 Max. : 1.10514 

La moyenne est 0.