#Nap du lieu
library(stringr) #Thư viện dùng để tách thay chuỗi con
library(knitr) #Thư viện dùng để kẻ khung cho bảng cú pháp kable()
library(corrplot)
## corrplot 0.92 loaded
library(car)
## Loading required package: carData
library(caTools)
library(ggplot2)
library(nortest)
All_GPUs <- read.csv("~/All_GPUs.csv")
head(All_GPUs,5)
All_GPUs <- All_GPUs[,c("Manufacturer", "Memory_Bandwidth", "Memory_Bus", "Memory_Speed")]
head(All_GPUs,5)
All_GPUs$"Memory_Bandwidth" <- gsub("GB/sec", "", All_GPUs$"Memory_Bandwidth")
All_GPUs$"Memory_Bus" <- gsub(" Bit", "", All_GPUs$"Memory_Bus")
All_GPUs$"Memory_Speed" <- gsub(" MHz","",All_GPUs$"Memory_Speed")
suppressWarnings(All_GPUs$"Memory_Bandwidth" <- as.numeric(All_GPUs$"Memory_Bandwidth"))
suppressWarnings(All_GPUs$"Memory_Bus" <- as.integer(All_GPUs$"Memory_Bus"))
suppressWarnings(All_GPUs$"Memory_Speed" <- as.integer(All_GPUs$"Memory_Speed"))
You can also embed plots, for example:
#Hiển thị dữ liệu đã được chuyển đổi ra mà n hình
head(All_GPUs,5)
apply(is.na(All_GPUs),2,sum)
## Manufacturer Memory_Bandwidth Memory_Bus Memory_Speed
## 0 125 62 105
apply(is.na(All_GPUs),2,mean)
## Manufacturer Memory_Bandwidth Memory_Bus Memory_Speed
## 0.00000000 0.03669994 0.01820317 0.03082795
All_GPUs_1 <- na.omit(All_GPUs)
#So quan sat da xoa
nrow(All_GPUs)-nrow(All_GPUs_1)
## [1] 125
#Ty le quan sat da xoa
(nrow(All_GPUs)-nrow(All_GPUs_1))/nrow(All_GPUs)
## [1] 0.03669994
apply(is.na(All_GPUs),2,sum)
## Manufacturer Memory_Bandwidth Memory_Bus Memory_Speed
## 0 125 62 105
length = tapply(All_GPUs_1$Memory_Bandwidth, All_GPUs_1$Manufacturer,length)
mean = tapply(All_GPUs_1$Memory_Bandwidth, All_GPUs_1$Manufacturer,mean)
sd = tapply(All_GPUs_1$Memory_Bandwidth, All_GPUs_1$Manufacturer,sd)
min = tapply(All_GPUs_1$Memory_Bandwidth, All_GPUs_1$Manufacturer,min)
max = tapply(All_GPUs_1$Memory_Bandwidth, All_GPUs_1$Manufacturer,max)
Q1 = tapply(All_GPUs_1$Memory_Bandwidth, All_GPUs_1$Manufacturer,quantile,probs = 0.25)
Q2 = tapply(All_GPUs_1$Memory_Bandwidth, All_GPUs_1$Manufacturer,quantile,probs = 0.5)
Q3 = tapply(All_GPUs_1$Memory_Bandwidth, All_GPUs_1$Manufacturer,quantile,probs = 0.75)
t(data.frame(length,mean,sd,min,max,Q1,Q2,Q3))
## AMD ATI Intel Nvidia
## length 1267.0000 85.0000 223.000000 1706.0000
## mean 132.4570 222.5694 22.838565 151.7079
## sd 135.5163 113.7684 8.798548 135.9393
## min 1.0000 112.0000 1.100000 1.1000
## max 1280.0000 1024.0000 34.100000 769.0000
## Q1 28.8000 211.2000 12.800000 40.1000
## Q2 96.0000 224.0000 25.600000 112.2000
## Q3 179.2000 256.0000 29.900000 224.3000
length = tapply(All_GPUs_1$Memory_Bus, All_GPUs_1$Manufacturer,length)
mean = tapply(All_GPUs_1$Memory_Bus, All_GPUs_1$Manufacturer,mean)
sd = tapply(All_GPUs_1$Memory_Bus, All_GPUs_1$Manufacturer,sd)
min = tapply(All_GPUs_1$Memory_Bus, All_GPUs_1$Manufacturer,min)
max = tapply(All_GPUs_1$Memory_Bus, All_GPUs_1$Manufacturer,max)
Q1 = tapply(All_GPUs_1$Memory_Bus, All_GPUs_1$Manufacturer,quantile,probs = 0.25)
Q2 = tapply(All_GPUs_1$Memory_Bus, All_GPUs_1$Manufacturer,quantile,probs = 0.5)
Q3 = tapply(All_GPUs_1$Memory_Bus, All_GPUs_1$Manufacturer,quantile,probs = 0.75)
t(data.frame(length,mean,sd,min,max,Q1,Q2,Q3))
## AMD ATI Intel Nvidia
## length 1267.0000 85.0000 223.00000 1706.0000
## mean 219.8074 318.1176 112.78924 204.9566
## sd 294.4522 866.1188 27.30319 153.0466
## min 32.0000 32.0000 64.00000 32.0000
## max 4096.0000 8192.0000 128.00000 4096.0000
## Q1 128.0000 256.0000 128.00000 128.0000
## Q2 128.0000 256.0000 128.00000 192.0000
## Q3 256.0000 256.0000 128.00000 256.0000
#Thong so thong ke bien Memory_Speed
length = tapply(All_GPUs_1$Memory_Speed, All_GPUs_1$Manufacturer,length)
mean = tapply(All_GPUs_1$Memory_Speed, All_GPUs_1$Manufacturer,mean)
sd = tapply(All_GPUs_1$Memory_Speed, All_GPUs_1$Manufacturer,sd)
min = tapply(All_GPUs_1$Memory_Speed, All_GPUs_1$Manufacturer,min)
max = tapply(All_GPUs_1$Memory_Speed, All_GPUs_1$Manufacturer,max)
Q1 = tapply(All_GPUs_1$Memory_Speed, All_GPUs_1$Manufacturer,quantile,probs = 0.25)
Q2 = tapply(All_GPUs_1$Memory_Speed, All_GPUs_1$Manufacturer,quantile,probs = 0.5)
Q3 = tapply(All_GPUs_1$Memory_Speed, All_GPUs_1$Manufacturer,quantile,probs = 0.75)
t(data.frame(length,mean,sd,min,max,Q1,Q2,Q3))
## AMD ATI Intel Nvidia
## length 1267.0000 85.0000 223.0000 1706.0000
## mean 1119.4301 1809.4118 799.1794 1237.7544
## sd 381.8171 196.9249 189.9718 468.8829
## min 130.0000 500.0000 133.0000 110.0000
## max 2000.0000 2000.0000 1067.0000 2127.0000
## Q1 840.0000 1750.0000 667.0000 900.0000
## Q2 1125.0000 1750.0000 800.0000 1252.5000
## Q3 1400.0000 2000.0000 933.0000 1750.0000
boxplot(Memory_Bandwidth~Manufacturer, xlab = "Manufacturer", ylab = "Memory_Bandwidth", main =
"Boxplot of Memory_Bandwidth for each Manufacturer", data = All_GPUs_1, col = 2:7)
boxplot(Memory_Bus~Manufacturer, xlab = "Manufacturer", ylab = "Memory_Bus", main =
"Boxplot of Memory_Bus for each Manufacturer", data = All_GPUs_1, col = 2:7)
boxplot(Memory_Speed~Manufacturer, xlab = "Manufacturer", ylab = "Memory_Speed", main =
"Boxplot of Memory_Speed for each Manufacturer", data = All_GPUs_1, col = 2:7)
rm.out <- function(x, na.rm = TRUE, ...){
qnt <- quantile(x, probs = c(.25,.75), na.rm = na.rm, ...)
H <- 1.5 * IQR(x, na.rm = na.rm)
y <- x
y[x < (qnt[1] - H)] <- NA
y[x > (qnt[2] + H)] <- NA
y
}
Nvidia = subset(All_GPUs_1,All_GPUs_1$Manufacturer =="Nvidia")
Nvidia$Memory_Bandwidth = rm.out(Nvidia$Memory_Bandwidth)
Nvidia$Memory_Bus = rm.out(Nvidia$Memory_Bus)
Nvidia$Memory_Speed = rm.out(Nvidia$Memory_Speed)
AMD = subset(All_GPUs_1,All_GPUs_1$Manufacturer =="AMD")
AMD$Memory_Bandwidth = rm.out(AMD$Memory_Bandwidth)
AMD$Memory_Bus = rm.out(AMD$Memory_Bus)
AMD$Memory_Speed = rm.out(AMD$Memory_Speed)
ATI = subset(All_GPUs_1,All_GPUs_1$Manufacturer =="ATI")
ATI$Memory_Bandwidth = rm.out(ATI$Memory_Bandwidth)
ATI$Memory_Bus = rm.out(ATI$Memory_Bus)
ATI$Memory_Speed = rm.out(ATI$Memory_Speed)
Intel = subset(All_GPUs_1,All_GPUs_1$Manufacturer =="Intel")
Intel$Memory_Bandwidth = rm.out(Intel$Memory_Bandwidth)
Intel$Memory_Bus = rm.out(Intel$Memory_Bus)
Intel$Memory_Speed = rm.out(Intel$Memory_Speed)
All_GPUs_2 <- rbind(Nvidia,AMD,ATI,Intel)
apply(is.na(All_GPUs_2),2,sum)
## Manufacturer Memory_Bandwidth Memory_Bus Memory_Speed
## 0 92 183 2
apply(is.na(All_GPUs_2),2,mean)
## Manufacturer Memory_Bandwidth Memory_Bus Memory_Speed
## 0.0000000000 0.0280402316 0.0557756781 0.0006095703
Nvidia$Memory_Bandwidth[is.na(Nvidia$Memory_Bandwidth)] = mean(Nvidia$Memory_Bandwidth, na.rm = T)
AMD$Memory_Bandwidth[is.na(AMD$Memory_Bandwidth)] = mean(AMD$Memory_Bandwidth, na.rm = T)
ATI$Memory_Bandwidth[is.na(ATI$Memory_Bandwidth)] = mean(ATI$Memory_Bandwidth, na.rm = T)
Intel$Memory_Bandwidth[is.na(Intel$Memory_Bandwidth)] = mean(Intel$Memory_Bandwidth, na.rm = T)
Nvidia$Memory_Bus[is.na(Nvidia$Memory_Bus)] = mean(Nvidia$Memory_Bus, na.rm = T)
AMD$Memory_Bus[is.na(AMD$Memory_Bus)] = mean(AMD$Memory_Bus, na.rm = T)
ATI$Memory_Bus[is.na(ATI$Memory_Bus)] = mean(ATI$Memory_Bus, na.rm = T)
Intel$Memory_Bus[is.na(Intel$Memory_Bus)] = mean(Intel$Memory_Bus, na.rm = T)
Nvidia$Memory_Speed[is.na(Nvidia$Memory_Speed)] = mean(Nvidia$Memory_Speed, na.rm = T)
AMD$Memory_Speed[is.na(AMD$Memory_Speed)] = mean(AMD$Memory_Speed, na.rm = T)
ATI$Memory_Speed[is.na(ATI$Memory_Speed)] = mean(ATI$Memory_Speed, na.rm = T)
Intel$Memory_Speed[is.na(Intel$Memory_Speed)] = mean(Intel$Memory_Speed, na.rm = T)
All_GPUs_2 <- rbind(Nvidia,AMD,ATI,Intel)
apply(is.na(All_GPUs_2), 2, which)
## integer(0)
apply(is.na(All_GPUs_2),2,sum)
## Manufacturer Memory_Bandwidth Memory_Bus Memory_Speed
## 0 0 0 0
apply(is.na(All_GPUs_2),2,mean)
## Manufacturer Memory_Bandwidth Memory_Bus Memory_Speed
## 0 0 0 0
boxplot(Memory_Bandwidth~Manufacturer, xlab = "Manufacturer", ylab = "Memory_Bandwidth", main =
"Boxplot of Memory_Bandwidth for each Manufacturer", data = All_GPUs_2, col = 2:7)
boxplot(Memory_Bus~Manufacturer, xlab = "Manufacturer", ylab = "Memory_Bus", main =
"Boxplot of Memory_Bus for each Manufacturer", data = All_GPUs_2, col = 2:7)
boxplot(Memory_Speed~Manufacturer, xlab = "Manufacturer", ylab = "Memory_Speed", main =
"Boxplot of Memory_Speed for each Manufacturer", data = All_GPUs_2, col = 2:7)
hist(All_GPUs_2$Memory_Bandwidth,xlab="Memory_Bandwidth",main="Histogram of Memory_Bandwidth", labels=T)
hist(All_GPUs_2$Memory_Bus,xlab="Memory_Bus",main="Histogram of Memory_Bus", labels=T)
hist(All_GPUs_2$Memory_Speed,xlab="Memory_Speed",main="Histogram of Memory_Speed", labels=T)
ggplot()+geom_point(data=All_GPUs_2,aes(x=Memory_Bandwidth,y=Memory_Speed))
## ANOVA
Nvidia= subset(All_GPUs_2 , All_GPUs_2$Manufacturer == "Nvidia")
qqnorm(Nvidia$Memory_Bandwidth)
qqline(Nvidia$Memory_Bandwidth)
ad.test(Nvidia$Memory_Bandwidth)
##
## Anderson-Darling normality test
##
## data: Nvidia$Memory_Bandwidth
## A = 41.523, p-value < 2.2e-16
library(car)
leveneTest(Memory_Bandwidth~as.factor(Manufacturer), data =All_GPUs_2)
All_GPUs_3 <- aov(Memory_Bandwidth~Manufacturer,All_GPUs_2)
summary(All_GPUs_3)
## Df Sum Sq Mean Sq F value Pr(>F)
## Manufacturer 3 3938568 1312856 118.9 <2e-16 ***
## Residuals 3277 36188288 11043
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
TukeyHSD(All_GPUs_3)
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = Memory_Bandwidth ~ Manufacturer, data = All_GPUs_2)
##
## $Manufacturer
## diff lwr upr p adj
## ATI-AMD 118.43804 88.17388 148.70221 0
## Intel-AMD -94.69758 -114.31268 -75.08249 0
## Nvidia-AMD 24.70366 14.68620 34.72112 0
## Intel-ATI -213.13563 -247.56678 -178.70448 0
## Nvidia-ATI -93.73438 -123.75274 -63.71603 0
## Nvidia-Intel 119.40124 100.16757 138.63492 0
plot(TukeyHSD(All_GPUs_3))