序言
拜科技與網路普及之賜,現在學習專業學科似乎較為簡易。例如:許多專業上的盲點或困惑,透過網路搜尋如Google的幫助,應該比過去無網路時代能迅速蒐集到更多的資訊;換言之,若我們願意付出,應該皆能從網路上得到想要的答案。就筆者而言,透過網路上的學習,的確已快速降低以往躲在圖書館內影印參考資料所耗掉的成本了。
另一個能幫助筆者迅速學習專業學科的(輔助)工具竟然就是電腦語言的使用。由於個人電腦性能的提升以及自由軟體的普遍使用,使得我們於學習過程中不再憑空想像而是可以透過電腦的模擬與計算,以較為實際的方式學習專業學科。例如:筆者已寫出一系列用R語言思考的專業書籍(可以參考本書的封面的作者著作)。其實,筆者只是想要找出「為何過去皆看不大懂專業學科」的答案以及「經驗傳承」而已。
如今,有可能已經出現答案了。原來,過去沒有網路資訊可使用(即無法知道不同的人如何解釋上述專業學科)以及不知如何使用電腦語言。上述的驗證又再一次在本書出現。其實,筆者於寫《財時》一書時,已經頗訝異Python語言(底下簡稱Python)的「異軍突起」;也就是說,網路上竟然已經有那麼多人在使用Python 了。或者說,Python 的使用竄升速度相當快。筆者應該也來試試使用Python。根據筆者的經驗,學習一種新的電腦語言如Python的最好方式就是先設定一個目標,全部用Python來思考與操作。因此,本書的目的其實頗為簡單,即全部用Python來解釋「統計學」;換句話說,本書仍維持筆者過去書籍的特色,即書內只要有牽涉到例如讀存資料、計算、模擬、估計、製表或甚至於繪圖等動作,筆者皆有提供對應的Python程式碼供讀者參考。當然,讀者若是初學者,可以先參考本書的第12章。
為何選擇寫統計學?倒也有下列理由:
(1) 想學Python又毫無頭緒,看了Python的使用手冊或介紹Python的書籍又一頭霧水,更諷刺的是,上述手冊或書籍卻又強調Python是一種簡單易懂的電腦語言。此時不妨學習筆者的方式。於商科的專業學科內,微積分與統計學是最容易學習Python應用的二門基本專業學科,本書是挑選統計學;換句話說,讀者亦可以思考:「若用Python來學習微積分,其結果會如何?或者說,用微積分來發現Python的使用方式」。不要忘記,隨時可以上網查詢不懂的部分。
(2) 老實說,筆者之前的著作,除了《財數》之外,其餘書籍較適合高年級(或研究所)的學生使用。筆者當然希望大一或大二的學生能儘早接觸程式語言如Python的練習與使用。因此,本書是挑統計學,就是統計學的內容不僅可以簡單化同時應用的層面也較廣。
(3) 筆者已不知多久沒有「用手按計算機」或「用手繪製圖形」了;也就是說,筆者皆用程式語言取代。於統計學內,有關於資料的計算、整理、估計、編表、模擬或甚至於圖形繪製的操作例子應是「層出不窮、比比皆是」,即統計學可以讓我們熟悉上述操作。
(4) 換個角度思考,我們要學Python,若簡單如統計學就無法利用Python來處理,不是有些奇怪嗎?筆者每次重讀統計學,皆有不同的收穫;換句話說,不要輕忽重新念微積分與《財統》或《財數》等科的用處,即我們是用Python(或R語言)來思考並取代過去用手計算或繪圖的方式,其目的自然就是要熟悉電腦語言的操作。若是連簡單的都無法勝任愉快,那複雜的呢?
(5) 目前「大數據」的使用已成為一個趨勢,而最能接近大數據方法的學科,當然就是統計學。
(6) 當然學習統計學亦可使用Excel、SPSS或SAS等商業套裝軟體。老實說,使用上述套裝軟體實在無法引起筆者學習上的興趣,因為每次使用筆者總會想到該函數指令如何撰寫?找不到來源出處,實在勾不起筆者繼續學習的動力。Python(或R語言)就不同了,不僅其是免費軟體,同時於網路上可以找到原始的程式碼,因此若讀者願意繼續探索源頭,不就可以知道如何設計Python內的函數指令嗎?
(7) 筆者於網路上曾看過Python函數指令的解釋(中文),總覺得「怪怪的」,有可能是「翻譯者」沒有接觸過(或不熟悉)統計學,那時筆者就知應該用Python來寫統計學了。
如前所述,筆者希望本書的讀者是大學部的新鮮人(大一或大二生),是故本書的內容並無抽象或複雜的數學式;不過,因受限於篇幅,反而例子或習題較少,因此讀者可能需要多自行補充一些例子上的應用。換句話說,本書的內容脫離不了例如Moore et al.(2011)或Anderson et al.(2017)等書的範圍;或者說,上述書籍倒是提供許多統計上的例子可供讀者練習(上述書籍皆屬於舊版,故可能可以於網路上下載)。
比較不習慣的應該還是Python程式語言碼的撰寫,其實只要想到如何用Python計算、模擬、估計或甚至於繪圖,尤其是後者,讀者應該就不會太意外有太多的程式碼,還好筆者皆有對應的程式碼可供參考,故讀者首先應學習如何撰寫才不會構成負擔(可以參考本書第12章)。也許,從另外一個角度思考心裡可能會比較舒服:「想到寫程式就有點興奮,特別是有人先寫給你看」。
筆者的舊讀者應該不用太氣餒,若R語言已熟悉了,再學Python的確阻礙較低。雖說Python的功用較全面性而R則較集中於統計分析方面;不過,二者的思考邏輯方式卻是相通的,即相同一件事情或情況,不僅可以用Python來表示,當然也可以用R語言來分析或詮釋。例如:於《財統》內,我們強調rnorm、pnorm、qnorm 與dnorm等四種函數指令的意義與用法,而Python呢?相同的函數指令為何?讀者於本書內應將其找出來(norm.rvs、norm.cdf、norm.ppf與norm.pdf)。
由於是初次用Python來詮釋,故書內有提供部分的Python程式碼,完整的部分則附於隨書所附的光碟內。由於當初認知不足,以致於筆者還是無法維持當初的構想:「用R語言寫一系列統計與計量書籍」;也就是說,筆者當初還真的沒有想過最後會介紹Python,也許以後筆者的書籍會是R語言與Python並用。有關於筆者未來的規劃,可以參考筆者的簡易網站c12yih.webnode.tw,內有筆者的聯絡方式,即筆者的Email為c12yih@gmail.com。很抱歉,筆者屬於「古代人」,還是非常不習慣用臉書或LINE(如此筆者反而較能專心做自己的事)。
本書當然歡迎教師採用(本書內容屬於基礎統計學的範圍)。於目前的環境下,讓學生及早接觸程式語言的確不是一件壞事;或者說,現在讓學生「辛苦點」,反而對其有益。程式語言並沒有像接觸前「想像的那麼恐怖」;其實,倒有點像開車上路,剛得到駕照恐懼上路,但是一上路應該就能馬上進入狀況,而且愈開愈順。
由於受到篇幅的限制,教師若採用本書,可能要另外再多舉一些例子或習題供學生練習,此應該不是一件困難的事(畢竟只是基礎統計學的介紹)。利用Python來學習,最起碼可以不需要再用「查表」的方式;另一方面,其實教師亦可以按照原本的上課內容授課(可能需重新調整一下順序或增減一些內容),因為網路上有太多資訊,Python讓學生自行練習或參考本書內容即可。如前所述,隨書所附的光碟內有各章完整的Python程式碼,除了簡答題外(答案於書內),光碟內亦附有各章習題的Python程式碼解答。因此,本書亦可用於「自修」或作為統計學的補充教材。內人是學統計出身的(統計系畢業),有些時候談到過去學統計學的經驗過程,我們皆會認為好像現在的統計學比較簡單,而過去的統計學比較難?其實答案馬上就知,即本書若少了Python,讀起來應是枯燥乏味且不知如何是好。
隨書仍提供兒子的一些作品,筆者當然也好奇最後兒子的實力會如何?好像我們二人在「競賽」,不過筆者已嘗試R語言與Python並用了,那兒子呢?筆者當然希望兒子也能找出自己的路。感謝內人的幫助以及提供一些意見。筆者才疏識淺,倉促成書,錯誤難免,望各界先進指正。最後,祝操作順利。
?
林進益
寫於屏東三地門
2020/8/3