[問題] 如何判斷資料是否服從韋伯分布?? (風速)

看板Statistics作者 (就是要問!!!)時間10月前 (2023/07/04 19:41), 10月前編輯推噓2(208)
留言10則, 4人參與, 10月前最新討論串1/1
學校的老師出了一題作業,讓我們用統計軟體做 (我是用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

07/04 20:37, 10月前 , 1F
方法很多,但上課都沒提到相關的方法嗎?
07/04 20:37, 1F

07/04 20:39, 10月前 , 2F
以資料話pdf可以用kernel density
07/04 20:39, 2F

07/04 20:40, 10月前 , 3F
也是要參數,但沒有什麼 “最好” 的組合
07/04 20:40, 3F

07/05 00:51, 10月前 , 4F
Weibull兩個參數 當然不是去慢慢找
07/05 00:51, 4F

07/05 00:52, 10月前 , 5F
Weilbull fitting也算常見 應早有相關套件 網路搜搜
07/05 00:52, 5F
我查到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 可以跑

07/05 08:29, 10月前 , 6F
其分布函數為 1-e^{-(x/b)^k}, 所以做 負log-log 變換可以
07/05 08:29, 6F

07/05 08:32, 10月前 , 7F
變成直線,此可利用做為檢驗資料是否服從此分布的方法。
07/05 08:32, 7F

07/05 12:32, 10月前 , 8F
同樓上,或是找到類似的pattern 做 KS test,或是用 ke
07/05 12:32, 8F

07/05 12:32, 10月前 , 9F
rnel density 試試看
07/05 12:32, 9F
※ 編輯: 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

07/06 08:28, 10月前 , 10F
資料有缺失值,先清理一下
07/06 08:28, 10F
剛剛已經跑出來 但是有錯誤如下網址: 請問是什麼問題呢? 我還是有用結果畫圖 發現誤差不小@@ 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
文章代碼(AID): #1af0LgRk (Statistics)