有趣的統計學(2)

從流程我們可以很明顯地看出來,玩家在叫牌的時候,有一定的可能會「爆」,爆了就輸牌輸錢。即使後手的莊家也爆牌,這一局兩人的對決還是莊家勝。這是典型的「先手劣勢」

擊敗莊家?

上一回用了些章節,說明這個 python 程式的大致狀況,接下來我們可以利用這個模型,看看統計和模擬可以教我們什麼。

首先,我們安排四位玩家和一位莊家,使用三副 156 張牌,用到剩下 40 張牌的時候,洗牌再玩。莊家的策略很清楚,依據二十一點的規則,莊家牌點小於十七的時候,必須叫牌。如果我們讓玩家的策略跟莊家一模一樣,低於十七點叫牌。下注都用最低標準的金額…假設為一塊錢(美金??)好了,我們看看結果如何? 對了,平手的局我們不算勝負,這樣子數據比較容易理解。

三十次的結果

玩家:1號, wins:14, loses=13, win%=0.519, money=10001

玩家:2號, wins:15, loses=12, win%=0.556, money=10003

玩家:3號, wins:14, loses=16, win%=0.467, money=9999

玩家:4號, wins:11, loses=16, win%=0.407, money=9996

莊家, wins:57, loses=54, win%=0.514, money=50001

在四位玩家使用同樣的策略下注叫牌、沒耍任何花招的狀況下,二號玩家勝率高達 55.6%,四號玩家只有 40.7%,這說明小數量的玩牌,的確有相當大的運氣關係。好消息是,玩了三十局,輸贏其實不大。小賭怡情,還行。

再一個三十次呢,玩家勝率的變化很大,限於篇幅,有興趣可以自行測試一番。

三千次的結果

玩家:1號, wins:1265, loses=1446, win%=0.467, money=9848

玩家:2號, wins:1235, loses=1469, win%=0.457, money=9792

玩家:3號, wins:1272, loses=1430, win%=0.471, money=9872

玩家:4號, wins:1290, loses=1439, win%=0.473, money=9883

莊家, wins:5784, loses=5062, win%=0.533, money=50605

在四位玩家使用同樣的策略下注叫牌、沒耍任何花招的狀況下,四位玩家的勝率開始接近,輸的金額也慢慢浮現,這說明較大數量的玩牌,輸贏跟運氣的關係就降低了,莊家的優勢出現。

五萬次的結果

玩家:1號, wins:20939, loses=24369, win%=0.462, money=7036

玩家:2號, wins:20934, loses=24263, win%=0.463, money=7199

玩家:3號, wins:20910, loses=24324, win%=0.462, money=7092

玩家:4號, wins:20904, loses=24452, win%=0.461, money=6915

莊家, wins:97408, loses=83687, win%=0.538, money=61758

在四位玩家使用同樣的策略下注叫牌、沒耍任何花招的狀況下,四位玩家的勝率基本上是相同的,平均 46.2%,輸的金額的差異也不很大。這說明更大數量的玩牌,勝負機率回歸本質,玩家輸牌是「天注定」的…莊家則是擁有53.8%勝率,雙方勝率的差異達到 7.6%。

超過五萬次的結果,跟重覆跑五萬次的差異不很大。我們暫時用這個次數,做為分析的基準。

同樣的策略,玩家為什麼輸?

從流程我們可以很明顯地看出來,玩家在叫牌的時候,有一定的可能會「爆」,爆了就輸牌輸錢。即使後手的莊家也爆牌,這一局兩人的對決還是莊家勝。這是典型的「先手劣勢」,玩家不可不查也。

玩家的數量多寡是否對勝率造成差異?

我們把玩家的數目 num_players 調整成三和五,經過五萬次牌局的模擬,其結果和四位玩家的勝率狀況一樣。如果玩牌的局數不多,本身就有很強的運氣因素存在,那個不可控,我們先放一邊。

三玩家

玩家:1號, wins:20833, loses=24498, win%=0.460, money=6841

玩家:2號, wins:21008, loses=24401, win%=0.463, money=7075

玩家:3號, wins:20917, loses=24451, win%=0.461, money=6945

莊家, wins:73350, loses=62758, win%=0.539, money=59139

五玩家

玩家:1號, wins:20829, loses=24532, win%=0.459, money=6778

玩家:2號, wins:20853, loses=24299, win%=0.462, money=7009

玩家:3號, wins:21053, loses=24380, win%=0.463, money=7193

玩家:4號, wins:21098, loses=24152, win%=0.466, money=7400

玩家:5號, wins:20801, loses=24557, win%=0.459, money=6708

莊家, wins:121920, loses=104634, win%=0.538, money=64912

「先手劣勢」解法

既然玩家因為先手,有「爆」的機率導致劣勢,那我們叫牌策略就不應該跟莊家一樣。降低叫牌的門檻是否可以完全克服這個劣勢? 是的,驢子也是這樣想…我們來實際模擬:

我們讓四位玩家不約而同,把低於十七-相同於莊家的叫牌邏輯,改到十六點以下(不含十六)才叫牌,同樣下一美元一注,五萬次牌局:

玩家:1號, wins:21147, loses=24531, win%=0.463, money=6941

玩家:2號, wins:20774, loses=24827, win%=0.456, money=6307

玩家:3號, wins:20997, loses=24626, win%=0.460, money=6733

玩家:4號, wins:20907, loses=24626, win%=0.459, money=6603

莊家, wins:98610, loses=83825, win%=0.541, money=63416

低於十六叫牌,模擬出來的結果跟低於十七叫牌的差別不大,玩家的勝率差不多在 45.9%,莊家是 54.1%

低於十五叫牌,模擬出來的結果跟低於十七叫牌的差別不大,玩家的勝率差不多在 46.5%,莊家是 53.5%

低於十四叫牌,模擬出來的結果跟低於十七叫牌的差別不大,玩家的勝率差不多在 46.0%,莊家是 54.0%

低於十三叫牌,模擬出來的結果跟低於十七叫牌的差別不大,玩家的勝率差不多在 45.5%,莊家是 54.5%

低於十二叫牌,模擬出來的結果跟低於十七叫牌的差別不大,玩家的勝率差不多在 44.4%,莊家是 55.6%

低於十一叫牌,哪怕是驢子都會笑出來,咱們就不丟這個臉了…看出來了嗎,在一切不變的狀況下,改變策略低於十五叫牌,玩家的勝率雖然較高,但也遠遜於莊家,雙方勝率還是有 7.0% 的差距。如果我們分析資料,會看出雖然我們「爆」的機率降低,但點數不夠被莊家吃掉的機率提高了。所以,僅只是改變叫牌點數,並不能克服這個「先手劣勢」。

別擔心,還是有新的策略可以研究,讓我們繼續看下去。

有趣的統計學(1)

在完成數個月的訓練、成功解題完成專案之後。這些同仁們在自己的工作崗位,面對新的、類似的問題,就像換了一個人,把課堂所學的統計、實驗設計執行、甚至 minitab 的分析都丟在腦後,繼續用舊方法嘗試錯誤、浪費時間…

過去一年多以來,我的工作之一,是擔任公司 6 Sigma 黑帶大師。這個團隊主要在教導公司同仁如何用科學方法解決問題。我們一面開設 6 Sigma DMAIC 的課程,結合統計學、實驗設計、分析、minitab 的使用等…一面組織同仁形成專案小組,針對工廠實際面對的重大問題,輔導同仁實戰、解決問題。

另我十分驚訝的事實是,許多工作已有五年以上的研發、技術人員,對於如何做實驗、如何科學地分析實驗,得出結論(基本的模型)…了解十分有限。我詢問一位年資已經不短的同事,如果要開發一個新產品,可能的控制因子有十七個,那麼研發團隊要用什麼方法,把十七個因子的組合,做出一個客戶至少可以接受的產品? 那位同事緬腆並帶著神密的微笑說,G哥你不知道嗎,你們家附近有一間廟,十分靈驗…我不敢繼續往下問。不過,如果大部份的工程師,對於實驗設計的方法流程不清楚,主管也不要求,那麼做實驗基本上就淪為嘗試錯誤的吃時間、吃錢機器。

更另人難過的,在完成數個月的訓練、成功解題完成專案之後。這些同仁們在自己的工作崗位,面對新的、類似的問題,就像換了一個人,把課堂所學的統計、實驗設計執行、甚至 minitab 的分析都丟在腦後,繼續用舊方法嘗試錯誤、浪費時間…

在我們一再追問下,同事們反應,因為內心俱怕統計,所以即使知道使用科學方法是更有效率的解題方式,但真正對於使用 6 Sigma 和統計,內心還是十分抗拒。

有鑑於此,我思考用何種方式,讓統計變得更有趣、更生活化、更容易理解接受,進行在工作和生活中應用。接下來,我會做一些嘗試,把一些統計的觀念,透過例子和使用 python 程式的模擬和分析產生圖形,試著讓「數據說話」…如此一來,不單可以學習統計,也順變看一下程式如何寫。

我們如何開始呢? 不如從「有趣的例子」找起。

最近逛 Kindle 網路書店,也許是統計的書買比較多,Kindle 的 AI 推了一本「擊敗莊家-21點的有利策略」給我。這是由 Edward O. Thorp 所著「Beat the Dealer: A Winning Strategy for the Game of Twenty-One」的中文翻譯,讀起來十分地有趣。很棒的地方是很簡捷,前面兩章簡單地介紹了二十一點的規則,第三章開始就展開了基本策略。我一面讀這一本西元 1962 年出版的作品,一邊思考,也許我可以用 python 和統計來重新計算,作者給出的策略是否真的有用。當然,書中顯示的策略目前幾乎已經被賭場破解了,不過,這是一個十分有意思的題目,我可以用 Bayes 方法來計算一些可能性。

話不多說,我講一下這個程式的大致結構,有興趣的可以到 github 下載並測試。網址為:https://github.com/clin8870/playCards

整個模擬程式只有 350 行,扣掉一些物件的說明,應該很容易閱讀。如果你有 python 的環境,可以 pip install numpy, pandas, matplotlib, seaborn, jupyterlab 這些超級好用的模組,那麼本機就可以執行。如果不想麻煩建置本機的 python 環境,那麼推薦使用 google colab,直接可以連 github 的檔案(https://github.com/clin8870/playCards/blob/main/PlayCards.ipynb)執行看結果,省去諸多步驟。

程式一開始是建立一些模組的連結,咱們暫時不理它…這些模組的功能,後面用到時再慢慢說明。

第一個物件是 Player,建立一個玩家的基本資料,像賭本多少,下注金額的大小等等。下注和叫牌的邏輯都是最簡單的。未來如果我們的玩家有很厲害的算法的話,可以繼承這個基本物件做修改。

莊家我沒有用 dealer 這個字,因為「據說」大部份賭場都由機器來洗牌和發牌…莊家只是套用賭場的規則叫牌、輸錢時把錢賠給 Player,贏錢反之…在我的程式裏,我用 Bank,繼承 Player 物件,用 12 行程式碼就解決了。

然後就是撲克牌 Decker,也是一個很簡單的物件,定義了牌的點數、幾付牌的參數、洗牌的動作等等…含說明大約 50 行。

賭場 House 稍後複雜,因為要把這些玩家莊家撲克牌串在一起,然後每場牌局要紀錄下來以便我們事後分析。含說明 135 行。

因為只是自己測試研究,並不是商用的軟件,所以說明的部份比較簡陋…不過程式邏輯相當直覺,應該不難理解。

下一篇,我們就可以來解析,如何做到擊敗 21 點莊家…嗯…或是根本做不到…

職涯規劃與選擇

自小喜歡機械的我,如願考上台大機械系。在大三升大四的那個暑假,老師幫忙提供了工讀的機會。就在工讀時,我才發現,機械業並不是我喜歡的工作和生活方式。這個發現,完全顛覆了原本對未來的想法。然而,畢業只剩一年,我不知道該如何是好。如果不喜歡這個行業,那升學又是為何? 繼續唸書不也是為了就業嗎…

職涯規劃與選擇20220115_v3

2022年是我第四年到成功大學擔任學生們的職涯顧問。看到台下學生對於未來踏入社會的期待與徬徨,不由得回想起當年的自己…

自小喜歡機械的我,如願考上台大機械系。在大三升大四的那個暑假,老師幫忙提供了工讀的機會。就在工讀時,我才發現,機械業並不是我喜歡的工作和生活方式。這個發現,完全顛覆了原本對未來的想法。然而,畢業只剩一年,我不知道該如何是好。如果不喜歡這個行業,那升學又是為何? 繼續唸書不也是為了就業嗎…所幸我有一位大我四歲的哥哥,以及和哥哥一起長大的好友,他們提供了我很多很好的建議,幫助我在很沮喪的情況下找到方向。

職涯規劃??

有人說,如果想讓上帝哈哈大笑,你可以跟祂說:「我有個計劃 !」

這個世界充滿著不確定性,那麼職涯規劃重要嗎? 的確,你理想的公司在你畢業時,或許已步入下坡;更吸引人的新產業和公司可能誕生。也因此,我認為職涯規劃的重點不在於「計劃」,而在於找到自己想要的目標,並執行一套實力養成的好習慣。人生中的許多事的確有其偶然性,然而也有其必然性。你做了某些事,後面引發的骨牌效應,可能延伸出去。我希望能幫忙學生的,不是事事求完美、也非做得更多, 而是「聚焦」「專注」,做對能帶動後續變化的好事!

知己

有人說:「財富等於成功,成功就會快樂」。我認為,職業只是人生的一小塊,其他還有家庭、社交、身體、心靈、物質、興趣。當然,職業很重要,因為其他幾塊的發展都蠻花錢…人生像是走在平衡木上開啟雜耍模式,不斷有球飛來。有些球是機會,接得好可以升官發財;有些球卻是惡夢,公司倒閉、家人生病、出門被撞、老婆生氣…如何做,才能讓自己備好底氣? 留有餘裕?

我們第一個練習,也許也是這堂課最重要最重要的事。在講義的第十頁,從自己「十年後視角」講一個故事,自己的成功故事。十年後的今天,我在工作、財富、家庭、健康、交友等等事項的獲得是什麼? 是否已經有房有車、存款充足? 有健康的身心、陪伴的家人朋友、朝夢想不斷前行 ?

拜託不要像前幾屆的學生,很厲害地套用「馬雲模式」、「比爾蓋茲模式」、「巴菲特模式」…在職場有幾個誤區:勤勞就能成功、聰明就能成功、有興趣熱情就能成功…Iam sorry, but it’s not true… 不論是執行長或是公司最厲害的研發天才,他們都是集專長、熱誠、核心能力和運氣完美結合的結果。所以,把別人的成功模式套用在自己的人生事業上,就像硬穿上不合身的衣服,未必是對的。別人的角色已經被別人演走了,你得做你自己。不用別人的標準,而是用你自己的方式定義成功。現在,請誠懇地面對自己,問清楚自己,十年後我真的想要什麼。

我們在一張白紙上,寫下自己的「成功宣言」。後面的事就簡單多了,我們以終為始,把第八年、第六年、第四年、第二年應該達到的短期目標寫出來。這些個短期目標,最好要能夠 SMART – (Specifit 明確化,Measurable 可衡量,Archievable 可達成,Relevant 相關的,Time-bound 具時限性)。然後,用同一張白紙把這些記錄下來。

知彼

孫子說:「知己知彼,百戰不殆;知己而不知彼,一勝一負;不知己不知彼,每戰必殆」。知道自己想要的,接下來就是思考哪個產業、哪個公司、哪種工作更符合自己的需求。這事情談起來會很廣,課堂上,我會用學生想知道的產業、工作提提我的想法。

不過基本的邏輯,如果沒想直接走上創業的路,那還是選擇產業集中的地區,以龍頭、大型企業起始。畢竟在職涯剛剛開始的前幾年還是以學習大公司的組織制度、利用大公司的資源來學習、累積實力為主。如果想要升官快,那儘量選擇公司正在大幅擴張的單位入手。很必要的工作,就是開始上網路看一下公司的產品、研究方向,如果是商學專業,那麼應該研讀一下公司的財報。所有公司在 interview 的時候,熱門的必考題就是知道你對公司了解多少。你越了解公司,可能表示你認同公司的產業生態,如果又具備公司需要的學經歷或能力,那麼你拿到 offer 的機率是會增高。

在這一階段,我們要列出二、三個目標的公司和單位,查一查,那些單位需要什麼專業? 能力? 語言?

佈局

進行到這裏,我們知道自己想要的,也知道我們目標公司、部門和他們需要的能力。那麼事情就更明朗了。我們還是以終為始,如果在畢業之前要具備那些能力,那我目前最重要的三件事情是什麼? 這些能力,最好能夠藉由學校的資源,用修課、做專題甚至以研究論文的方式留下佐証紀錄。另外,應該利用還在學校的時間,找一些關係進入公司當工讀生,如果表現得好,任何部門都可以讓你認識公司的中階主管,增加你進入公司的機率。

要學習的東西很多,我們要注意,我們要準備的是進入公司的「基本能力」,不是去考研究所拿博士論文。面試的考題,通常會不會太精深複雜。學習要從科目的大架構入手,試著用心智圖記錄下來,用「費曼學習法」把重要的觀念,用自己的話講給自己聽。如果該修的課程具備了,我們接下來學習的方向,首選那些學校擁有的資源,且收獲期長的能力。像語言能力、基礎的管理、統計,甚至經濟學、投資學都是未來的你所需要的,在學校又是拓手可得的資源,很值得你花點時間把這些課程修一修。

最後,要對你的時間做出適當的安排,如講義的35頁,安排對你重要的事,其他不那麼重要的事,如果做不到斷捨離,就必需把花在上面的時間降到最低。

功成

如果能夠做到知己知彼,也投入時間佈局準備,那麼我認為,你已經成功一大半了。

據說,「成功」有兩種,一種成功是向前衡量,計算 the gap,看你離目標有多遠。而另一種,則是往後衡量,計算 the gain,看自己成長了多少。

我們對未來展開規劃、佈局、一步步強化自己的實力,會讓你每天都過得心安、充實,朝自己定義的成功前行。計算 the gap,發現離目標慢慢靠近;計算 the gain,發現自己每一天都在成長。

「你見過凌晨四點的洛杉機嗎?」說這話的人是美國職籃 NBA 湖人隊明星控衛 Kobe Bryant,他是世界上最偉大的球員之一。他說一般的球員早上10 點開始訓練兩個小時,中午吃飯休息看比賽錄影,下午再訓練一次。而他呢,每天三點多起床,四點就出去跑步兩小時,回家休息小睡一下,白天和隊友練兩次。晚上回家之後,九到十點再練一次。他的一整天,都圍繞在訓練、休息恢復這兩件事上。他說他天天如此,長久下來,對手和他越差越遠。

Kobe 曾經說過一段話,我覺得很棒,以此互勉:

「You work hard enough to make your dreams come true. You know that, we all know that. But hopefully when you get home at night, you realize that those times when you get up early, you work hard. Those times when you stay up late, you work hard. Those times when you don’t feel like working, you are too tired and you don’t want to push yourself. But you still do it anyway. That is actually the dream.」

最後,鼓勵大家:

再少的進步,乘以 3652 (十年) 也會變得巨大;

再大的困難,除以 3652 (十年) 也將變得可行。

Now, let’s work on it, hold it, and make it happen!!

George Lin

2022/02/01

林震的管理課 – 談領導

領導主要講的是帶團隊。講的是「如身之使臂,臂之使指,莫不制從。」講的是「疾如風、徐如林、不動如山、侵略如火」;做到「打仗悍不畏死,上班如嗑大麻;進度快似旋風,賺錢行雲流水」。那麼你至少要做以下幾件事:

認識你自己 – 形成領導風格
認識你的羊 – 建立信任
說服你的羊 – 建立願景
把羊變成獅 – 達到目標

一樣,先分享 ppt 檔案,歡迎轉傳… 林震的管理課_2_領導

有篇網路上的文章「優秀的公司考慮利潤,但偉大的公司往往考慮人心」。我覺得十分有意思。做過不少的企業輔導,走進一家公司,觀察開會的狀況,就會知道這是一個什麼樣的團隊 – 是充滿野心、活力十足,還是死氣沉沉,一隻腳已踏入墳墓?

領導主要講的是帶團隊。講的是「如身之使臂,臂之使指,莫不制從。」講的是「疾如風、徐如林、不動如山、侵略如火」;做到「打仗悍不畏死,上班如嗑大麻;進度快似旋風,賺錢行雲流水」。那麼你至少要做以下幾件事:

  1. 認識你自己 – 形成領導風格
  2. 認識你的羊 – 建立信任
  3. 說服你的羊 – 建立願景
  4. 把羊變成獅 – 達到目標

這份檔案裏也介紹了一個衝突化解的方法,不論在家庭或是企業,都非常實用。另外,帶團隊可以用 Situational Leadership 這一套方法來實踐。這套理論是概據下屬「能力」、「意願」的不同,調整我們的領導方式,擴大影響力。

最後,我們要破解「什麼激勵最能提高工作效率」。領導力是架構在信任和追隨之上的。沒有兩位傑出的領導者是完全相同的。不論是歷史上開國之君,如秦始皇、劉邦、李淵;或是現代的巨商馬化騰、馬云…他們是如何形成自己的領導風格? 很值得我們研究。

林震的管理課 – PPA 法

提出一個 PPA model。不同於 PDCA,PPA 是:

P: Put down all you have and Prepare (放下心態做準備)
P: Plan and Predict (預測並做好計劃)
A: Arrange and Action (佈局與精準執行)
then, PPA again

林震的管理課_1_目標

從來不敢說,自己很懂得管理。但一路走來,也有一些心得來分享。很多人,因為「個人工作」優秀而升任主管,然而公司卻很少針對新手主管提供良好的課程、或為每一位新手主管指派「合格的導師」。這種放水流的做法使得很多部門,因新手主管的「不良管理」而士氣低落、績效變差。甚至導致優秀的人才離開…

第一堂管理課,我帶著聽眾,從經營、領導、管理這三個大分類來辨認目前擔認的主管職,其核心要務是什麼,用什麼方式可以「先上手」。基本能力上的構建,我提出一個 PPA model。不同於 PDCA,PPA 是:

P: Put down all you have and Prepare (放下心態做準備)
P: Plan and Predict (預測並做好計劃)
A: Arrange and Action (佈局與精準執行)
then, PPA again

為什麼 PDCA 不適合? 還記得基本的論文架構嗎? 雖然畢業有一陣子了,但我仍記得是這個樣子:

  1. 研究背景及動機
  2. 文獻回顧
  3. 研究方法
  4. 研究結果
  5. 結論與建議

寫論文的過程有些類似我們解決問題,第一步可不是做「計劃」。在做計劃之前,至少要知道,解決這個問題能為我們(公司)帶來多少效益。這個問題,在公司內、外、在學界、異業是不是有類似的研究? 別人怎麼解決的? 甚至對上要溝通,是不是主管也認同,解決問題的重要性…這些動作要做到一定的程度,才能往下走 – 開始思考計劃。計劃不應該只有一個,諸葛亮都還有三個錦囊呢。至少要有 A/B 計劃,做為主、次備案。計劃沒經過沙盤推演也不行,魔鬼藏在細節裏。這個部份反而是最難的,會有很多不可控的變數,至少要把關鍵因子找出來監控。沙盤推演除了軍隊裏做得比較好之外,商業界比較沒有好的模型做這一塊。而動手(Do)之前肯定要先佈局,放出尖兵、探子,選擇最佳的時機。精準執行當然也是成功的關鍵之一,但前面這些步驟不做,簡單的題目也就罷了,困難的題目,套用 PDCA 這種莽夫粗暴型的攻略,商業上「偷雞不著」的反例很多。

第三個 section, 是教導主管採用 Delphi 法,做一個類似 KT 的 Situation Appraisal。「非強勢型」主管,用 Delphi 這一招可是有相當多的好處。除了可以塑造主管對部屬的關心、建立信任感。整個過程也是可操作、可順利轉換和說服下屬,朝自己或自己主管想要的方向前進。好處多多。

如果對這份資料有意見和建議,歡迎留言或寫 mail 給我。