① 拓端tecdat|R語言股票收益分布一致性檢驗KS檢驗Kolmogorov-Smirnov、置換檢驗Permutation Test可視化
今年的收益是否真的與典型年份的預期不同?這是一個常見的問題,可以通過均值相等或方差相等的測試來回答。然而,問題進一步深化時,我們開始關注收益密度之間的差異,這涉及所有時刻和尾部行為的比較。這個問題的答案往往不那麼直觀。
在正式檢驗收益密度之間差異的方法中,Kolmogorov-Smirnov檢驗和置換檢驗(Permutation Test)是兩種常用手段。Kolmogorov-Smirnov檢驗基於經典的統計理論,通過比較兩個分布的累積分布函數(CDF)來評估它們的相似性。置換檢驗則是一種現代方法,它通過模擬來評估兩個樣本是否來自相同的分布。
首先,我們從價格數據中提取每日收益。通過計算均值和標准差,我們可以觀察到2018年與其它年份的收益存在輕微差異。為了更直觀地理解這些差異,我們可以估算收益密度。
接下來,我們通過Kolmogorov-Smirnov檢驗來評估2018年收益分布與其它年份收益分布之間的差異。這一檢驗通過計算累積分布函數之間的最大差異來量化分布的相似性。最大差異的分布已知,且作為檢驗統計量,如果該值在理論分布的尾部顯著,則可以推斷分布存在差異。
在R語言中,我們能夠輕松執行Kolmogorov-Smirnov檢驗,得到最大差異為0.067和P值為0.3891,表明沒有證據表明2018年的分布與其他年份的分布存在顯著差異。
置換檢驗作為另一種方法,同樣能夠用於比較兩個密度或分布的相似性。相比於Kolmogorov-Smirnov檢驗依賴於極限分布,置換檢驗通過模擬提供了一種不依賴於漸進性的方法。通過在假設下排列數據,我們可以估計實際差異是否顯著大於預期差異,從而得出分布是否相同的結論。
在R語言中,執行置換檢驗後,我們得到的P值與Kolmogorov-Smirnov檢驗結果相當,進一步驗證了我們的假設,即2018年的每日收益分布與其它年份的分布沒有顯著差異。
此外,我們還介紹了兩種方法的R語言代碼實現,以便讀者能夠直接在自己的環境中進行操作和驗證。
最後,提及了關於Matlab、R語言在疾病制圖、隨機波動率模型、貝葉斯估計、生存分析等領域應用的其他文章,旨在提供更廣泛的統計分析工具和方法。
② R語言怎麼把股票日收盤價轉換成對數收益率
知道一系列收盤價向量X,length=1000,求對數收益率的R語言代碼
acf(int[,2], lag.max = 15,type = "correlation", plot = TRUE,main='int monthly
acf(int.l[,2], lag.max = 15,type = "correlation", plot = TRUE,main='int monthly
log return')
Box.test(int[,2], lag = 5, type = "Ljung-Box")
Box.test(int[,2], lag = 10, type = "Ljung-Box")
Box.test(int.l[,2], lag = 5, type = "Ljung-Box")
Box.test(int.l[,2], lag = 10, type = "Ljung-Box")
運行結錯誤辦
> int <- read.table("d-intc7208.txt", head=T)
錯誤於file(file, "rt") : 打鏈結
外: 警告信息:
In file(file, "rt") :
打文件'd-intc7208.txt': No such file or directory
+ acf(int.l[,2], lag.max = 15,type = "correlation", plot = TRUE,main='int monthly
錯誤: 意外符號 in:
"
acf(int.l[,2], lag.max = 15,type = "correlation", plot = TRUE,main='int"
> log return')
錯誤: 意外符號 in "log return"