在 R 中规范化数据

Normalizing data in R

目前我正在研究QDA并且正在使用R软件分析我的数据。

数据是从下面下载的 link:

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)

组 2 类似,但是组 1 的平均向量 X 没有给出接近 0 的结果。

谁能帮我看看前进的方向是什么?

如果您想用均值 0 和标准差 1 进行归一化,您可以使用 scale 命令。

示例:

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。