看板 Statistics 關於我們 聯絡資訊
學校的老師出了一題作業,讓我們用統計軟體做 (我是用R) 因為綠能是目前的趨勢,老師用風速資料當題目,請我們判斷風速資料是否服從韋伯分布 ? 請問該怎麼做呢? 自己思考: 我可以用R軟體畫出韋伯分布 然後將原本的風速資料也畫出來 看曲線是否接 近,但卡了一些問題如下 (1) 用R可以使用curve 但是下面的參數shape=2, scale=1 是我自己假設 該怎麼找到合 適參數呢? curve(dweibull(x, shape=2, scale=1),from=0, to=5, col='blue',xlim = c(0,10)) (2) 原本給我的風速資料,該怎麼畫出pdf曲線 以上...是我遇到的困難 或者請版上的高手指點 該怎麼做? 或者有什麼方法可以判斷是 否服從韋伯分布? 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.10.65.116 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1688470890.A.6EE.html
andrew43: 方法很多,但上課都沒提到相關的方法嗎? 07/04 20:37
andrew43: 以資料話pdf可以用kernel density 07/04 20:39
andrew43: 也是要參數,但沒有什麼 “最好” 的組合 07/04 20:40
recorriendo: Weibull兩個參數 當然不是去慢慢找 07/05 00:51
recorriendo: Weilbull fitting也算常見 應早有相關套件 網路搜搜 07/05 00:52
我查到fitdistr來做使用,了解到是用mle來估計參數 我輸入的指令如下: e2 <- as.data.frame(e[,2])# 我先將資料e以excel匯入 再轉成data.frame ee2 <- as.numeric(e2) #轉成向量 fitdistr(ee2,"weibull") 但是跑不出來 顯示: Error in fitdistr(ee2, "weibull") : 'x' must be a non-empty numeric vector 可是....我的資料都沒有0阿? 怎麼會這樣呢? 是資料有問題嗎? 我把x改成 1:100 可以跑
yhliu: 其分布函數為 1-e^{-(x/b)^k}, 所以做 負log-log 變換可以 07/05 08:29
yhliu: 變成直線,此可利用做為檢驗資料是否服從此分布的方法。 07/05 08:32
a22735557: 同樓上,或是找到類似的pattern 做 KS test,或是用 ke 07/05 12:32
a22735557: rnel density 試試看 07/05 12:32
※ 編輯: askpeople (27.52.37.121 臺灣), 07/05/2023 22:43:24 ※ 編輯: askpeople (27.52.37.121 臺灣), 07/05/2023 22:44:01 ※ 編輯: askpeople (27.52.37.121 臺灣), 07/05/2023 22:44:35
andrew43: 資料有缺失值,先清理一下 07/06 08:28
剛剛已經跑出來 但是有錯誤如下網址: 請問是什麼問題呢? 我還是有用結果畫圖 發現誤差不小@@ https://lurl.cc/CsE5n e2 <- as.data.frame(e[,2]) > ee2 <- as.matrix(e2) > fitdistr(ee2,"weibull") shape scale 1.58705013 37.41025572 ( 0.00584094) ( 0.12270357) Warning messages: 1: In densfun(x, parm[1], parm[2], ...) : 產生了 NaNs 2: In densfun(x, parm[1], parm[2], ...) : 產生了 NaNs 3: In densfun(x, parm[1], parm[2], ...) : 產生了 NaNs 4: In densfun(x, parm[1], parm[2], ...) : 產生了 NaNs 5: In densfun(x, parm[1], parm[2], ...) : 產生了 NaNs 6: In densfun(x, parm[1], parm[2], ...) : 產生了 NaNs ※ 編輯: askpeople (27.52.37.121 臺灣), 07/06/2023 22:13:23