## [1] 4898 13
## 'data.frame': 4898 obs. of 13 variables:
## $ X : int 1 2 3 4 5 6 7 8 9 10 ...
## $ fixed.acidity : num 7 6.3 8.1 7.2 7.2 8.1 6.2 7 6.3 8.1 ...
## $ volatile.acidity : num 0.27 0.3 0.28 0.23 0.23 0.28 0.32 0.27 0.3 0.22 ...
## $ citric.acid : num 0.36 0.34 0.4 0.32 0.32 0.4 0.16 0.36 0.34 0.43 ...
## $ residual.sugar : num 20.7 1.6 6.9 8.5 8.5 6.9 7 20.7 1.6 1.5 ...
## $ chlorides : num 0.045 0.049 0.05 0.058 0.058 0.05 0.045 0.045 0.049 0.044 ...
## $ free.sulfur.dioxide : num 45 14 30 47 47 30 30 45 14 28 ...
## $ total.sulfur.dioxide: num 170 132 97 186 186 97 136 170 132 129 ...
## $ density : num 1.001 0.994 0.995 0.996 0.996 ...
## $ pH : num 3 3.3 3.26 3.19 3.19 3.26 3.18 3 3.3 3.22 ...
## $ sulphates : num 0.45 0.49 0.44 0.4 0.4 0.44 0.47 0.45 0.49 0.45 ...
## $ alcohol : num 8.8 9.5 10.1 9.9 9.9 10.1 9.6 8.8 9.5 11 ...
## $ quality : int 6 6 6 6 6 6 6 6 6 6 ...
## X fixed.acidity volatile.acidity citric.acid
## Min. : 1 Min. : 3.800 Min. :0.0800 Min. :0.0000
## 1st Qu.:1225 1st Qu.: 6.300 1st Qu.:0.2100 1st Qu.:0.2700
## Median :2450 Median : 6.800 Median :0.2600 Median :0.3200
## Mean :2450 Mean : 6.855 Mean :0.2782 Mean :0.3342
## 3rd Qu.:3674 3rd Qu.: 7.300 3rd Qu.:0.3200 3rd Qu.:0.3900
## Max. :4898 Max. :14.200 Max. :1.1000 Max. :1.6600
## residual.sugar chlorides free.sulfur.dioxide
## Min. : 0.600 Min. :0.00900 Min. : 2.00
## 1st Qu.: 1.700 1st Qu.:0.03600 1st Qu.: 23.00
## Median : 5.200 Median :0.04300 Median : 34.00
## Mean : 6.391 Mean :0.04577 Mean : 35.31
## 3rd Qu.: 9.900 3rd Qu.:0.05000 3rd Qu.: 46.00
## Max. :65.800 Max. :0.34600 Max. :289.00
## total.sulfur.dioxide density pH sulphates
## Min. : 9.0 Min. :0.9871 Min. :2.720 Min. :0.2200
## 1st Qu.:108.0 1st Qu.:0.9917 1st Qu.:3.090 1st Qu.:0.4100
## Median :134.0 Median :0.9937 Median :3.180 Median :0.4700
## Mean :138.4 Mean :0.9940 Mean :3.188 Mean :0.4898
## 3rd Qu.:167.0 3rd Qu.:0.9961 3rd Qu.:3.280 3rd Qu.:0.5500
## Max. :440.0 Max. :1.0390 Max. :3.820 Max. :1.0800
## alcohol quality
## Min. : 8.00 Min. :3.000
## 1st Qu.: 9.50 1st Qu.:5.000
## Median :10.40 Median :6.000
## Mean :10.51 Mean :5.878
## 3rd Qu.:11.40 3rd Qu.:6.000
## Max. :14.20 Max. :9.000
该数据集包含约4900条白葡萄酒数据。
除序号外,包含8种化学成分的属性(2种二氧化硫的参数衡量同一种化学物质)、2种葡萄酒自身的物理属性(密度以及pH值),以及评分。
##
## 3 4 5 6 7 8 9
## 20 163 1457 2198 880 175 5
评分大多数的评分集中在6分附近。
不存在评分为满分(10分)或低于3分的数据。
我想要了解是哪种(或哪些)化学成分影响了葡萄酒的品质(评分),先来看一下其他8种不同化学成分的分布情况。
## [1] "固定酸值的描述性统计"
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 3.800 6.300 6.800 6.855 7.300 14.200
## [1] "挥发酸值的描述性统计"
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0800 0.2100 0.2600 0.2782 0.3200 1.1000
## [1] "柠檬酸值的描述性统计"
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.2700 0.3200 0.3342 0.3900 1.6600
固定酸、挥发酸和柠檬酸中均存在部分较大值,因此进行了放大。
多数葡萄酒的固定酸值在5 - 8之间,中位数为6.8,平均值为6.855。
多数葡萄酒的挥发酸值在0.1 - 0.4之间,中位数为0.26,平均值为0.2782。
多数葡萄酒的柠檬酸值在0.2 - 0.5之间,中位数为0.32,平均值为0.3342。
注意到柠檬酸中,在0.4 - 0.5的区间内有一个小峰值特别显眼。
由于残糖是一个长尾数据,故对其进行了取对数处理。
转换后的残糖在2附近达到了第一个峰值,又在8-9左右达到了另一个峰值。
这种分布的出现是偶然还是有什么特定的原因呢?
先继续看一下其他化学成分的分布。
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00900 0.03600 0.04300 0.04577 0.05000 0.34600
氯化物也是长尾分布,对其进行取对数处理。
转化后的氯化物值基本可看作正态分布,基本分布在0.03 - 0.1之间。
除了酒精外,游离二氧化硫等其他三项成分也可看作正态分布。
其中,酒精度的分布比较离散,但大多数白葡萄酒的酒精度集中在9 - 13度之间。
想要进一步研究二氧化硫这个化学物质,通过游离和总量,可以计算出一个游离状态二氧化硫的占比。
引入一个新的变量,名为游离二氧化硫占比(free.sulfur.dioxide.percent),用于衡量葡萄酒中二氧化硫的水平,再来看看其分布情况。
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 2.720 3.090 3.180 3.188 3.280 3.820
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.9871 0.9917 0.9937 0.9940 0.9961 1.0390
大多数的葡萄酒pH值集中在3 - 3.5附近,是正态分布。
大多数的葡聚糖密度在0.992附近,也是正态分布。
## X fixed.acidity volatile.acidity citric.acid residual.sugar chlorides
## 1 1 7.0 0.27 0.36 20.7 0.045
## 2 2 6.3 0.30 0.34 1.6 0.049
## 3 3 8.1 0.28 0.40 6.9 0.050
## 4 4 7.2 0.23 0.32 8.5 0.058
## 5 5 7.2 0.23 0.32 8.5 0.058
## 6 6 8.1 0.28 0.40 6.9 0.050
## free.sulfur.dioxide total.sulfur.dioxide density pH sulphates alcohol
## 1 45 170 1.0010 3.00 0.45 8.8
## 2 14 132 0.9940 3.30 0.49 9.5
## 3 30 97 0.9951 3.26 0.44 10.1
## 4 47 186 0.9956 3.19 0.40 9.9
## 5 47 186 0.9956 3.19 0.40 9.9
## 6 30 97 0.9951 3.26 0.44 10.1
## quality free.sulfur.dioxide.percent
## 1 6 0.2647059
## 2 6 0.1060606
## 3 6 0.3092784
## 4 6 0.2526882
## 5 6 0.2526882
## 6 6 0.3092784
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.02362 0.19093 0.25368 0.25558 0.31579 0.71053
可以看到占比也服从正态分布,大多数占比为10%-40%之间。
中位数为0.2537,平均值为0.2556
该数据集包含了4,898条白葡萄酒的数据,包括8种化学成分的属性,以及2个物理属性。
这8种化学成分分别是:固定酸,挥发酸,柠檬酸,残糖,氯化物,二氧化硫,硫酸盐,酒精。
通过查看各个化学成分的分布,大多数的成分都是呈正态分布的。
其他的观察成果:
评分是从3分到9分,中位数是6分,众数也是6分(占比约44%)
残糖有两个峰值(2左右和9左右)
柠檬酸也有一个小峰值
对于本数据集,最重要的数据就是每个酒的评分。我尝试探索是那种(或哪些)化学成分会影响葡萄酒的评分,因此每种化学成分都有可能对于评分造成影响。
此外,为了研究二氧化硫,新增了一个变量,名为游离二氧化硫占比。用游离二氧化硫的含量去除以二氧化硫的总量得到此新变量,用于衡量葡萄酒中游离二氧化硫的水平。
## fixed.acidity volatile.acidity citric.acid
## fixed.acidity 1.00 -0.02 0.29
## volatile.acidity -0.02 1.00 -0.15
## citric.acid 0.29 -0.15 1.00
## residual.sugar 0.09 0.06 0.09
## chlorides 0.02 0.07 0.11
## sulphates -0.02 -0.04 0.06
## alcohol -0.12 0.07 -0.08
## free.sulfur.dioxide.percent -0.14 -0.20 0.02
## quality -0.11 -0.19 -0.01
## pH -0.43 -0.03 -0.16
## density 0.27 0.03 0.15
## residual.sugar chlorides sulphates alcohol
## fixed.acidity 0.09 0.02 -0.02 -0.12
## volatile.acidity 0.06 0.07 -0.04 0.07
## citric.acid 0.09 0.11 0.06 -0.08
## residual.sugar 1.00 0.09 -0.03 -0.45
## chlorides 0.09 1.00 0.02 -0.36
## sulphates -0.03 0.02 1.00 -0.02
## alcohol -0.45 -0.36 -0.02 1.00
## free.sulfur.dioxide.percent 0.05 -0.03 -0.02 0.06
## quality -0.10 -0.21 0.05 0.44
## pH -0.19 -0.09 0.16 0.12
## density 0.84 0.26 0.07 -0.78
## free.sulfur.dioxide.percent quality pH
## fixed.acidity -0.14 -0.11 -0.43
## volatile.acidity -0.20 -0.19 -0.03
## citric.acid 0.02 -0.01 -0.16
## residual.sugar 0.05 -0.10 -0.19
## chlorides -0.03 -0.21 -0.09
## sulphates -0.02 0.05 0.16
## alcohol 0.06 0.44 0.12
## free.sulfur.dioxide.percent 1.00 0.20 0.00
## quality 0.20 1.00 0.10
## pH 0.00 0.10 1.00
## density -0.07 -0.31 -0.09
## density
## fixed.acidity 0.27
## volatile.acidity 0.03
## citric.acid 0.15
## residual.sugar 0.84
## chlorides 0.26
## sulphates 0.07
## alcohol -0.78
## free.sulfur.dioxide.percent -0.07
## quality -0.31
## pH -0.09
## density 1.00
从相关系数矩阵中可以看到,所有化学成分与评价之间的相关性均不是特别高。
酒精度,作酒类饮品重要的衡量指标,与评价的相关性是最高的。
其他还有些相对较弱的相关性,如游离二氧化硫含量(正相关)、氯化物(负相关)等。
先来看一下相关程度看起来最高的酒精度对评分的影响。
##
## Call:
## lm(formula = quality ~ alcohol, data = wine)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.5317 -0.5286 0.0012 0.4996 3.1579
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.582009 0.098008 26.34 <2e-16 ***
## alcohol 0.313469 0.009258 33.86 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.7973 on 4896 degrees of freedom
## Multiple R-squared: 0.1897, Adjusted R-squared: 0.1896
## F-statistic: 1146 on 1 and 4896 DF, p-value: < 2.2e-16
从图中可以看到酒精度与评分之间的较强的线性关系。通常来说,酒精度越高,评分也就相对越高。
在箱型图中添加了一条红色的直线用于显示酒精度的均值(平均数),可以看到多数评价偏低的样本酒精度都低于这个值。
其次相关系数最高的就是氯化物了,来看一下其与评分的散点图。
## wine$quality: 3
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.02200 0.03625 0.04100 0.05430 0.05400 0.24400
## --------------------------------------------------------
## wine$quality: 4
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0130 0.0380 0.0460 0.0501 0.0540 0.2900
## --------------------------------------------------------
## wine$quality: 5
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00900 0.04000 0.04700 0.05155 0.05300 0.34600
## --------------------------------------------------------
## wine$quality: 6
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.01500 0.03600 0.04300 0.04522 0.04900 0.25500
## --------------------------------------------------------
## wine$quality: 7
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.01200 0.03100 0.03700 0.03819 0.04400 0.13500
## --------------------------------------------------------
## wine$quality: 8
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.01400 0.03000 0.03600 0.03831 0.04400 0.12100
## --------------------------------------------------------
## wine$quality: 9
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0180 0.0210 0.0310 0.0274 0.0320 0.0350
看起来大多数葡萄酒的氯化物分布在0.03 - 0.06之间。
氯化物的含量越高,酒的评分就有越低的趋势。
与评分相关性第三高的就是游离二氧化硫占比了,来作一张散点图观察一下。
##
## Pearson's product-moment correlation
##
## data: free.sulfur.dioxide.percent and quality
## t = 14.076, df = 4896, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.1701474 0.2239834
## sample estimates:
## cor
## 0.1972141
大多数葡萄酒的游离二氧化硫占比分布在10% - 40%之间,而评分在5-7分不等。
这体现了之前表格中缺乏的相关性。
接下来,来看一下几种酸。
## quality: 3
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 4.200 6.575 7.300 7.600 8.525 11.800
## --------------------------------------------------------
## quality: 4
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 4.800 6.400 6.900 7.129 7.600 10.200
## --------------------------------------------------------
## quality: 5
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 4.500 6.400 6.800 6.934 7.400 10.300
## --------------------------------------------------------
## quality: 6
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 3.800 6.300 6.800 6.838 7.300 14.200
## --------------------------------------------------------
## quality: 7
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 4.200 6.200 6.700 6.735 7.200 9.200
## --------------------------------------------------------
## quality: 8
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 3.900 6.200 6.800 6.657 7.300 8.200
## --------------------------------------------------------
## quality: 9
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 6.60 6.90 7.10 7.42 7.40 9.10
大多数葡萄酒的固定酸分布在6-8之间,从图中并不能看到这两个变量之间有什么规律。
同样的,也很难在挥发酸、柠檬酸与评分之间找到什么联系,与一开始的相关系数呼应。
有趣的是,柠檬酸在和固定酸与挥发酸之中存在相关性。
来作一张这三个变量之间的散点图。
从图中可以看出,随着柠檬酸的含量增多,那么固定酸的含量也就相对越多。
而挥发酸则是相反地,柠檬酸含量越多,挥发酸是含量越少。
从相关系数矩阵中我们也看到了,固定酸是影响pH值的。
固定酸的含量越高,pH值就越低,葡萄酒的口感就越酸。
残糖是发酵停止之后糖的剩余量,发酵时的糖主要转化为酒精,所以这两者之间应该存在较强的负相关性。
##
## Call:
## lm(formula = residual.sugar ~ alcohol, data = wine)
##
## Residuals:
## Min 1Q Median 3Q Max
## -10.111 -3.646 -0.485 3.082 61.611
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 25.91953 0.55665 46.56 <2e-16 ***
## alcohol -1.85730 0.05258 -35.32 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.528 on 4896 degrees of freedom
## Multiple R-squared: 0.2031, Adjusted R-squared: 0.2029
## F-statistic: 1248 on 1 and 4896 DF, p-value: < 2.2e-16
残糖与酒精度之间存在相对较强的负相关度。
也就是说,发酵程度越高,酒精度就越高,残糖就越少,这是符合预期的。
通过图中也能看到,很多样本的残糖含量集中在2.5以下。
我们之前就注意到,残糖含量在2和9附近有2个巅峰值,这或许是某些酿酒工艺不同或者生产条件不同而导致的。
那么这两种不同的分组会对评分产生什么影响呢?
我们将残糖含量在3以下的分为一组,3以上的分为一组,来观察一下。
我们看到,评分中段的酒是残糖含量超过3的多一些,而得分最高的9分却是少于3的占比多。
也许残糖含量和评分并没有太直接的关系。
首先根据相关性系数矩阵,我们发现所有化学成分的相关性系数与评分之间的关系都不高。
也就是说,不仅仅是一个成分影响了评分,而应该是多个成分共同的影响。
酒精度作为酒类饮品的重要指标,它的相关度无疑是最高的。
其次就是氯化物,当酒精中氯化物含量越高,那么评分就有越低的趋势。
二氧化硫的气味不好闻,我们使用游离二氧化硫的占比来观测这一成分。
随着游离在空气中的二氧化硫含量增加,评分似乎并未受太大影响,这是出乎意料的。
柠檬酸与固定酸、挥发酸之间存在一些联系,柠檬酸越多则固定酸也越多,挥发酸则越少。
其中固定酸直接影响了葡萄酒的pH值,固定酸越多则口感越酸。
残糖与酒精度呈负相关性,残糖含量越少,则说明发酵越充分,酒精度越高。
总体来说,酒精度越高,那么评分随之也会相对较高,这两者之间应该具有最强的相关性。
但酒精度不是唯一影响评分的存在,其他化学成分也或多或少影响评分。
首先观察了残糖、酒精与评分之间的关系。
有趣的是,观察组残糖含量在3以下(less than 3)的是酒精度越高,残糖含量越高(越接近3),评分越高。
另一组含量在3以上(above 3)则是酒精度越高,残糖含量越低(也是接近3),评分越高。
也许残糖含量在3附近时可以获得较好的口感,从而获得高评分。
固定酸、pH与评分之间并没有什么直观的联系。
酒精与总体二氧化硫含量之间存在较强的负相关,说明了度数月底的酒可能需要更多的二氧化硫去防止变质。
而二氧化硫的多少似乎并不影响评分。
同样可以看到,氯化物与酒精度之间也有较强的负相关,但不足以影响评分。
最终还是发现,酒精度对于评分的影响是最高的。
其他化学成分或相互影响,或影响其他物理属性,但对于评分的影响远不及酒精度。
酒精度与残糖之间存在较强的负相关性,残糖含量越少说明发酵越充分,酒精度就越高
酒精度与氯化物之间存在较强的负相关性,但并不清楚为什么
酒精与二氧化硫总含量之间存在较强的负相关,说明了度数月底的酒可能需要更多的二氧化硫去防止变质
残糖含量越接近3,越容易获得高分
固定酸与pH存在较强的负相关性,但并不会影响评分
残糖分布是一个双峰分布,在3(g / dm^3)附近是一个分水岭。这大概是因为不同的酿造工艺所致。
通过探索我们发现了,酒精度在很大程度上影响了评分。酒精度与评分的相关系数要远高于其他成分。从上图也可以看出,多数评分低的样本的酒精度连平均水平都达不到。
虽然残糖与评分没有什么太大关系,但残糖与酒精度有很强的负相关。我们将残糖含量的多少以3(g / dm^3)进行分组,作出了残糖与酒精、评分之间的散点图。发现了残糖不论是高于还是低于3(g / dm^3),都会有不断接近3(g / dm^3)的趋势,而且越接近3(g / dm^3)时,越容易出现评分较高。或许在3(g / dm^3)左右的白葡萄酒拥有最佳的甜度。
通过对白葡萄酒的数据集进行EDA,我了解了EDA的整体流程。很多情况不是光凭想象就能得出正确结论的,而是应该通过实际数据说话。
通过EDA,我知道了酒精度最能影响葡萄酒的评分。还有其他二氧化硫、氯化物、残糖等等成分也或多或少在影响评分,但效果不足够明显。其他还发现,这些成分之间还有着各种联系。如残糖因发酵程度的关系影响了酒精度、固定酸的多少决定了pH值等等。
分析过程中也遇到了瓶颈,比如看到变量之间不相关时不知该从何入手,或者不知道有些图如何通过代码呈现。最后还是通过上网查阅各种酿酒工艺的资料,以及查阅Stack Overflow或是CSDN等资料一点点着手的。
最后,了解相关行业知识对数据分析很重要。如果能有更多相关知识,那么分析起来应该会内容更丰富,甚至可以建立预测模型了。