-
Notifications
You must be signed in to change notification settings - Fork 0
/
red-wine-data.Rmd
757 lines (543 loc) · 30.1 KB
/
red-wine-data.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
---
output:
html_document: default
pdf_document: default
---
RED WINE DATA by Paula Hwang
========================================================
This report explores a dataset containing quality and attributes for approximately 1600 wines.
#Loading the csv file
```{r echo=FALSE, message=FALSE, warning=FALSE, packages}
knitr::opts_chunk$set(fig.width=9,fig.height=5,fig.path='Figs/',
fig.align='center',tidy=TRUE,
echo=FALSE,warning=FALSE,message=FALSE)
getwd()
setwd('C:\\Users\\Alexander Smith\\Desktop\\wine-data')
df <- read.csv('C:\\Users\\Alexander Smith\\Desktop\\Red_Wine\\wineQualityReds.csv')
library(ggplot2)
```
Our dataset consists of 13 variables, with almost 1599 observations.
####Display variables and observations
```{r echo=FALSE,warning=FALSE,message=FALSE, Load_the_Data}
# Load the Data
dim(df)
```
####Display the summary of the data
```{r echo=FALSE,warning=FALSE,message=FALSE, Load_the_summary1}
# Load the Data
str(df)
```
####Display a summary another way
```{r echo=FALSE,warning=FALSE,message=FALSE, Load_the_summary2}
summary(df)
```
# Univariate Plots Section
> **Tip**: In this section, you should perform some preliminary exploration of
your dataset. Run some summaries of the data and create univariate plots to
understand the structure of the individual variables in your dataset. Don't
forget to add a comment after each plot or closely-related group of plots!
There should be multiple code chunks and text sections; the first one below is
just to help you get started.
```{r echo=FALSE, Univariate_Plots}
```
> **Tip**: Make sure that you leave a blank line between the start / end of
each code block and the end / start of your Markdown text so that it is
formatted nicely in the knitted text. Note as well that text on consecutive
lines is treated as a single space. Make sure you have a blank line between
your paragraphs so that they too are formatted for easy readability.
# Univariate Analysis
***A** First, I made a plot to find out what it looks like as a plot.
I decided to pick quality for the univariate Analysis.
source: https://stackoverflow.com/questions/38788357/change-bar-plot-colour-in-geom-bar-with-ggplot2-in-r
####Plot a histogram
```{r echo=FALSE, message=FALSE, warning=FALSE}
qplot(x = quality, data = df, binwidth = 1, colour=I("black"), fill = I("lightblue")) +
scale_x_continuous(breaks = seq(0,10,1), limits = c(0,10))
```
Because my plot looks slightly skewed, I plan to transform it into a normal distribution. I have two options: sqrt or log.
*source: https://stats.stackexchange.com/questions/74537/log-or-square-root-transformation-for-arima
***B)** This is my attempt of using sqrt to transform into a normal distribution. It looks slightly normal.
####Plot the histogram by adding scale_y_sqrt()
```{r echo=FALSE,warning=FALSE,message=FALSE, Load_Data}
qplot(x = quality, data = df, binwidth = 1,colour=I("black"), fill = I("lightblue")) +
scale_x_continuous(breaks = seq(0,10,1), limits = c(0,10))+
scale_y_sqrt()
```
***C** This is my attempt of using log10 to transform into a normal distribution. It looks like a perfect normal distribution.
####Plot a histogram with log10
```{r echo=FALSE,message=FALSE, warning=FALSE, Univariate-log10-normal-distribution }
qplot(x = quality, data = df, binwidth = 1, colour=I("black"), fill = I("lightblue")) +
scale_x_continuous(breaks = seq(0,10,1), limits = c(0,10))+
scale_y_log10()
```
### What is the structure of your dataset?
- Our dataset consists of 13 variables, with almost 1599 observations.
For more information, read [Cortez et al., 2009].
Input variables (based on physicochemical tests):
1 - fixed acidity (tartaric acid - g / dm^3)
2 - volatile acidity (acetic acid - g / dm^3)
3 - citric acid (g / dm^3)
4 - residual sugar (g / dm^3)
5 - chlorides (sodium chloride - g / dm^3
6 - free sulfur dioxide (mg / dm^3)
7 - total sulfur dioxide (mg / dm^3)
8 - density (g / cm^3)
9 - pH
10 - sulphates (potassium sulphate - g / dm3)
11 - alcohol (% by volume)
Output variable (based on sensory data):
12 - quality (score between 0 and 10)
####Display the dimmensions of an Object like in the begining
```{r echo=FALSE,warning=FALSE,message=FALSE, dataset}
dim(df)
```
### What is/are the main feature(s) of interest in your dataset?
- My main feature of interest is the quality of the wine.
### What other features in the dataset do you think will help support your \
investigation into your feature(s) of interest?
- I believe that that I am interesting in all the variables such as volatile.acidity, residual.sugar, free.sulfur.dioxide, density, sulphates, fixed acidity, citric-acid, chlorides, pH, and alcohol.
###Plotting each variable in histogram in univariate experimentation way
```{r message = FALSE, warning = FALSE, echo = FALSE, fig.height=7, fig.width=9}
library(grid)
library(gridExtra)
p1 <- qplot(x = volatile.acidity,data = df)
p2 <- qplot(x = residual.sugar,data = df)
p3 <- qplot(x = free.sulfur.dioxide, data = df)
scale_x_continuous(breaks = seq(0, 50, 5))
p4 <- qplot(x = density, data = df) +
scale_y_continuous(breaks = seq(0, 200, 30))
p5 <- qplot(x = sulphates, data = df)
p6 <-qplot(x = fixed.acidity, data = df)
p7 <- qplot(x = citric.acid, data = df)
p8 <- qplot(x = chlorides, data = df)
p9 <- qplot(x = total.sulfur.dioxide, data = df)
p10 <- qplot(x = pH, data = df)
p11 <- qplot(x = alcohol, data = df)
grid.arrange(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, ncol = 3)
```
#####Here I have categorized each plots
- Right-Skewed: alcohol, citric acid, sulphates, Free sulfur dioxide, Fixed acidity, Total sulfur, chlorides
- Symetric: density, PH, volatile.acidity, fixed acidity
### Did you create any new variables from existing variables in the dataset?
Yes, I did create new variables to assembled all the plots in one box to faciliate my observations.
### 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?
I used the log10 or squrt by transforming my plots into a normal distribution. I am going to quote from r-statistics.com to explain why I made them normal. "The need for data transformation can depend on the modeling method that you plan to use. For linear and logistic regression, for example, you ideally want to make sure that the relationship between input variables and output variables is approximately linear, that the input variables are approximately normal in distribution, and that the output variable is constant variance (that is, the variance of the output variable is independent of the input variables). You may need to transform some of your input variables to better meet these assumptions."
source: https://www.r-statistics.com/2013/05/log-transformations-for-skewed-and-wide-distributions-from-practical-data-science-with-r/
------------------------------------
# Bivariate Plots Section
I am going to use scatterplots to check the relationship between two variables.
#loading the libraries
```{r echo=FALSE, message=FALSE, warning=FALSE}
library('GGally')
library('scales')
library('memisc')
library("lattice")
```
GGpairs can be useful for exploring the
relationships between several columns of data in a data frame
source: https://stackoverflow.com/questions/45044157/how-do-you-add-jitter-to-a-scatterplot-matrix-in-ggpairs
```{r echo=FALSE, Bivariate_Plots,message=FALSE, warning=FALSE, fig.width=20, fig.height=20}
#I'm going to ggpairs 13 columns
ggpairs(df, columns = 2:13)
```
-Also, the citric acid do have connection to pH and density.
-The ones that are little bit closer to citric acid are volatile acidity and fixed acidity. --Meaning, they are probably in relationship.
First, I need to double check by adding red line or linear regression to see the connection connection between two supportive variables.
####I am comparing pH and density.
Density goes down while ph goes up... I am surprized that they are look very different to each other. I expected them to have a positive correlation because they have normal plots. This plot goes to an opposite dirrection.
#Create a scatterplors to check two variables: ph and density
```{r echo=FALSE, message=FALSE, warning=FALSE}
df$quality <- factor(df$quality)
ggplot(data = df, aes(x = pH, y = density))+
geom_jitter()+
coord_cartesian(ylim = c(0.985, 1.0))+
scale_color_brewer(type= 'seq')+
geom_smooth(method = 'lm',color = 'red')+
theme_dark() +
labs(x = 'pH',
y = 'density(g/cm^3)',
title= "Alcohol Vs density")
```
Comparing ph and citric acid, it goes down.
#Create a scatterplots between citric acid and pH
```{r echo=FALSE, message=FALSE, warning=FALSE}
df$quality <- factor(df$quality)
ggplot(data = df, aes(x = pH, y = citric.acid))+
geom_jitter()+
coord_cartesian(ylim = c(0.0, 1.0))+
scale_color_brewer(type= 'seq')+
geom_smooth(method = 'lm',color = 'red')+
theme_dark() +
labs(x = 'pH',
y = 'citric acid',
title= "ph Vs citric acid")
```
Despite that density and Ph are both normal...; it looks different to citric acid ---comparing to pH and citric acid (check my previous plot).
#Create a scatterplots between citric acid and density
```{r echo=FALSE, message=FALSE, warning=FALSE}
df$quality <- factor(df$quality)
ggplot(data = df, aes(x = citric.acid, y = density))+
geom_jitter()+
coord_cartesian(ylim = c(0.985, 1.02))+
scale_color_brewer(type= 'seq')+
geom_smooth(method = 'lm',color = 'red')+
theme_dark() +
labs(x = 'citric acid',
y = 'density(g/cm^3)',
title= "Citric Acid Vs Density")
```
Here is the relationship between fixed acidity and ph. It is falling down slightly.
#Create a scatterplots between ph and fixed acidity
```{r echo=FALSE, message=FALSE, warning=FALSE}
df$quality <- factor(df$quality)
ggplot(data = df, aes(x = fixed.acidity, y = pH))+
geom_jitter()+
coord_cartesian(ylim = c(0.5, 5))+
scale_color_brewer(type= 'seq')+
geom_smooth(method = 'lm',color = 'red')+
theme_dark() +
labs(x = 'fixed.acidity',
y = 'pH',
title= "Fixed Acidity Vs. pH")
```
Alright, I am going to compare fixed acidity and citric.acid. They are SO connected to each other. Definately a positive one.
#Create a scatterplots between citric acid and fixed acidity
```{r echo=FALSE, message=FALSE, warning=FALSE}
df$quality <- factor(df$quality)
ggplot(data = df, aes(x = fixed.acidity, y = citric.acid))+
geom_jitter()+
coord_cartesian(ylim = c(0.0, 1))+
scale_color_brewer(type= 'seq')+
geom_smooth(method = 'lm',color = 'red')+
theme_dark() +
labs(x = 'Fixed Acidity',
y = 'Citric Acid',
title= "Fixed Acidity Vs. Citric Acid")
```
Next, I am going to plot volatile.acid and fixed.acidity. It definately feels like it is going down.
#Create a scatterplots between fixed acidity and volatile acidity
```{r echo=FALSE, message=FALSE, warning=FALSE}
df$quality <- factor(df$quality)
ggplot(data = df, aes(x = fixed.acidity, y = volatile.acidity ))+
geom_jitter()+
coord_cartesian(ylim = c(0.0, 1))+
scale_color_brewer(type= 'seq')+
geom_smooth(method = 'lm',color = 'red')+
theme_dark() +
labs(x = 'Fixed Acidity',
y = 'Volatile Acidity',
title= "Fixed Acidity Vs. Volatile Acidity")
```
Let's see how it looks like with pH and volatile.acidity. It definiately looks positive because it is escalating.
#Create a scatterplots between ph and volatile acidity
```{r echo=FALSE, message=FALSE, warning=FALSE}
df$quality <- factor(df$quality)
ggplot(data = df, aes(x = pH, y = volatile.acidity))+
geom_jitter()+
coord_cartesian(ylim = c(0.0, 1))+
scale_color_brewer(type= 'seq')+
geom_smooth(method = 'lm',color = 'red')+
theme_dark() +
labs(x = 'pH',
y = 'Volatile Acidity',
title= "pH Vs. Volatile Acidity")
```
Next, I am going to compare volatile.acidity and density...It looks like to me there is slightly increase from this plot.
# #Create a scatterplots between density and volatile acidity
```{r echo=FALSE, message=FALSE, warning=FALSE}
df$quality <- factor(df$quality)
ggplot(data = df, aes(x = density, y = volatile.acidity))+
geom_jitter()+
coord_cartesian(ylim = c(0.0, 1))+
scale_color_brewer(type= 'seq')+
geom_smooth(method = 'lm',color = 'red')+
theme_dark() +
labs(x = 'Density',
y = 'Volatile Acidity',
title= "Density Vs. Volatile Acidity")
```
This is how I categorized visually based on my previous plots.
#####Positive correlation: (3 pos)
density & citric. acidity, citric & fixed acidity, volatile. acidity & pH, density & volatile acidity.
#####Negative correlation: (4 neg)
pH & density, pH & citric acidity, pH & fixed acidity, volatile.acidity & fixed acidity.
-----------------
Another way to verify if they are negative or positive correlation. I am using a cor.test in programming.
#Check the correlation between two varriables and categorize them between negative and postive
```{r echo=FALSE, message=FALSE, warning=FALSE}
#negative:
cor.test(df$pH, df$density, method = 'pearson')
cor.test(df$pH, df$citric.acid, method = 'pearson')
cor.test(df$pH, df$fixed.acidity, method = 'pearson')
cor.test(df$fixed.acidity, df$volatile.acidity, method = 'pearson')
#positive:
cor.test(df$pH, df$volatile.acidity, method = 'pearson')
cor.test(df$density, df$citric.acid, method = 'pearson')
cor.test(df$pH, df$volatile.acidity, method = 'pearson')
```
Again the negative correlarion by using Pearson method in programming are:
- ph & density
- ph & citrict acid
- ph & fixed acidity
- fixed acidity & volatile-acidity
The positive correlation would be:
-ph & volatile
-density & fixed acidity
-----------------------------------
-I am going to use ggcorr as an another method to check the relationshipness between two variables.
#create another correlation table to check the relationship between two variables
```{r echo=FALSE, message=FALSE, warning=FALSE, fig.width= 20, fig.height = 20}
ggcorr(df,
method= c("all.obs", "spearman"),
nbreaks = 4, label = TRUE,
name = "Spearman Correlation Coeff Matrix",
hjust= 0.8, angle = -70, size = 5)+
ggtitle("Spearman Correlation coefficient Matrix")
```
I guess this method is easier because you can see that the bright red color is indicating the strongest relationship between two variables.These indicate the list of strongest relationship.
1. Free sulfur dioxide & total sulfur dioxide
2. Fixed acidity & Citric Adid
3. density & fixed acidity
I always thought that ph and density would be in the list. Turns out that their relationship is not the strongest. I need to keep my eyes on the fixed acidity,
##### Checking out the boxplots
--> Quality of Wine and other variables in boxplots
This time I am going to explore the data by displaying the scatterplots. My main variable of my interest would be the quality of the wine. I am going to observe the quality of the wine along with all other variables. The question is what makes a red wine a good quality? or what define a good quality of the red wine?
#Now create the boxplots for each variables + quality
```{r echo=FALSE, message=FALSE, warning=FALSE, fig.width= 20, fig.height = 20}
Q_A<- ggplot(data = df, aes(x= factor(quality), y = alcohol))+
geom_jitter(alpha = 1/10)+
geom_boxplot(alpha = 1/10, color = 'blue')+
stat_summary(fun.y = 'mean', geom = 'point', color = 'red')+
labs(x = 'Quality (score between 3 and 9)',
y = 'Alcohol (% by volume)',
title = 'Boxplot of alcohol across qualities')
Q_S <- ggplot(data = df, aes(x= factor(quality), y = sulphates))+
geom_jitter(alpha = 1/10)+
geom_boxplot(alpha = 1/10, color = 'blue')+
stat_summary(fun.y = 'mean', geom = 'point', color = 'red')+
labs(x = 'Quality (score between 3 and 9)',
y = 'sulphates (potassium sulphate - g / dm3)',
title = 'Boxplot of sulphates across qualities')
Q_C <- ggplot(data = df, aes(x= factor(quality), y = citric.acid))+
geom_jitter(alpha = 1/10)+
geom_boxplot(alpha = 1/10, color = 'blue')+
stat_summary(fun.y = 'mean', geom = 'point', color = 'red')+
labs(x = 'Quality (score between 3 and 9)',
y = 'citric acid (g / dm^3)',
title = 'Boxplot of Citric Acid across qualities')
Q_FA <- ggplot(data = df, aes(x= factor(quality), y = fixed.acidity))+
geom_jitter(alpha = 1/10)+
geom_boxplot(alpha = 1/10, color = 'blue')+
stat_summary(fun.y = 'mean', geom = 'point', color = 'red')+
labs(x = 'Quality (score between 3 and 9)',
y = 'fixed acidity (tartaric acid - g / dm^3)',
title = 'Boxplot of Fixed Acidity across qualities')
Q_VA <- ggplot(data = df, aes(x= factor(quality), y = volatile.acidity))+
geom_jitter(alpha = 1/10)+
geom_boxplot(alpha = 1/10, color = 'blue')+
stat_summary(fun.y = 'mean', geom = 'point', color = 'red')+
labs(x = 'Quality (score between 3 and 9)',
y = 'volatile acidity (acetic acid - g / dm^3)',
title = 'Boxplot of Volitle Acidity across qualities')
Q_P <- ggplot(data = df, aes(x= factor(quality), y = pH))+
geom_jitter(alpha = 1/10)+
geom_boxplot(alpha = 1/10, color = 'blue')+
stat_summary(fun.y = 'mean', geom = 'point', color = 'red')+
labs(x = 'Quality (score between 3 and 9)',
y = 'pH',
title = 'Boxplot of pH across qualities')
Q_D <- ggplot(data = df, aes(x= factor(quality), y = density))+
geom_jitter(alpha = 1/10)+
geom_boxplot(alpha = 1/10, color = 'blue')+
stat_summary(fun.y = 'mean', geom = 'point', color = 'red')+
labs(x = 'Quality (score between 3 and 9)',
y = 'density (g / cm^3)',
title = 'Boxplot of density across qualities')
Q_TSD <- ggplot(data = df, aes(x= factor(quality), y = total.sulfur.dioxide))+
geom_jitter(alpha = 1/10)+
geom_boxplot(alpha = 1/10, color = 'blue')+
stat_summary(fun.y = 'mean', geom = 'point', color = 'red')+
labs(x = 'Quality (score between 3 and 9)',
y = 'total sulfur dioxide (mg / dm^3)',
title = 'Boxplot of total sulfur dioxide across qualities')
Q_RS <- ggplot(data = df, aes(x= factor(quality), y = df$residual.sugar))+
geom_jitter(alpha = 1/10)+
geom_boxplot(alpha = 1/10, color = 'blue')+
stat_summary(fun.y = 'mean', geom = 'point', color = 'red')+
labs(x = 'Quality (score between 3 and 9)',
y = 'Residual~Sugar~(g/dm^3)',
title = 'Boxplot of residual sugar across qualities')
grid.arrange(Q_A,Q_S,Q_C,Q_FA,Q_VA,Q_P,Q_D,Q_TSD,Q_RS,ncol = 3)
```
I am going to classify based on the previous observations.All these tiny dots will represent the quality of the wine and remain the same.
1. The quality of the wine gets better if we add more alcohol.
2. I am suprized that we need to add more sulphates to improve the quality of the wine.
3. The more I add Citric acid, the better quality the wine will be.[This is the one that I need to keep my eyes on this variable.]
4. The wine gets better with slight increase of the fixed acidity.
5. The quality is falling down when the volatile acidity is increased.
6. The quality of the wine gets better when Ph goes up.
7. The quality of the wine degrades when density goes up.
8. Total Sulfur dioxids lowers the quality of the wine.
9.Residual sugar does not change the quality of the wine --no matter how much ammount you add sugar.
# 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?
source: https://www.emathzone.com/tutorials/basic-statistics/positive-and-negative-correlation.html#ixzz5OmFgYWlq
After observing the table, I see two similarity between density & citric acid and pH & citrict acid. They both have normal looking (symmetrical) plot. I have expected that these variables may have the strongest relationship.
After testing each different methods by plotting the variables with red line, in Pearson method of finding correlation, and in spearman correlation method --it turns out that
-the fixed acidity & density,
-Free sulfur dioxide & total sulfur dioxide,
-and fixed acidity & citric acid
have the strongest relationship.
Therefore, my expectation is wrong.
### Did you observe any interesting relationships between the other features \
###(not the main feature(s) of interest)?
I have compared the ph, density, citric.accidity, and others variables that might seem to be correlated to each other.
### What was the strongest relationship you found?
The List of the strongest relationship:
1. Free sulfur dioxide & total sulfur dioxide
2. Fixed acidity & Citric Adid
3. density & fixed acidity
--------------------------------
# Multivariate Plots Section
#Load another tables
```{r echo=FALSE,message=FALSE, warning=FALSE, Multivariate_Plots}
library(ggthemes)
library(reshape2)
library(RColorBrewer)
```
# 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?
During my investigation, the variables that i have been observing would be density, alcohol, sulphates and quality of the wine.
According to my previous investigation, I am already aware that adding more alcohol would improve the quality of the wine. I am going to attempt to correlate with density (--a slight increase of the density would makes the quality of the wine worse). Because I am curious. I want to check the relationship between the density, alcohol, and quality.
We could conclude that adding less density, more alcohol could improve the overall the quality of the wine. There is no contradiction from the Bivariate examination.
#Create scatterplots with colored variable
```{r echo=FALSE, message=FALSE, warning=FALSE}
ggplot(data = df, aes(y = density, x = alcohol, color = quality)) +
geom_point() +
scale_fill_gradient(low="lightblue",high="darkgreen")+
geom_smooth(method = 'lm',color = 'red')
```
Next one looks like a positive correlation...It means that the slight of the increase of the sulphites and alcohol could make better quality. THerefore, there is no contradiction.
#Create scatterplots with colored variable
```{r echo=FALSE, message=FALSE, warning=FALSE}
ggplot(data = df,
aes(y = sulphates, x = alcohol,
color = quality)) +
geom_point() +
scale_y_continuous(limits=c(0.3,1.5)) +
scale_fill_gradient(low="lightblue",high="darkgreen")+
geom_smooth(method = 'lm',color = 'red')
```
I am going to use another method and perform logistic method to check the numbers. This time, I decided to seperate the quality by using facet_wrap because ...I am curious how it looks when the quality are seperated.
Previously at the bivariate experimentation, the relationship between the sulphates and quality are considered positive. However, adding alcohol as a third variable change everythhing. Turns out that the relationship between three variables like sulphates, alcohol, and quality are tiny bit negative. Actually, that does not convince me that the sulphates is making worse. I move on.
#Create scatterplots and separate each qualities with facet_wrap
```{r echo=FALSE, message=FALSE, warning=FALSE}
ggplot(data = df,
aes(y = sulphates, x = alcohol,
color = quality)) +
geom_point(alpha = 0.8, size = 1) +
geom_smooth(method = "lm", se = FALSE,size=1) +
scale_y_continuous(limits=c(0.0,2)) +
facet_wrap (~quality)+
scale_color_brewer(palette = "Greens", type='seq',
guide=guide_legend(title='Quality'))+
scale_y_log10()
```
Previously from the bivariate experiementation with the quality and citric acid. The quality from 3, 4, 6, and 8 would make a huge contradiction. I guess I am going to use another method to re-examine the relationship.
#Create scatterplots and separate each qualities with facet_wrap
```{r echo=FALSE, message=FALSE, warning=FALSE}
ggplot(data = df,
aes(y = citric.acid, x = alcohol,
color = quality)) +
geom_point(alpha = 0.8, size = 1) +
geom_smooth(method = "lm", se = FALSE,size=1) +
scale_y_continuous(limits=c(0.0,2)) +
facet_wrap (~quality)+
scale_color_brewer(palette = "Greens", type='seq',
guide=guide_legend(title='Quality'))+
scale_y_log10()
```
I have picked the variables the ones that had strong relationship from the bivariate experimentation. I choose fixed acidity, citric acid, and quality. These plots definately show a correlation.
#Create scatterplots and separate each qualities with facet_wrap
```{r echo=FALSE, message=FALSE, warning=FALSE}
ggplot(data = df,
aes(y = citric.acid, x = fixed.acidity,
color = quality)) +
geom_point(alpha = 0.8, size = 1) +
geom_smooth(method = "lm", se = FALSE,size=1) +
scale_y_continuous(limits=c(0.0,2)) +
facet_wrap (~quality)+
scale_color_brewer(palette = "Greens", type='seq',
guide=guide_legend(title='Quality'))+
scale_y_log10()
```
I am going to attempt to check the linear models to make some prediction.
source: https://stat.ethz.ch/R-manual/R-patched/library/base/html/numeric.html
```{r echo=FALSE,message=FALSE, warning=FALSE}
#Model Linear for quality
m1 <- lm(as.numeric(quality) ~ alcohol, data = df)
m2 <- update(m1, ~ . + pH)
m3 <- update(m2, ~ . + citric.acid )
m4 <- update(m3, ~ . + volatile.acidity)
m5 <- update(m4, ~ . + fixed.acidity)
m6 <- update(m2, ~ . + sulphates)
mtable(m1, m2, m3, m4, m5, sdigits = 3)
```
According to my observation, if I check the result of the r-square and intercept. I find out that alcohol + pH + citric.acid +
volatile.acidity make a great wine quality. However, alcohol + pH + citric.acid is degrading. I believe that adding the citric acid is the cause of dimininshing the quality of the wine.
### Were there any interesting or surprising interactions between features?
Just like I was expected that the multivariate would have different results from univariate or bivariate examination. I am suprised that I find out something that contradicts from my bivariate investigation. Sometimes, you might remind yourself that Simpson paradox is everywhere. I learned my lesson that I need to further the experimentation to verify again the relationship in the multivariate experiment.
### OPTIONAL: Did you create any models with your dataset? Discuss the \
##strengths and limitations of your model.
I made a linear models to check the result in numbers instead of the plots. The strenght is that I find it easier to read the numbers on the table than plots. We know what causes the increase and decrease of the wine quality. The limitation of my model is that is hard to predict what makes bad and good quality. Also, all my p-values are all 0... meaning it is harder to interpret the confident interval in this experimentation.(I am 0% confident...)
# Final Plots and Summary
Here are my three I like and find helpful to understand what makes a good and bad quality of the wine.
### Plot One
```{r echo=FALSE, message=FALSE, warning=FALSE, Plot_One}
grid.arrange(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, ncol = 3)
```
### Description One
The main reason why I pick this plot because it helps me to observe the single variable histograms very quickly. I could easily categorize which one is a normal distribution.
Again , I concluded that combining with citric acid dimish the quality of the wine with alcohol.
There are two things we might need to re-observe is the citric acid and alcohol. Both have long looking negative skewed plots. I was wrong to pressume that the alcohol and citric acid could make the wine better because of their similariy.
### Plot Two
```{r echo=FALSE, message=FALSE, warning=FALSE}
ggplot(data = df, aes(x = pH, y = citric.acid))+
geom_jitter()+
coord_cartesian(ylim = c(0.0, 1.0))+
scale_color_brewer(type= 'seq')+
geom_smooth(method = 'lm',color = 'red')+
theme_dark() +
labs(x = 'pH',
y = 'citric acid',
title= "ph Vs citric acid")
```
### Description Two
The target is to check the correlation between two variables. Labeling with colors and numbers are really quick way to check what the relationships. For example, the red color indicated that the two variables have strong relationship.
Let's rexamine the citric acid and pH. We should keep eyes the relationship of citrid acid with other variable such as ph.
### Plot Three
```{r echo=FALSE,warning=FALSE,message=FALSE, Plot_Three}
ggplot(data = df,
aes(y = citric.acid, x = alcohol,
color = quality)) +
geom_point(alpha = 0.8, size = 1) +
geom_smooth(method = "lm", se = FALSE,size=1) +
scale_y_continuous(limits=c(0.0,2)) +
facet_wrap (~quality)+
scale_color_brewer(palette = "Greens", type='seq',
guide=guide_legend(title='Quality'))+
scale_y_log10()
```
### Description Three
I choose this one because I want to point out how citric acid , alcohol, and quality are very different when we examine in multivariate experimentation. I clearly see that the quality 6 and 7 are in slightly better. Overall, that does not convince me that the citric acid is making a better quality because most of the report from quality 3,4,5, and 8 indicate that the wine got worse.
# Reflection
At first, I have concluded that adding more citric acid in wine would improve the quality of the wine. I was not sure if I should conclude that citric acid is one that is decreasing of the quality because majority of the plots with citric acid skewed positively.
As I continue the research and use the linear model, my view about the citric acid, alcohol and quality has changed. Citric acid is definately diminishing the quality of the wine with alcohol.
I have suspected since in the begining that there is some Simpson paradox moment going on during the examination. As I progress, I kept being skeptical about what I saw. I started to understand that I have to further the research from univariate, bivariate, and multivariate to examine the differences of the variables relationship. It is almost like having one child in the family can affect two parents's life. I find it really facinating.I would suggest to re-examine again other variables beside alcohol and quality in multivariate examination.
To improve the research, I would love to interpret the confidence interval and have the numbers in the p-values. I think the research would be strong and convincinble if I include "I am 95% confident... "