#红葡萄酒质量数据探究

knitr::opts_chunk$set(message = FALSE, warning = FALSE, echo = FALSE)

========================================================

# Load all of the packages that you end up using
# in your analysis in this code chunk.

# Notice that the parameter "echo" was set to FALSE for this code chunk.
# This prevents the code from displaying in the knitted HTML output.
# You should set echo=FALSE for all code chunks in your file.

library(ggplot2)
library(dplyr)
library(GGally)
library(scales)
library(memisc)
library(reshape)
library(gridExtra)
# Load the Data
wq <- read.csv('wineQualityReds.csv')

简介

本项目主要探究红葡萄酒质量数据集,目的是探究哪些化学物质影响红葡萄酒的质量。使用统计软件R探索数据。

单一变量部分

以下是数据集的一些常见统计信息:

#汇总统计
str(wq)
summary(wq)

由于我们主要探索质量,所以专门看下“质量”的情况:

summary(wq$quality)

有一些初步的观察:

  • 有1599组数据,每组数据包含13个变量。
  • x应该是标识符。
  • 质量是结果,分为0-10级,至少由3名专家评选,值从3到8,平均值5.6,中位数是6。
#规范数据集的质量数据,试制更易于后期绘图
wq$quality <- factor(wq$quality, ordered = T)

table(wq$quality)

以下是12个变量的直方图,对数据有个直观感受:

qplot(wq$quality)
             

因为主要分析的就是影响葡萄酒质量的因素,所以首先看一下葡萄酒质量的分布状况。
可以看出:葡萄酒质量评分分布在3-8,绝大部分分布在5和6,整体有正态分布的趋势。

qplot(wq$fixed.acidity)

fixed.acidity固定酸度图形也有点正太分布,但是跟质量曲线区别较大,这个偏向左侧。
可能跟质量有一定关系;

qplot(wq$volatile.acidity)

volatile.acidity挥发酸度图形也有点正太分布,但是跟质量曲线区别较大,偏向左侧。
跟固定酸度应该有挺大关系,可能跟质量也有一定关系,需要进一步探究;

qplot(wq$citric.acid)

citric.acid柠檬酸的趋势不明显,严重偏向左侧,但是不连续,跟同是酸类的 固定酸度和挥发性酸度 图形区别较大;
数据可能是缺失或者有问题;

qplot(wq$residual.sugar)

residual.sugar残余糖分图形集中度较好,集中在1-3,且有些较大的离散值,与质量曲线差异较大,应该关联不大;

qplot(wq$chlorides)

chlorides氯化物图形集中度较好,集中在0.05--0.12,且有些较大的离散值,与质量曲线差异较大,应该关联不大;

qplot(wq$free.sulfur.dioxide)

free.sulfur.dioxide游离二氧化硫整体偏向左侧,且数据不连续,与质量曲线差异较大,应该关联不大;

qplot(wq$total.sulfur.dioxide)

total.sulfur.dioxide总二氧化硫图形整体严重偏向左侧,与质量曲线差异较大,应该关联不大;

qplot(wq$density)

density密度图形整体符合正态分布,与质量图形非常相似,需要重点探究,应该与质量关联较大;

qplot(wq$pH)

ph图形整体符合正态分布,与质量图形非常相似,需要重点探究,应该与质量关联较大;

qplot(wq$sulphates)

sulphates硫酸盐图形整体有正态分布的趋势,但是严重偏向左侧,且有大量长尾数据,估计跟质量有些关联,但是应该不是强关联,需要进一步探究;

qplot(wq$alcohol)

alcohol酒精图形整体偏向左侧,与质量曲线差异较大,应该关联不大;

小结:
  • 查看这些直方图,发现 密度,ph 与 质量的图形很相似,似乎有些关联;
  • 其他的图形一般都偏向左侧;
  • 这是第一步猜想,需要进一步探究;

单变量分析

您的数据集的结构是什么?

有13个变量组成的1599个数据;
x是唯一标识符;
其他12个变量是:fixed.acidity, volatile.acidity, citric.acid, residual.sugar, chlorides, free.sulfur.dioxide, total.sulfur.dioxide, density, pH, sulphates, alcohol, quality;

数据集中的主要变量是什么?

最主要的变量是 quality质量,也是这次分析的主要目标;
得分从0-10,大部分数据集中在5-6,分布接近正态分布;

What other features in the dataset do you think will help support your investigation into your feature(s) of interest?

从直方图可知,density和pH跟质量图形非常相似;
Fixed、volatile acidity、free and total sulphur dioxide、sulphates、alcohol图形是偏斜而且长尾的;

Did you create any new variables from existing variables in the dataset?

新建立了一个指标“rating”:质量评级,把葡萄酒质量分为优质“good”(质量分7-10)、均质“average”(质量分5-6)、差“bad”(质量分0-4)

wq$rating <- ifelse(wq$quality < 5, 'bad', ifelse(
  wq$quality < 7, 'average', 'good'))

wq$rating <- ordered(wq$rating,
                     levels = c('bad', 'average', 'good'))
summary(wq$rating)

qplot(wq$rating)

Of the features you investigated, were there any unusual distributions? Did you perform any operations on the data to tidy, adjust, or change the form of the data? If so, why did you do this?

citric acid的分布不太正常,因为与同是酸度的fixed acidity 和 volatile acidity的分布不一致,后2个分布符合ph的正态分布;
citric acid 应该是缺失了大量数据,或者部分数据不可用导致,具体可以看下图:

grid.arrange(ggplot(aes(fixed.acidity), data = wq) +
               geom_histogram() + scale_x_log10(),
             ggplot(aes(volatile.acidity), data = wq) +
               geom_histogram() + scale_x_log10(),
             ggplot(aes(citric.acid), data = wq) +
               geom_histogram() + scale_x_log10(),
             ncol = 1 )

Bivariate Plots Section

箱线图


ggplot(aes(rating, fixed.acidity), data = wq) +
  geom_jitter( alpha = 0.3)  +
  geom_boxplot( alpha = 0.5)

图中可以看到,随着葡萄酒质量评级的提高,fixed acidity随着提高,说明很可能fixed acidity跟质量是正相关的;


ggplot(aes(rating, volatile.acidity), data = wq) +
  geom_jitter( alpha = 0.3)  +
  geom_boxplot( alpha = 0.5)

图中可以看到,随着葡萄酒质量评级的提高,volatile acidity随着规律性的降低,说明很可能volatile acidity 跟质量是 负相关的;


ggplot(aes(rating, citric.acid), data = wq) +
  geom_jitter( alpha = 0.3)  +
  geom_boxplot( alpha = 0.5)+
  coord_cartesian(ylim = c(0, 0.85))

图中可以看到,随着葡萄酒质量评级的提高,citric acid随着提高,说明很可能citric acid跟质量是正相关的;


ggplot(aes(rating, residual.sugar), data = wq) +
  geom_jitter( alpha = 0.3)  +
  geom_boxplot( alpha = 0.5)+
  coord_cartesian(ylim = c(1, 6))

排除了较大的离散值后,从图中可以看到,随着葡萄酒质量评级的提高,residual sugar也同样升高,但是趋势不太明显,而且还是有很多离散值存在,说明residual sugar可能与葡萄酒质量之间有正相关性,但相关强度应该不大;


ggplot(aes(rating, chlorides), data = wq) +
  geom_jitter( alpha = 0.3)  +
  geom_boxplot( alpha = 0.5)+
  coord_cartesian(ylim = c(0.025, 0.12))

排除较大的离散值后,从图中可以看到,随着葡萄酒质量评级的提高,chlorides含量先升后降,没有明显的规律性变化,说明很可能chlorides与葡萄酒质量之间并没有较强相关性;


ggplot(aes(rating, free.sulfur.dioxide), data = wq) +
  geom_jitter( alpha = 0.3)  +
  geom_boxplot( alpha = 0.5)+
  coord_cartesian(ylim = c(0, 60))

图中可以看到,随着葡萄酒质量评级的提高,residual sugar先变大后变小,没有规律性变化,说明很可能residual sugar与葡萄酒质量之间并没有相关性;


ggplot(aes(rating, total.sulfur.dioxide), data = wq) +
  geom_jitter( alpha = 0.3)  +
  geom_boxplot( alpha = 0.5)+
  coord_cartesian(ylim = c(0, 180))

图中可以看到,随着葡萄酒质量评级的提高,total sulfur dioxide先变大后变小,没有规律性变化,说明很可能total sulfur dioxide与葡萄酒质量之间并没有相关性;


ggplot(aes(rating, density), data = wq) +
  geom_jitter( alpha = 0.3)  +
  geom_boxplot( alpha = 0.5)

图中可以看到,随着葡萄酒质量评级的提高,density先变大后变小,没有规律性变化,说明很可能total sulfur dioxide与葡萄酒质量之间并没有相关性;
单变量分析中,以为density跟质量有较大关联,现在看来并没有;


ggplot(aes(rating, pH), data = wq) +
  geom_jitter( alpha = 0.3)  +
  geom_boxplot( alpha = 0.5)

图中可以看到,随着葡萄酒质量评级的提高,pH 随着规律性的降低,说明很可能pH 跟质量是 负相关的


ggplot(aes(rating, sulphates), data = wq) +
  geom_jitter( alpha = 0.3)  +
  geom_boxplot( alpha = 0.5)+
  coord_cartesian(ylim = c(0.25, 1.8))

图中可以看到,随着葡萄酒质量评级的提高,sulphates随着提高,说明很可能sulphates跟质量是正相关的;


ggplot(aes(rating, alcohol), data = wq) +
  geom_jitter( alpha = 0.3)  +
  geom_boxplot( alpha = 0.5)

图中可以看到,随着葡萄酒质量评级的提高,alcohol随着提高,说明很可能alcohol 跟质量是正相关的;

小结:
  • 好像 fixed acidity, citric acid, sulphates , alcohol 跟质量是正相关的;
  • volatile acidity , pH 跟质量是 负相关的;
  • density跟单变量分析结果不同,似乎不起作用;

相关性

corr <- NULL

for (i in names(wq)){
  corr[i] <- cor.test(as.numeric(wq[,i]), 
                      as.numeric(wq$quality))$estimate
  }

corr

以下的变量与葡萄酒质量相关性较高:

  • alcohol: 47.6%
  • sulphates : 25.1%
  • citric acid: 22.6%
  • fixed acidity: 12.4%
  • volatile acidity: -39.1%
  • density: -17.5%

Bivariate Analysis

Talk about some of the relationships you observed in this part of the investigation. How did the feature(s) of interest vary with other features in the dataset?

从箱线图中可以看出,fixed acidity, citric acid, sulphates , alcohol
与葡萄酒质量直接相关,volatile acidity , pH 跟质量是负相关的。
从相关性测试中,观察到类似的趋势;

Did you observe any interesting relationships between the other features (not the main feature(s) of interest)?

sulfur dioxide(二氧化硫)有点意思,与total 和free sulfur dioxide 高度相关,很容易理解,但是它们却跟 sulphates(硫酸盐) 不相关。

What was the strongest relationship you found?

与质量的关系(相关性)强弱的是这些:

  • alcohol: 47.6%
  • sulphates : 25.1%
  • citric acid: 22.6%
  • fixed acidity: 12.4%
  • volatile acidity: -39.1%
  • density: -17.5%

Multivariate Plots Section

主要研究与质量相关的4个特征:alcohol,sulphates,citric.acid,volatile.acidity

  
ggplot(aes(x = citric.acid, y = volatile.acidity, color = factor(quality)), data = wq) +
  geom_jitter(alpha = 0.2) +
  scale_color_brewer(palette = "Blues") +
  geom_smooth(method = "lm", se = FALSE,size=1) +
  labs(y = 'volatile.acidity',x = 'citric.acid') +
  ggtitle("Volatile.acidity  VS  Citric.acid VS  quality") 

ggplot(aes(x = alcohol, y = log10(sulphates), color = factor(quality)), data = wq) +
  geom_jitter(alpha = 0.2) +
  scale_color_brewer(palette = "Blues") +
  geom_smooth(method = "lm", se = FALSE,size=1) +
  labs(y = 'log10(sulphates)',x = 'alcohol') +
  ggtitle("Log10(sulphates)  VS  Alcohol VS  quality")

ggplot(aes(x = pH, y = alcohol, color = factor(quality)), data = wq) +
  geom_jitter(alpha = 0.2) +
  scale_color_brewer(palette = "Blues") +
  geom_smooth(method = "lm", se = FALSE,size=1) +
  labs(y = 'alcohol',x = 'pH') +
  ggtitle("Alcohol  VS  PH VS  quality")

Multivariate Analysis

Talk about some of the relationships you observed in this part of the investigation. Were there features that strengthened each other in terms of looking at your feature(s) of interest?

多变量图,通过把质量分数分图,通过3个评级类别进行分析,可以看到,较高的alcohol, sulphates, citric acid, fixed acidity,较低的volatile acidity可以产生更高质量的葡萄酒。

Were there any interesting or surprising interactions between features?

ph对质量的影响很小,这个很意外;

OPTIONAL: Did you create any models with your dataset? Discuss the strengths and limitations of your model.

no


Final Plots and Summary

Plot One:acid 影响葡萄酒质量

grid.arrange(ggplot(data = wq, aes(x = quality, y = fixed.acidity, fill = quality)) +
               scale_fill_brewer(palette = "Blues")+
               xlab('Quality') +
               ylab('Fixed Acidity') +
               geom_boxplot(),
             ggplot(data = wq, aes(x = quality, y = volatile.acidity, fill = quality)) +
               scale_fill_brewer(palette = "Blues")+
               xlab('Quality') +
               ylab('Volitile  Acidity') +
               geom_boxplot(),
             ggplot(data = wq, aes(x = quality, y = citric.acid, fill = quality)) +
               scale_fill_brewer(palette = "Blues")+
               xlab('Quality') +
               ylab('Citric Acidity') +
               geom_boxplot(),
             ggplot(data = wq, aes(x = quality, y = pH, fill = quality)) +
               scale_fill_brewer(palette = "Blues")+
               xlab('Quality') +
               ylab('PH') +
               geom_boxplot())
               

Description One

  • 这些图是为了说明酸和ph对葡萄酒质量的影响;
  • 一般来说,高质量的葡萄酒有较高的酸acid或更低的ph;
  • 其中柠檬酸citric acid 的影响更大,固定酸fixed acid 影响较小;
  • 但是,挥发性酸volatile acidity不利于葡萄酒质量;

Plot Two:Alcohol影响葡萄酒质量

ggplot(data = wq, aes( x = quality, y = alcohol, fill = rating)) +
  geom_boxplot() +
  scale_fill_brewer(palette = "Blues")+
  xlab('Alcohol') +
  ylab('Volatile Acidity')
  
         

Description Two

  • 这里想说明酒精alcohol对葡萄酒质量的影响;
  • 一般来说,高质量葡萄酒含有较高的酒精含量,但是单独看酒精对质量的影响并不是那么强;

Plot Three 究竟什么影响葡萄酒质量

ggplot(data = subset(wq, rating != 'average'),
       aes(x = alcohol, y = volatile.acidity, color = rating)) +
  geom_point() +
  xlab('Alcohol') +
  ylab('Volatile Acidity')


Description Three

图中去掉了 中级葡萄酒的影响,也没有采用以上通用的渐变色表达,因为渐变色不明显,看不清楚,现在可以更明显的看到:

  • 高酒精含量alcohol 和 低挥发性酸度volatile acid 组合起来,可以产生更优质的葡萄酒;

Reflection

对红酒质量数据集的探索性数据分析很有意思,此数据集也比较适合,数据大小适中,规律相对比较明显;
单变量分析时,对各变量都进行了探索,ph,密度,固定酸度,挥发性酸度,硫酸盐,酒精。
后来双变量分析时越来越清晰,
最后多变量分析时,明确了高酒精含量 和 低挥发性酸度,对葡萄酒质量影响非常大;

挫折或成功:在单变量分析时,以为密度会对葡萄酒质量有较大的关联,但是通过双变量分析,发现并没有神马关系,
考虑问题还是要多一个维度,会更加的客观,发现真相。

提议:可以收集白酒和其他酒类的相关影响因素数据,看看是否影响酒类的因素都是一样的,这样对酒类的了解就更加全面了,也有利于指导酒类生产;

有一点也需要说明,这个质量的评级是有主观性的,所以这里的结论也只是一个有趣的观点和视角,
不完全代表影响葡萄酒质量的真实原因。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 观察其变量。 整个数据集有13个变量,1599个观察值。 单变量分析 红葡萄酒分布在最好和最差的比较少,而分布在中...
    汤尧阅读 4,328评论 15 6
  • 北京又要開始下雨了 外面雷聲響起 明天還要繼續 那雨聲好像漸漸近了 果然 我在北京這邊 暴風雨來了 雷電交加 雨聲...
    哈皮皮皮阅读 136评论 0 0
  • 人来人往,芸芸众生,或许我们只是擦肩而过,倘若是偶尔的回眸,那便是不浅的缘份了。此人此事,无关风花雪月,...
    云泉山阅读 2,026评论 0 5
  • 一只大灰狼,在奋力追一只小绵羊,眼看着小绵羊已经没有路可以跑了,小绵羊绝望了,突然停下来,回过头,看着大灰狼。大灰...
    阿全不会文字阅读 611评论 0 2
  • 1.多管闲事的男生为女生以后嫁不出去所担忧,却忘记她们根本不会嫁给他们,甚至不会多看他们一眼。一群人为另外一群根本...
    维纳斯的丘比特阅读 133评论 0 1