2020年7月23日 星期四

使用R進行探索式資料分析之初探(3)_資料視覺化的探索

曾經有一位專家說過  與其他任何設備相比簡單的圖形為資料分析師帶來了更多的資訊

不好意思!是誰說還真的忘記  首先開啟並按裝該有的套件  開啟Rstudio




當然您也可以輸入指令進行安裝 

安裝完成後載入套件




資料欄位的說明可輸入?mpg  出現下圖

對於資料科學而言欄位是很重要的資訊  對於我們了解該資料集是第一步重要資訊

在學習的過程中發現有很多不同的名詞  對於資料科學的人變量或變數  對於統計的人

會說變項  對於學MIS會說欄位  其實都是說同一件事就是欄位  當初被這些名詞

搞得霧煞煞.......


完成上述  讓我們來發覺引擎的大小在高速公路上是否耗油  一般人直覺會說會!

但這是個人的感覺  我們用資料科學的圖形來說話

輸入˙ggplot(data=mpg)+
                     geom_point(mapping = aes(x=displ,hwy)))  

出現下圖


從上圖可以看到答案是引擎的大小在高速公路行駛的確是耗油 displ為引擎cc數  hwy為高速公路

每加淪行駛的英哩數  從散點圖可以看到引擎數愈大行駛的英里數愈少  其中引擎6000cc每加侖

只能跑15英里  而引擎2000cc每加侖可跑到32英里  兩者之間相差17英里。

我們再提出第二個假設  汽車的汽缸數多寡在高速公路行駛上是否會影響油耗

輸入:ggplot(data=mpg)+
                 geom_point(mapping = aes(x=cyl,y=hwy))

出現下圖

從上圖中我們可發現mpg資料集的汽缸數四種類型,分別有4汽缸、5汽缸、6汽缸、8汽缸

從4汽缸來看每加侖最低可跑到20英里  而8汽缸每加侖最低只能跑到3英里  從圖形來看

汽缸數多寡會影響油耗的表現

當然我們可提出更多的假設來進行探索  而上述我們只是單純用散點圖集黑色圓點作呈現

若我們將顏色對應到資料集中其他變項中  是否會有更多的發現

因此我們以第一個範例引擎大小行駛高速公路上是否會耗油例子  將車子的類型對應到顏色

輸入ggplot(data=mpg)+
            geom_point(mapping = aes(x=displ,y=hwy,color=class))


我們可以看到車子類型的變項名稱為class包括雙人車、皮卡、suv等等

藉由顏色對應更進一步了解車的類型、引擎大小、高速公路行駛的油耗

當然也可做進一步的變化使用size來對應,會以實心圓圈表示  圓圈愈大表示資料愈大

輸入ggplot(data=mpg)+
                 geom_point(mapping = aes(x=displ,y=hwy,size=class))





從上圖可以了解美國車子哪類型車子使用較多  以SUV及皮卡車子的種類較多人使用

在執行中會出現一句警告size不建議使用離散變量

上述我們以三個變量進行對資料的探索  那我們可已使用五個變量進行探索嗎?

答案是可以!在ggplot稱為構面  facet_wrap

輸入ggplot(data = mpg)+
               geom_point(mapping = aes(x=displ,y=hwy,color=class))+
               facet_wrap(drv~cyl)


上圖中可以發現我們使用了五個變量對車子的引擎大小(displ)、高速公路油耗(hwy)、類型

(class)、汽缸數(cyl)、車子的驅動方式(drv)來探索  更清楚每種油耗的表現

在構面facet_warp參數中有看到~(蟲字號),當初我以為他是從drv變量到cyl間的所有變數

進行計算,結果查了許多資料才發現  ~  是分為兩個變數的意思  那為什麼不使用逗號區隔

關於這各問題就要問套件開發者,為甚麼提到這個問題因為這個蟲字號困擾我很久。

當然我也可以變化一下

輸入:ggplot(data = mpg)+
                    geom_point(mapping = aes(x=displ,y=hwy))+
                    facet_wrap(~class,nrow = 2)


在上面程式碼中發現~class代表的意思為前面沒有變量,目前只有一個變量,那可不可以寫成

class~可以試一下,規定蟲字號在前變量在後(對於一個變量而言);nrow=2為使用2行作呈現

對於facet_warp構面而言可以加入資料集所有的變量,對於mpg在facet_warp我加入四個變量

大家可以試一下。

最後,上述是R圖形繪製語法很簡單,在未來繪製R困難的圖形,都是由上述語法

作為基礎延伸而來,若上述未能了解後面對R圖形繪製會感到很挫折,這是我小小心得

可能有些大神並不怎麼認為,後面在分享更進一步ggplot的曲線圖形,對於資料探索更視覺化。

沒有留言:

張貼留言

無現金支付的反思!

  **購物經歷** - 作者花費大量時間尋找立燈,最終在IKEA購買了一個649元的立燈 - 在IKEA附近停車場遇到只接受無現金支付的情況,被迫註冊並使用Line Pay **無現金支付的觀察** - 作者認為Line Pay作為前端介面,有助於提高停車場付費效率 - 作者預...