[程式] [R] 用ks.test測試3 parameter weibull

看板Statistics作者 (werty)時間14年前 (2011/12/15 21:32), 編輯推噓0(0013)
留言13則, 2人參與, 最新討論串1/2 (看更多)
TITLE請著名軟體類別 R [軟體程式類別]: R [程式問題]: 統計和軟體 [軟體熟悉度]: 高(1年以上) [問題敘述]: 我已經用fitdistr(MASS)做出 3 parameter的weibull函數 想進一步的用ks.test測goodness of fit 但是ks.test好像只能測 2 parameter的? (google過沒有找到其他方法) 如果我先把自己的資料減掉fit出來的location可以再用一樣的shape和scale去測嗎? p.s. 我是因為發現ks.test在測時 location跑掉會有不一樣的結果才這樣想的 如下範例 [程式範例]: #先做一筆資料 temp<-rweibull(1000,shape=1.75,scale=18) #goodness of fit , pvalue=0.99 (當然..) ks.test(temp,'pweibull',shape=1.75,scale=18) #位移 temp<-temp+30 #pvalue<0.0001 ks.test(temp,'pweibull',shape=1.75,scale=18) ----------------------------------------------------------------------------- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.73.189

12/15 22:33, , 1F
y 不要給 'pweibull', 把相對應於x的cdf先求出來, 再餵
12/15 22:33, 1F

12/15 22:35, , 2F
給ks.test(x,y)就可以了. 例如, test location 28, 則
12/15 22:35, 2F

12/15 22:35, , 3F
y <- pweibull(temp - 28, 1.75, 18)
12/15 22:35, 3F

12/15 22:47, , 4F
這樣子會不會其實不是測到3 parameter的goodness?
12/15 22:47, 4F

12/15 22:52, , 5F
眼殘了, y要給的是data不是cdf. sorry
12/15 22:52, 5F

12/15 22:53, , 6F
可能要改source code.
12/15 22:53, 6F

12/15 22:54, , 7F
x <- y(sort(x), ...) - (0:(n - 1))/n 這行要改成
12/15 22:54, 7F

12/15 22:54, , 8F
x <- pweibull(sort(x) - 28, ...) - (0:(n - 1))/n
12/15 22:54, 8F

12/15 23:12, , 9F
樓上的意思是我要去改ks.test的ocde嗎?
12/15 23:12, 9F

12/15 23:12, , 10F
我不懂(0:(n - 1))/n這是什麼?
12/15 23:12, 10F

12/15 23:41, , 11F
用ks.test為樣版,按定義覆寫它. emperical cdf of x.
12/15 23:41, 11F

12/16 00:11, , 12F
下面可能可行, 也比較容易. 寫個新函式叫 pweibull.new
12/16 00:11, 12F

12/16 00:11, , 13F
然後把 'pweibull.new' 當 y 丟給 ks.test 就行了.
12/16 00:11, 13F
文章代碼(AID): #1EwVRrpS (Statistics)
文章代碼(AID): #1EwVRrpS (Statistics)