2017-01-22 4 views
1

В настоящее время я изучаю QDA и использую программное обеспечение R для анализа моих данных.Нормализация данных в R

данные были загружены из следующей ссылке:

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

Я хочу, чтобы проверить предположение QDA т.е. двух групп многомерный нормально распределены, следовательно, использовали следующую команду в 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 

Обе группы распределены неравномерно, поэтому я хочу нормализовать данные и закодировал ниже, чтобы нормализовать данные для первой группы.

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

Аналогично для group2, однако в виду вектор X для group1 не дали результата, который близок к 0.

Может кто-нибудь помочь мне, что это путь вперед, пожалуйста?

+0

Что такое реальный вопрос? Использование среднего значения, выходящего за пределы группы для стандартизации переменной, не приведет к получению нулевого среднего результата ... – AlexR

+1

Как я могу нормализовать свои данные и продолжить работу с qda по моим данным? –

+0

Это зависит от фактического распределения данных и это вопрос, который лучше подходит для [stats.SE]. – AlexR

ответ

0

Если вы хотите нормализовать со средним значением 0 и std 1, вы можете использовать команду масштабирования.

Пример:

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

summary(my_data_scaled) 

Результат:

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 

Среднее значение 0.

Смежные вопросы