發表文章

目前顯示的是 5月, 2017的文章

標準差與 Wald 統計量

圖片
可能性或信賴區間對 MLE 是有用的添補,認可了在一個參數 theta 的不確定性; 它比 likelihood function 更簡單。前面我們也提過 observed Fisher Information : I(theta) 也是 MLE 的添補。那麼它與基於可能性的區間的關係為何呢? 在 regular 的情形下,log-likelihood 的二次趨近運作良好, I(theta) 是有其意義的。這時我們有: Log(L(theta)/L(theta-hat)) ~ -1/2*I(theta-hat)(theta-theta-hat)^2 如此,可能性區間 { theta | L(theta)/L(theta-hat) > c } 就可趨近於: theta-hat  ±  - (-2*log(c))^(1/2)(I(theta-hat))^(-1/2)  在 normal mean 模型,就有一個確切的有信心水準的信賴區間 Prob(chi-squared < -2log(c)) 例如:  theta-hat ± - 1.96 * I(theta-hat)^(1/2) 是一個確切的有 95% 信心水準的信賴區間。  在非 normal 的情況下,如上篇提到的有一 95%信心水準的信賴區間。注意: 設置此區間涉及兩層的趨近: log-likelihood 的二次趨近(I(theta-hat)與信心水準(Willk's) 的趨近。 也可與 normal mean 模型類比,一般 (I(theta-hat))^(-1/2) 提供了 theta-hat 的標準差訊息。常例以 'MLE{標準差}'一對的形式來報告。它主要用途是用 Wald 統計量來檢定 H0: theta = theta0。 z = (theta-hat - theta0)/se(theta-hat) 或去計算 Wald 信賴區間。例如 Wald 對 theta  95% 信心水準的信賴區間就是:  theta-hat ± 1.96*se(theta-hat) 在 normal mean 模型,在 H0 條件下,這個 Wald z 統計量...

可能性比檢定(Likelihood ratio test)

直接使用 likelihood  來做假設檢定,例如去檢定一個 Null hypothesis: H0: theta = theta0,我們可以以報告 H0 的可能性 likelihood 作為 theta0 標準化過的可能性 likelihood : L(theta0)/L(theta-hat) 我們能夠去 reject H0,宣告數據不支持它,假如它的可能性是太小,意味著有其它被數據有多很多支持的假設。多小才算太小就留給主觀判斷,它可依應用情況或其它可能包含先驗知識的來考量。 在法庭的許多情況,對 "被告是無辜的" 的假設,在我們可以否決它之前,可能設定它在低可能性的水準,與此同時 "經基因工程的食物沒有副作用" 的假設可以更輕而易舉的被否決。 無論如何,可能性測定的議題在這裡也是有關係的,如先說一個 5% 的可能性,這可能沒有一個固定的意義。 在正常的一個參數的問題中,可以拿到一個藉著 Wilk's statistic 的分布,基於機率測定所產生的 P-值。由之前的例子,察看到 L(theta0)/L(theta-hat) = c,P值的趨近值是 P( chi-squared > -2 log(c)  這展示出在可能性比(likelihood ratio) 與 P-值間通常有些關係,如此 P-值用到的時機就是用它來做為支持度的量測。無論如何,因為 P-值會依賴實驗的樣本空間,故這關係會視實驗而定。雖然 P-值一直以來受到一些統計學家的批評,但它在實務上還是受到廣泛的使用,它似乎不太可能消失。 在 non-regular 的問題中,我們不知道如何去測定可能性,我們可能必須使用純可能性比(likelihood ratio)作為支持度的量測。當沒有基於機率推論的正當理由時,這個與純可能性區間(likelihood intervals)的使用一致。例如說,去檢定 theta = 0.5, 而如何去定義此檢定的一 P-值不是很清楚時。另外的例子是一般在檢定統計量的分布為非對稱的情況下: 確切兩邊的 P-值是模擬兩可,此時就可能有好幾個角逐的定義。

likelihood 區間的解釋

一般而言,我們將一個 likelihood 區間以下面方式解釋: 像一般的信賴區間: 如果一有確切或大樣本的正當理由下。這個涵蓋大部份常規的數據分析所選取的參數會使得 likelihood 是合理的 regular。 像一個純 likelihood 區間: 假如沒有確切 probability-based 的正當理由而且大樣本理論是可疑的時候,這通常涉及小樣本的問題伴隨著非 normal 或複雜的分布,這部份此 likelihood 毫無疑問的是非 regular。當然用它也包含一些像是用 probability-based 解釋起來明顯荒謬的情況,如前篇所舉的例子。 在實際數據分析中,通常有一個不可避免的主觀判斷:承認信心程序目前的主導地位。我們會錯誤在 regularity 這邊,往往報告近似置信區間。因為 likelihood-based 區間對 regularity 的要求是相當寬鬆,所以上述的情況會減輕。 (為了取得一個信心水準,我們需要去做一個額外的關於數據如何在未來的實驗中被收集的假設) From: All In Likelihood: Statistical Modeling and Inference

何時我們使用 likelihold 區間?

何時我們使用純 likelihold 區間? 一個 likelihood 區間表示一個符合或被數據所支持的參數值集合。在給定模型情況下,一個 likelihood 區間是一種客觀的區間,在這種意義下,它沒有涉及任何主觀先驗的選取。無論如何,Fisher 是清楚 likelihood 本身只是提供一種相較於 probability-based 而言較弱推論形式。不像信賴區間,一個純 likelihood 區間沒有一種由重複抽樣而來的解釋 - 默默參照到就像實驗大量的被反覆所產生的長期的性質。這些長期性質提供 probability-based 區間一種(潛在)外在的有效度可以推廣普遍的範圍。 像是 likelihood-based 區間這種命名可能令人混淆,因為純 likelihood 區間與傳統 likelihood-based 信賴區間都是由相同的 likelihood function 所衍生出來。事實上,數值上來說它們是相同的。而我們現在這邊討論的是與這個區間有關聯的不確定性。傳統上,獲得它只能藉著機率(或信賴水準)。但由 Fisher支持圈的觀點這也可以藉由 likelihood 給報告出來。 從此以往,一個 likelihood-based 的區間,如果有一個理論上合理的信心水準, 則叫它信賴區間; 否則就叫它 likelihood 區間。大家都知道一般一個信心水準實際上不是針對一個實際的觀察區間,因為它只有在長遠的觀點看才會有意義。 假如我們將一個區間想成是 theta 在哪裡的猜測,一個 95% 正確的機率不能套在某一個各別特別的猜測。 (相比之下,由 likelihood 所提供的不確定的意義之下,它只套用在某一個各別特別的猜測。) 下面是改編自 Berger & Wolpert (1988) 的例子。 某一個人選一個固定的整數,要求你猜這個數基於下面這些數據: 他將投一枚硬幣兩次(但你看不到所投的結果),同時在每次投幣時,如果是正面他會報 theta + 1;否則他報 theta -1。 因此,數據 X1 與 X2 是 iid 由在 theta+1 與 theta -1 都有相同為 0.5 的機率分布來的樣本。例如,他可能報 X1=5 與 X2 =5。 下面的猜測將有 75% 是正確機率: ...

Likelihood 區間的信心水準

與方便的同時,純 likelihood 推論有一嚴重的弱點: 它沒有一個外在確定方式來證明切點 c 有理。因為這選出的 c 並沒有參考到任何可以觀察的東西。 一般校準問題與此 likelihood 關連: 一 5% likelihood 沒有一個嚴格的意義(它依賴參數空間的大小)。 相較而言,一個 5% 機率作為一個長期頻率通常是有意義。所以,一種調整 likelihood 的方式是藉由機率。 這是在統計上傳統 likelihood-based 推論。 Fisher 宣稱無論何時只要可能我們應該使用機率 probability-based 推論; 這邊他將有準確信賴區間可獲得的情況與大樣本的情況納入。傳統(頻率學者)的對未知參數 theta 的推論靠的是估計值 theta-hat 的分布理論。 在一般情況下,大樣本理論是必須的。但它在 normal mean 模型下是簡單的。也就是當有 log(L(theta)/L(theta-hat)) ,此時如果 theta-hat 的估計式為 normal 則我們就較容易求得log(L(theta)/L(theta-hat)) 確切的分布。 例如,在 normal mean 模型下, Wilk's likelihood radio = 2log(L(theta-hat)/L(theta)) 就是一個確切的 chi-squared  分布。有確切的分布,我們就可以求取其大於某一切點 c 的機率。這是一個用來校準 likelihood 的關鍵分布理論。對一個未知但為固定的 theta 而言,它的 likelihood 區間 {theta| L(theta)/L(theta-hat) > c} 包含此 theta 的機率就是: Prob( L(theta)/L(theta-hat) > c) = Prob( 2log(L(theta-hat)/L(theta)) < -2log(c))                                          ...

Likelihood 區間

圖片
在一般 regular 的條件下,我們簡單呈現 MLE 與它的標準差。在沒有那麼 regular 的情況時,我們可以建構那些仍然被公認還有不確定性的區間,以簡化對 likelihood function 的溝通。 在 Fisher 1973 年的書中提出了,在一些問題中,我們解釋 likelihood function 直接用來溝通關於我們對 theta 的不確定性。這些問題包含無法用精確機率來進行推論,同時樣本太小也會使大樣本得結果不再成立。 一個 likelihood 區間是定義成一包含有足夠高 likelihood 的參數值集合 :  { theta |  L(theta)/L(theta-hat) > c } ,c 為切點; L(theta)/L(theta-hat) 為 normalized likelihood。 在近代幾個作者 Barnard et al. (1962), Sprott (1975,2000), Edwards (1992), Royall (1997) , 與Lindsey (1996, 1999a,b)  都是直接用 likelihood 推論的擁護者。 Fisher 給了一個在binomial 參數情況下的特別例子。如何選擇切點 c 的問題先不討論,但他建議參數值小於 1/15 或 6.7% 的 likelihood 時,明顯的是它們將被嚴重懷疑。這樣的處方只有對數量參數有用,一般而言有調整問題我們需要去處理。 例如: 在 binormal 的例子,哪裡我們觀察 n=10 個裡出現 x=8 次。 theta 的 likelihood 區間在 c = 15% 與 4% 是 (0.50,0.96) 與 (0.41,0.98)。通常此區間沒有任何固定的公式,但是實際上用數值方法是相當容易的找到它。對數量參數,我們就使用格子搜尋來找它。 From: All In Likelihood: Statistical modeling and inference    

先仔細直視所有事實

上周五下午,同事在執行 SUMAX FE 時,報告它的執行結果有重複輸出的問題。 結果去查 log,哈,log 檔的輸出也亂了。 本來以為是 web server 呼叫 SUMAX 的方式出問題。加班試了幾種執行方式,想避掉這樣的干擾,但結果並不理想。 星期六早上又用一個小時的時間試另一種執行方式,結果可行。所以,我有至少有一個方案可行了 經過兩天的休息的沉澱後... 我腦子有一個想法出來,會不會,問題背後的本質是一樣的 - 全域變數的控制。 所以,今天針對上述問題進行程式碼的調整: 1. 在模組中,將部分全域用傳參數的方式取代。除非不得已,否則不用全域變數。 2. 以 batch id 名稱區隔不同的 logger。 現在,無論將程式直接嵌入或 藉由 cgi 機制執行都有正常的輸出結果與 log 了。 問題發生時,為何沒立刻想到呢?  證據已經如此明顯,都是後見之明說的。  問題發生時,先別忙著找兇手。而是應先仔細直視所有事實。這是絕對必要的,從此出發之後,將這些事實進一步歸類,這對解題將有非常大的幫助。   

MLE 附近的性質

圖片
在 normal distribution 成立的性質,在一般情況下也會趨近成立。在所有 likelihood的應用中,我們這裡有一個實用的規則:一個合理常見的 likelihood 意味著 theta-hat 是趨近於 normal 。對 normal 模型是真的陳述,對 theta-hat 通常也會趨近於真。 我們在 "theta-hat" 附近,進行泰勒展開式, log(L(theta)) ~ log(L(theta-hat)) + S(theta-hat)(theta - theta-hat) - 1/2*I(theta-hat)(theta - theta-hat)^2 因為  S(theta-hat) = 0 ,[我們定義 S(theta) 為 Log-likelihood function => log( L(theta)) 的第一階微分,而 theta-hat 為 MLE 使得 S(theta-hat) = 0] log(L(theta)/L(theta-hat)) ~ -1/2*I(theta-hat)*(theta -theta-hat)^2 對上式進行一階微分 [theta 在 theta-hat 附近],則 S(theta)  ~ - I(theta-hat)*(theta - theta-hat) 上式兩邊可以一起除 - I^(1/2) , S(theta) /-I(theta-hat)^(1/2) ~ I(theta-hat)^(1/2)(theta - theta-hat) 好處是去掉 scale,在檢查此泰勒二階趨近時,可以畫 出 S(theta) /-I(theta-hat)^(1/2)  vs. I(theta-hat)^(1/2)(theta - theta-hat)  看是否是單位斜率(因為去掉 scale了)。 在 normal 的情況,就一定是單位斜率。 任何只要是平滑函數在就一定是 local linear,問題只於在此 local 有多寬我們可以期待看到此線性 linearity? 在理想的 normal 狀況下,I(theta-hat)^(1/2)(theta - theta-hat) 為 ~ N(0,1),所以我們直覺上應可以至少...

計算進入 likelihood 世界的入口 - 規律的 likelihood function

關於 likelihood, Fisher 在 1922 年起初的引入是用它在於參數的估計,也就是 maximum likelihood estimation。但他在之後並沒有就將它就只做為估計參數的一個裝置。 這likelihood 是一種以數據來進行推理的工具。特別是用來處理數據中因所含訊息的限制而衍生的不確定性。整個 likelihood function 就是用來擷取在數據中所有關於參數的資訊。它不只是僅有最大值而已。 MLE 最明顯的角色就是提供(有興趣)參數的點估計,而有點估計的目的是由應用領域所決定。在一些情況,模型的參數有些物理的意涵,故合理的去問在所給定的數據之下最佳的估計為何;這種不確定是一種麻煩事,不是科學問題的一部份。而 MLE 通常是一合理的回答。MLE 另外的重要角色在簡化多參數 : 藉著將一些麻煩參數用MLE 來取代。 我們應當將 MLE 視作用來簡化 likelihood function 表現的一種設備,尤其特別是在實際資料分析的情況下: 用一個數字比用一個函示來的簡單。想像一下在敘述一研究母體的特性如此的標準工作中,我們心思仍然有可能去掌握、交互、比較和推理 10 或甚至 20 個樣本平均或比例,但如果去持續參照 20 個 likelihood functions 這可能沒辦法了。 一般而言,一個單一值無法足以表達一個函示。同樣的 MLE 有很少足以代表 likelihood function。假如一個 log-likelihood function 可以用一個二次函式來趨近,然後這我們需要至少兩個量來表示它: 最大值的位置(代入log-likelihood function 的一次微分式為 0)與在最大值的曲度(代入log-likelihood function 的二次微分式應為負值,故定義它為負的二次微分式值。當此值愈大,表示最大值的 peak 愈強愈明顯,最大值的作為最大值地位的不確定愈小 - 它的倒數就是此 MLE 的 variance,這就是有名的 observed Fisher Information)。在這種情況下的 likelihood function 稱作規律 regular。當樣本變大時,likelihood function 一般會變規律 regular。 重述一次這關鍵的要求,所謂規律...

要不要換紅包?

如果有兩個紅包,其中一個紅包裡的錢是另一個紅包的兩倍。如果你選一個紅包,你有機會可以換另一個紅包,請問你要不要換另一個紅包? 由期望值的觀點,下一個期望拿到的錢會是: 假設你目前紅包袋的錢是 x,你換一個紅包可能是 1/2 * x 或 2 * x,所以換一個紅包的期望值是  1/2*x/2 + 1/2*2x = x + x/4。比原來 x 還多 x/4 所以理性上該換。 問題是你換了以後,問你要不要再換?  它們的期望值還是一樣。 你可以想一下為何如此? 如果由 likelihood function 來看: 目前的紅包內如果是 x,theta 表示紅包內較少的錢數;  2*theta 表示紅包內較多錢數。 L(theta=x) = Prob(X=x | x=theta) = Prob(X=theta|theta=x) = 1/2 同時, L(theta=x/2) = Prob(X=x | x=2*theta) = Prob(X=2*theta|theta=x/2) = 1/2 當抽到是 x 時,theta 的值是 x 或 x/2 - x 發生的機會相同。沒有哪一個 theta 值會使得 x 發生的機會較大。下一個紅包含 x/2 或 2x 的可能性相等。 反過來說,x 有沒有含可供辨別 theta 的訊息呢? 這問題就有點貝氏的語意了。 由貝氏定理得知與 Likelihood function 的關係:                               f(theta|x) ~ constant * f(theta)*f(x|theta)                                            ~ constant * f(theta)*L(the...

金丹不藥

有時會走進胡同裡 - 轉不出來。需要明燈,照一下。 但這需要腦子先放下一些也許是執著或驕傲或其他亂七八糟的東西 - 先退個三步: 第一步由目前的解法退出來,回到問題;第二步再從問題退出來,回到背景;第三部由背景退回自己。 放鬆觀察退回的過程。 之後再將時間空間放大伸縮,隨著意識的流動漂流,直到腹中金丹融化為止。

Outliers Patterns 與 ARIMA 配適

圖片
用 R 來舉例: library(forecast) library(tsoutliers) y <- ts(c(30,32,34,35,36,38,39,78,77,79,84,89,90,95,140,92,93,96,94,91)) outliers_patterns <-  outliers(c('LS','TC'),c(8,15)) outliers_patterns_effect <- outliers.effects(outliers_patterns,n=length(y)) aa <- auto.arima(y, xreg=outliers_patterns_effect) plot(aa$x) lines(aa$x - residuals(aa),col='red') 上述在第 8 期發生 Level Shift 而在 第 15 期有 Temporary Change。 1. 使用 tsoutliers 中的 outliers.effects 產生事件列。 2. 將事件列作為回歸的解釋變數 3. 使用 arima 對 residuals 進行配適 4. 結果如上圖。 如果沒有事件列的輔助,則會發生遲延情況如下: aa0 <- auto.arima(y) plot(aa0$x) lines(aa0$x - residuals(aa0),col='green') 只有 Level Shift 事件時,如下: 只有 Temporary Change 事件時,如下:

Likelihood function 似然函式,還是可能性函式

likelihood function 被翻譯成似然函式,立刻使這個名詞令人尊敬,同時讓人覺得神祕起來。這種讓人心理的距離變遠,顯然有益處 - 這些專家好厲害! 我跟他們的智力差好多。優越感不知不覺的慢慢提升,這種感覺是否有個高潮,我不知道,但我期待趕快結束。因為我想知道它到底是甚麼? likelihood function 較直白就是一個可能性函式。哪一種可能性呢?  參數的可能性( 參數不是隨機變數,所以它們沒有機率的 density function - 這是偏頻率學派的一種說法。) 就是在數據發生後,回過頭來,假設它們的機率模型,此時這模型中參數的可能性。不同的參數值,使得已出現的數據(或事件)有不同的發生機率。可能性函式 Likelihood function 這就是將參數值對應到事件的機率值 : 當此參數為 theta 時,事件的發生機率 -  L(參數) = P(事件|參數)。 它與檢定的想法有密切的關聯。檢定的方式是假設 H0: theta = 0 ,收集數據(事件)為 x。如果 H0 為真,則 theta = 0,則事件(數據)的發生機率為 p = P(事件|theta=0) 。而當 p 小於 5% 時,統計上判斷 H0 可能不為真。 檢定 p 是不是只是取用當 theta = 0 時, likelihood function 的值呢?  Likelihood function 可以用在檢定嗎 ?

謊言,該死的謊言和統計

在統計數據分析時,很重要去認知到除了數據本身的隨機性之外,歸納的不確定性通常會出現的。由於歸納過程和統計問題的經驗性質,所以爭論有時是不可避免的。 以交通事故死亡例子來說明爭議如何產生. 假如死亡數由 170 增加到 300,這似乎像一個真的改變,說事故率增加這不會有爭議 : 這也就是說不確定性是小的。 但假如進一步細查揭示了一個主要交通事故涉及 25 輛車及大量的死亡數,或者是一場涉及 40 人死亡的巴士意外呢? 在這一點我們開始思考有可能一個較好的方式去審視這個問題是藉著事故數而不是死亡數。 也有可能大部份的意外都發生在冬天,而在此之前它們分布在一整年。可能年紀較輕的駕駛增加,這樣就產生了將數據依年齡分組的需要。 藉著駕駛經驗的年數來分組可能較合理,但這樣的定義方式只有對駕駛有意義,但這些死亡數中還有包含乘客與行人。 這樣的歸納過程出現兩個問題: 一是歸納過程傾向去增加隨機不確定性。因為隨著原來的觀測值被分割成較小解釋性的分組,我們定會比較小的數據集(更不確定了~)。另外的問題是決定 - 在找一個解釋時,在哪裡停止。這問題沒有正式或精確的答案,如此統計學家或科學家就以不同情況來進行不同的處理,這裡通常都訴諸一個判斷。最接近的指導方針是停止在一個點上,哪裡我們有一個合理的控制不確定性,哪裡會推遲決定的那些其他利益因素,存在太多的不確定性。統計學家各有不同的經驗、專業、洞見、與偏見,所以從相同的觀測數據,他們可能會得出不同的結論。當心!  這就是我們可以找到的"謊言,該死的謊言和統計"的所在之處。 from All In Likelihood: statistical modeling and inference using likelihood

統計問題與模型

隨機元素 在統計問題中,有明顯的隨機元素無法以算術法則處理。以交通為例,我們直覺上接受有不同的意外事故或隨機事件會造成死亡數的增加;事實上如果這兩個數字完全相同我們可能會驚訝。因此,統計方法需要隨機模型去處理這方面的問題。而這些模型與方法的發展是統計的數學或演譯面向。 雖然模型的數學操作是精確沒有疑義的,但模型的選擇本身卻是不確定的。記住這一點很重要,因為大部份統計分析的正確性是建立在模型是正確的條件下。 這是權衡 - 我們分析時需要一些模型(尤其當只有稀疏的數據時)來處理,但錯誤的模型卻會導致錯誤的結論。 歸納的過程 統計問題是歸納的: 他們處理的問題是由觀察特定現實的結果所產生的。這些現實通常是由某個實驗或研究的產出。這些問題典型是較觀察值本身更加一般化: 他們問一些不是直接觀察到的,而是以某種方式含在這些觀測數據中。我們說我們由數據"推測"某些事情。以交通死亡數為例,在說明解釋產生隨機不同的意外事故之後,我們想要去比較的潛在事故/死亡率。 如在數學上的歸納問題,有時只有需要一些部份的可獲得訊息用來建立新理論。在一個演譯問題上,為了推導主要結論必須使用所有數據,無法接受略掉任何部份的數據。與統計推斷有某些相似之處的歸納問題是法庭審判 - 確定被告有罪或無罪。證人發誓說“真理,全部真理,只有真理”體現了歸納過程的要求。 統計不確定有兩類: 1. 隨機的不確定: 包含固定參數與隨機結果的不確定性。關於參數的不確性一般可以用進行大量的實驗來降低。許多在統計推論上的概念都是處理這種不確定性,如樣本分布、變異、信心水準、p-value 等。 2. 歸納的不確定: 歸咎於訊息的不完整,因為我們可能不能量化或控制這類的不確定性,這種是較困難處理。 數學上來說,我們可以視隨機不確定性是在一個所假設的模型上的條件下而存在的。在模型內的數學是完全精確的而且是在統計學家的控制當中。然而,模型選擇的本身卻帶有歸納的不確定性,這不只不能精確而且統計學家也無法掌握。 這兩類型的不確定性尤其在大的數據集時會被放大。隨機的不確定性變得比較不重要,而歸納的不確定性變得非常重要:  如 我們選對模型類別了嗎? 我們可以一般化我們在數據中的發現嗎? 我們已考慮或量測所有相關的變數嗎? 我們問對問題了嗎? 給定一數據,依...

典型的統計問題

在現實世界的問題中,不確定性是普遍的。但是統計是唯一科學的分支,系統性的努力去處理這些不確定性。對這些因受限於訊息而有不確定性的問題,統計是適用的: 統計目的不是去除不確定性,在許多案例中它僅僅是去量化它,在分析完成後不確定性還是不會消失。 . 範例: 阿斯匹靈數據  在一個對低劑量阿斯匹靈對健康個人預防的好處研究中,對總共有 22,071 的健康的人隨機的安置於阿斯匹靈或安慰劑組,平均追蹤 5 年。在追蹤期間心臟病或中風的數據如下:           Group      Heart     Strokes        Total                           attacks          Aspirin        139          119      11,037          Placebo       239            98      11,034          Total           378           217      22,071 主要的醫學問題是統計的: 阿斯匹靈有好處嗎?  明顯的在阿斯匹靈組有較少的心臟病 139 對 239。但是我們面對相同問題:  這證據有足夠強到我們有信心回答這問題嗎?  中風的副作用在阿斯匹靈組是較大的,雖然 1...

R 中的 type 與 class 有何不同? quote 與 substitute 是有何用處?

======================================================================= R 中的 type 與 class 有何不同? class 是由 OOP 的觀點出發,對於物件所屬的"類型"所產生出來的; 而 type 是 R 內部的角度對物件類型的辨別。 class 是R物件的屬性,無論物件本身底層如何的被儲存,class 可以任意的被指定; 而 type 呢? 它決定了物件底層如何的被儲存。 所以,class 是表示物件的邏輯特性而 type 則描述了實體的特性。 ======================================================================== R 中的 quote 與 substitute 是有何用處? quote 與 substitute 函式是在對 R 語言本身進行運算時用到。 假設有一 R expression E,  E_callable <- quote(E) 上述  quote 會阻止 R 直接執行 expression E,而取而代之的是傳回一 callable 物件 E_callable。此 E_callable 可以傳入 eval 函式指定其執行的 environment/list 與 enclosing。  eval(E_callable, enviro, enclosure) 根據下述方式執行 E_callable 物件: 首先,如果傳入的 enviro 為 environment,就在此 environment 或它的父 environment、...查照所有在 E_callable 中所有的符號來執行 E_callable。 如果傳入的 enviro 為 list,就在此 list 查照所有在 E_callable 中所有的符號來執行 E_callable。如果有符號沒在 list 上,則轉到 enclosure environment 及其上所有父 environment 中找尋。 如果沒有找到,則丟出錯誤訊息。 而 substitute 會將 expression 轉成 lexical 的 parsing tree 同時...

科學宗教的危險 - 獨裁

最早 宗教式 : 知識 = 經文 * 邏輯 啟蒙到現代 科學式 : 知識 = 實驗 * 數學 近期 人文式 : 知識 = 經驗 * 感受 科學技術用種種方式,如演算法、AI、基因與醫學工程等,意圖統一扮演上帝,這些力量需要加以留意,因為他們看起來十分誘人,但本質上是獨裁。 而商業也漸漸由利用者的角色,反過來被他所控制。 無論使用任何工具,莫忘初衷。 人的意識如果是生化演算法的結果、或附屬品、或廢棄物,哪今天心情不好用個藥,看個通靈少女,調整一下。 那快樂、永生、神人未來成為平常。 科學是通往天堂的梯子,但不是天堂 。問題他是嗎 ? 還是他宣稱他是,要我們相信他呢? 目前科學的地位太 over 了!!

Optimize 與 MASE

圖片
######################################################################## 1. load scipy . optimize. minimize # weights are summed to be 1 2. cons = ({ 'type' : 'eq' , 'fun' : lambda x : 1 - sum ( x )}) 3. def cal_mase(w): forecasts by w[0]*method0 + w[1]*mothod1 + ... calculate the mase from forecasts and testing set 4. min_mase = minimize (cal_mase , init_weight0 , method = 'SLSQP' , constraints = cons ) 5. get the weights ######################################################################### wilcox.test ######################################################################### How to estimate the parameters of ARIMA https://stats.stackexchange.com/questions/77663/arima-estimation-by-hand ## Load Packages library(stats) library(forecast) set.seed(456) ## Simulate Arima y <- arima.sim(n=250,list(ar=0.3,ma=0.7),mean = 5) plot(y) ## Optimize Log Liklihood for ARIMA n = length(y) ## Count the number of O...