服務科學課程回顧: 應用商業分析(Applied Business Analytics)

Soumya 的 Syllabus 把這堂資料分析與視覺化的專門課程分成四個部分:「 Understanding the data 」、「 Statistical testing 」、「 Causal modeling 」、「 Structural equation modeling 」。

自學多變量的過程其實遇過滿多障礙(現在也是啦),所以這堂課最後幾週談的東西對我來說很有啟發性。

老師上課都用 R 這套開源軟體來做示範,很久以前就聽過R的大名,不過從來沒有實際用用看,這剛好是個練習機會。

這堂商業應用分析課( ABA )開在禮拜五,不知為何碩一裡面只有我來修,雖然它是我第一個學期本來最有期待的課,但是後來其他課有點應付不及,反而沒下很多功夫研究 R ,有些可惜。

可能有些人比較怕統計,對這類的課程避之不及,不過雖然說是「應用分析」,其實有大半個學習都在教授(或說複習?)一般大學程度的統計,而且老師致力於減少公式的使用,比起單純的統計課, ABA 加入了不少「資料視覺化( Data Visualization )」的範例,老師也許是想做個實驗,看看能否以圖形取代嚇人的公式。

資料分析的第一課:區分資料類型

什麼是資料分析呢?雖然我們常常做這件事情,但是不一定能很漂亮地說出我們到底在做些什麼。

「 Removing the noise, finding the signal 」,我滿喜歡這個形容,noise是統計名詞,但也可以簡單想像成電視收訊不良時的黑白雜訊,雜訊越多,畫面就更看不清楚。

資料分析要做的事情就是在眾多雜訊當中,找出沒有被掩蓋的畫面。其實就是在做研究!

服務科學的分子廚房-資料分析-概念-範例

研究依照資料類型不同,可以分成質的( Qualitative )與量的( Quantitative )兩種,來源則分為第一手資料( Primary Data )與次級資料( Secondary Data )。

對應研究情境需要採取不同的研究手法,例如使用第一手資料的質化研究需要深入場域收集意見、進行訪問;彙整歷史文獻研究結果的次級資料以進行比較的量化研究則成為「後設分析(Meta-analysis)」。

資料分析的第二課:區分研究類型

資料分析依目的與限制不同,又可以概分成以下四種:「敘述性( Descriptive )」、「探索性( Exploratory )」、「因果性( Causal )」、「預測性( Predictive )」。

敘述性統計幾乎沒有什麼數學困難,只是單純以常見的量數來描述母體及樣本的特徵,因此可以提供的資訊也比較有限。報導說,歷年經濟成長率平均成長 3% ,這就是一種敘述,然而我們可以進一步使用這項資訊嗎?

顯然不行,因為我們不知道它與其他現象的關係。

發掘現象與現象之間的關係,即是探索性研究的目標,假設我們發現跟經濟成長率具有顯著關聯性的現象包括消費者信心指數、失業率、外匯存底等等,那麼我們就能以這些子現象更詳細描述經濟成長率的組成。

然而當現象之間呈現「雞生蛋」、「蛋生雞」的關係時,我們就無法確定,藉由某一現象的改變,是不是能夠確實影響另一現象的改變,這種因果關係的辨識,即為因果性研究的核心。許多時候因果關係是難辨的,但是即使無法清楚得知因果關係,也不必然表示我們無法利用關聯性來做推測。

在經濟成長的例子中,雖然我們不知道是經濟成長導致了失業或者失業導致了經濟成長,若能證實兩者之間有著反比關係,預測性研究仍然可以利用此項資訊進行推估:經濟成長率每增加1%,則失業率如何變化?

因果性是證據力最強的關係類型,改因則可換果,在醫藥測試中大量使用實驗設計就是為了保證投藥之後會有治癒的效果。

但在複雜的社會現象中,因果是非常難以確認的,因此簡化模型勢在必行,即使確認的兩者的因果關係,在考慮複雜的交互作用之後不一定會比預測性研究更有實務價值。

許多時候預測性研究的結論使人誤以為可以透過「人為介入」改變預測因子X得到結果Y,譬如利用政策壓低失業率來提升經濟成長,但這是無法被保證的。是故為何因果性研究的評價指標會是證據的強度,而預測性研究為了求得準確的預測,更加重視適合度(Goodness of fit)。

服務科學的分子廚房-資料分析-範例

服務科學的分子廚房-資料分析-範例2

資料的視覺化(Data Visualization)的威力

雖然是統計課,但這堂課公式使用得很少,更多地畫一些圖來輔助說明統計概念,當然不是所有統計概念都能輕易圖形化,不過作為研究者、顧問、管理人員,如果能用圖形向其他人舉例,想必會比公式化的說明更有效。

假設A公司針對同一種服務有多達四種流程,也有四種不同的工作軟體,現在A公司想要藉由統一標準來減少提供服務所需的時間,因此必須知道是要改流程還是要改軟體。

在大樣本且變異數無顯著差異下,以R執行不重複二因子變異數分析( Two-way ANOVA without replications ),由於不知道交互作用是否存在,因此一併檢驗。

先叫出練習的檔案「 service_resolution.txt 」,其中包括「服務時間」、「流程( 4 種)」、「軟體( 4 種)」。

R 的程式碼:

sr=read.table(“service_resolution.txt",header=T)

sraov=aov(sr$time~sr$software+sr$process+sr$software*sr$process)

summary(sraov)
                       Df Sum Sq Mean Sq F
value   Pr(>F)
sr$software             1
7659    7659   2.308
0.13991
sr$process              1
93751   93751  28.253 1.17e-05 ***
sr$software:sr$process  1
43527   43527  13.117
0.00115 **
Residuals              28  92912
3318

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’
1

由上面結果可知「交互作用」是顯著的,接下來可以用 interaction plot 的功能快速畫出細節:

服務科學的分子廚房-資料視覺化-範例

以圖判斷交互作用的大原則是,若為平移則無交互作用,反之交叉表示存在交互作用關係。以圖形判斷有時也需小心以免誤判,例如把上圖中的座標軸因子對調,整個圖形便截然不同。

圖形選擇也是一道課題,呈現相同資訊的圖形自然以簡約易懂者為先。

服務科學的分子廚房-資料視覺化-範例2

在使用所謂 Psychometric scale 的研究中,類似的圖被大量使用,例如下面的範例:

服務科學的分子廚房-資料視覺化-範例3

變異數分析ANOVA的超級視覺化

在R當中,視覺化可以做得很驚人。能操作視覺化的軟體頗多,常見的 Excel 或套裝統計軟體都有一些不錯的功能,甚至 Excel 還有許多公司設計增益集來賣,像是這款 Excel 版的 QFD

但是比起 Excel 跟一般統計軟體, R 的擴充功能不只多,在與統計方法的結合上更勝一籌。

例如,有一個 Package 叫granova,我原先還以為是什麼高階的統計模型(以 G 為名多半代表 Generalized ,數學通式的地位不用多說吧),結果正是 ANOVA 的圖形化工具。

這種對特定統計方法的圖形也稱為 Elementary Graphics 。 

我們把先前的 ANOVA 修整一下,由於存在交互作用的關係,同時進行流程與軟體的改造難以衡量具體效果,一般而言,處理這種交互作用最基本而有效的方法,是找出對兩者都能有效解釋的變數替代之或者刪減多餘變數,基於兩者個別做單因子 ANOVA 時, software 並不顯著,因此僅保留 process 作為觀察重點。

Process 對應 Time 的 ANOVA 如下:

sraov2=aov(sr$time~sr$process,data=sr)

summary(sraov2)
            Df Sum Sq Mean Sq F value  Pr(>F)
sr$process   1
93751   93751   19.52 0.00012 ***
Residuals   30 144098
4803

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’
1

Granova 功能包括 4 項指令, 1w 、 2w 、 contr 、 ds ,分別對應 one-way 、 two-way 、 contrast-driven 與 dependent sample comparison 四種 ANOVA 。

首先來使用 granova.1w 指令製作單因子變異數分析的視覺化:

granova.1w(sr$time,group=sr$process)

$grandsum
    Grandmean        df.bet       df.with        MS.bet
       774.97          3.00         28.00      33282.86
MS.with
4928.58
F.stat        F.prob SS.bet/SS.tot
6.75          0.00          0.42

$stats
   Size Contrast
Coef  Wt’d Mean Mean Trim’d Mean  Var.      St.Dev.
1    8
-72.72    702.25 702.25      700.67
1196.21    34.59
2    8
-35.34    739.62 739.62      748.00
1931.41    43.95
3    8
46.78    821.75 821.75      820.17
4960.50    70.43
4    8
61.28    836.25 836.25      835.17 11626.21   107.82

服務科學的分子廚房-資料視覺化-範例5

由於總共有 4 種流程,因此代表各個 treatment 效果的 group mean 紅色三角形有4個,總平均 grand mean 則是綠色圓點,根據圖上方的標示可以看到各 group 的 size ,左右座標則標示了數值分布。

最神奇的就是兩個大方框了,藍色的方框就是所謂的 Mean Squares –within Groups ,有些中文書翻作「組內變異」,紅色的方框則是 Mean Squares-between Groups ,稱之「組間變異」。

依照 F 檢定的公式,檢定值即是由平均組間變異除以平均組內變異。

服務科學的分子廚房-資料視覺化-範例6

不才我以前盯著書上的數字反覆看來看去就是搞不清楚,為什麼組間變異沒事要除個組內變異?

用圖來看會容易一點,組內變異(藍框)的中心是總平均(綠點),當資料點(黑點)距離各組平均數(紅三角形)越遠,藍框的範圍就越大,同時如果各組平均數(紅色三角形)距離總平均(綠點)越遠,則紅框越大。

各種 treatment 如果效果差不多(4個紅三角距離綠點很近),紅框(公式的分子)就會小, F 值過小當然就沒有顯著差異囉,而 treatment 內的資料如果穩定(黑點距離紅三角較近),藍框(公式的分母)就不會太大導致很難顯著。

所以說了,為什麼明明是計算「平均數」的差異,卻稱為變異數分析?因為變異數分析的結論是由變異數(藍框與紅框)的大小來決定的!

附帶一提,眼尖的人可能有發現 aov 函數的輸出與 granova 的 F 值不同,如果調整自由度則會接近許多:

> (93751/3)/(144098/28)
[1] 6.072321

我用這組資料跑 granova.2w 有點問題, debug 失敗(糗),改用 package author : Robert M. Pruzek 與 James E.Helmreich 的範例。

resp <- rnorm(80, 0, .25) + rep(c(0, .2, .4, .6), ea = 20)

f1 <- rep(1:4, ea = 20)

f2 <- rep(rep(1:5, ea = 4), 4)

rdat1 <- cbind(resp, f1, f2)

granova.2w(rdat1)
[1] resp ~ f1 * f2
$f1.effects
     1
2      3      4
-0.279 -0.134  0.114
0.299

$f2.effects
       2
5        3        1
4
-0.04060 -0.01790
-0.00351  0.02510  0.03700

$CellCounts.Reordered
   f2
f1  2 5 3 1 4
  1 4 4 4 4 4
  2 4 4 4 4 4
  3 4 4 4 4 4
  4 4 4 4 4 4

$CellMeans.Reordered
   f2
f1       2
5      3      1
4
  1 -0.111 -0.123 0.1440 0.0827 0.00724
  2
0.362  0.112 0.0369 0.1360 0.07650
  3
0.277  0.494 0.3830 0.3320 0.47700
  4
0.424  0.561 0.5370 0.6640 0.70200

$aov.summary
            Df Sum Sq Mean Sq F value  Pr(>F)
f1           3
3.958  1.3195  20.204 3.6e-09 ***
f2           4
0.064  0.0159   0.244
0.912
f1:f2       12
0.746  0.0622   0.952
0.504
Residuals   60
3.919  0.0653

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’
1

這組範例資料中的交互作用是不顯著的,由於有三個維度,在圖形上面呈現立體狀態。

服務科學的分子廚房-資料視覺化-範例7

更多 R 的統計視覺化範例

除了 ANOVA ,其他的統計模型也能夠畫出視覺圖形,不過這些圖形仍侷限在三個維度以下,假以時日或許會有新的突破也不一定。

在 R 當中,要畫 3D 圖形還除了必須下載對應的 package 像是 granova 之外, scatterplot3d 也是必備的。

同樣的例子,以迴歸( Regression )的方式寫:

srlm=lm(sr$time~sr$process+sr$software+sr$process*sr$software)

summary(srlm)

Call:
lm(formula = sr$time ~
sr$process + sr$software + sr$process *
    sr$software)

Residuals:
     Min
1Q   Median       3Q
Max
-108.060  -35.063
2.323   25.509  134.120

Coefficients:
                       Estimate   Std. Error
t-value  Pr(>|t|)
(Intercept)              504.125
61.099   8.251   5.58e-09 ***
sr$process              122.175     22.310
5.476   7.56e-06 ***
sr$software              59.925     22.310
2.686   0.01202 *
sr$process:sr$software   -29.505      8.147
-3.622   0.00115 **

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’
1

Residual standard error:
57.6 on 28 degrees of freedom
Multiple R-squared:
0.6094,     Adjusted R-squared: 0.5675
F-statistic: 14.56 on 3 and
28 DF,  p-value: 6.654e-06

ANOVA 與迴歸,除了原先中的因子改以虛擬變數( Dummy Variable )投入之外,並無不同,因此 ANOVA 的結果也會一樣!

立體空間中的資料點圖形:

scatterplot3d(sr$time,sr$process,sr$software)

服務科學的分子廚房-資料視覺化-範例8

其中穿越空間的最適平面即是由迴歸式所定義,由於 R 「無法將長度為零與非零的座標混合」,以另外一個例子加上平面,順便把外框給去掉:

rtlm=lm(rt$RepairTime~rt$MonthsPassed+rt$Type+rt$Person)

rtsp=scatterplot3d(rt$MonthsPassed,rt$Type,rt$RepairTime,,box=F)

rtsp$plane3d(rtlm,col="blue",lty="solid")

服務科學的分子廚房-資料視覺化-範例10

熱愛資料分析,你一定不能錯過:

* 統計R語言實作筆記系列 – 2D視覺化進階 GGPLOT()的基本架構(一)

* 統計R語言實作筆記系列 – 用 SHINY 套件極速打造你的商業智慧分析網站!

* 統計R語言實作筆記系列- 直線ABLINE()、曲線CURVE()與多邊形POLYGON()

* 統計R語言實作筆記系列 – 2D視覺化入門

* EXCEL 交互參照必學神器, 用 LOOKUP 系列函數一鍵搞定資料比對 : HLOOKUP篇

* 廣義線性模型觀點:統計迴歸分析(REGRESSION)的基本原理與結構

* 主成分分析(PRINCIPAL COMPONENT ANALYSIS)與因素分析(FACTOR ANALYSIS)

(Visited 1,351 times, 5 visits today)

Wendell.Huang

科技公司嫌棄太活潑,消費品牌挑剔太沉悶..., 經常必須解釋自己在學什麼, 不小心就摔破對方眼鏡的跨領域玩家。

9 Comments

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *