在 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。
目前我正在研究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。