最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

基于R語言股票市場收益的統(tǒng)計可視化分析

2021-06-02 17:27 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=16453?

原文出處:拓端數(shù)據(jù)部落公眾號

?

金融市場上最重要的任務之一就是分析各種投資的歷史收益。要執(zhí)行此分析,我們需要資產(chǎn)的歷史數(shù)據(jù)。數(shù)據(jù)提供者很多,有些是免費的,大多數(shù)是付費的。在本文中,我們將使用Yahoo金融網(wǎng)站上的數(shù)據(jù)。

在這篇文章中,我們將:

  1. 下載收盤價

  2. 計算收益率

  3. 計算收益的均值和標準差

讓我們先加載庫。

  1. library(tidyquant)

  2. library(timetk)

我們將獲得Netflix價格的收盤價。

  1. netflix <- tq_get("NFLX",

  2. from = '2009-01-01',

  3. to = "2018-03-01",

  4. get = "stock.prices")

接下來,我們將繪制Netflix的調(diào)整后收盤價。

  1. netflix %>%

  2. ggplot(aes(x = date, y = adjusted)) +

  3. geom_line() +

  4. ggtitle("Netflix since 2009") +

  5. labs(x = "Date", "Price") +

  6. scale_x_date(date_breaks = "years", date_labels = "%Y") +

  7. labs(x = "Date", y = "Adjusted Price") +

  8. theme_bw()

?

計算單個股票的每日和每月收益率

一旦我們從Yahoo Finance下載了收盤價,下一步便是計算收益。我們將再次使用tidyquant包進行計算。我們已經(jīng)在上面下載了Netflix的價格數(shù)據(jù),如果您還沒有下載,請參見上面的部分。

  1. # 計算每日收益


  2. netflix_daily_returns <- netflix %>%

  3. tq_transmute(select = adjusted, ? ? ? ? ?這指定要選擇的列

  4. mutate_fun = periodReturn, ? # 這指定如何處理該列

  5. period = "daily", ? ? ?# 此參數(shù)計算每日收益

  6. col_rename = "nflx_returns") # 重命名列


  7. #計算每月收益

  8. netflix_monthly_returns <- netflix %>%

  9. tq_transmute(select = adjusted,

  10. mutate_fun = periodReturn,

  11. period = "monthly", ? ? ?# 此參數(shù)計算每月收益

  12. col_rename = "nflx_returns")

繪制Netflix的每日和每月收益圖表

  1. # 我們將使用折線圖獲取每日收益



  2. ggplot(aes(x = date, y = nflx_returns)) +

  3. geom_line() +

  4. theme_classic() +

查看Netflix的每日收益圖表后,我們可以得出結論,收益波動很大,并且股票在任何一天都可以波動+/- 5%。為了了解收益率的分布,我們可以繪制直方圖。

  1. netflix_daily_returns %>%

  2. ggplot(aes(x = nflx_returns)) +

  3. geom_histogram(binwidth = 0.015) +

  4. theme_classic() +

接下來,我們可以繪制自2009年以來Netflix的月度收益率。我們使用條形圖來繪制數(shù)據(jù)。

  1. # 繪制Netflix的月度收益圖表。 使用條形圖



  2. ggplot(aes(x = date, y = nflx_returns)) +

  3. geom_bar(stat = "identity") +

  4. theme_classic() +

?

計算Netflix股票的累計收益

繪制每日和每月收益對了解投資的每日和每月波動很有用。要計算投資的增長,換句話說,計算投資的總收益,我們需要計算該投資的累積收益。要計算累積收益,我們將使用??cumprod()??函數(shù)。


  1. mutate(cr = cumprod(1 + nflx_returns)) %>% ? ? ?# 使用cumprod函數(shù)


  1. ggplot(aes(x = date, y = cumulative_returns)) +

  2. geom_line() +

  3. theme_classic() +

該圖表顯示了自2009年以來Netflix的累計收益。有了事后分析的力量,?自2009年以來,可以用1美元的投資賺取85美元。但據(jù)我們所知,說起來容易做起來難。在10年左右的時間里,在Qwickster慘敗期間投資損失了其價值的50%。在這段時期內(nèi),很少有投資者能夠堅持投資。

  1. ggplot(aes(x = date, y = cumulative_returns)) +

  2. geom_line() +

  3. theme_classic() +

我們可以直觀地看到,月收益表比日圖表要平滑得多。

多只股票

下載多只股票的股票市場數(shù)據(jù)。

  1. #將我們的股票代碼設置為變量


  2. tickers <- c("FB", "AMZN", "AAPL", "NFLX", "GOOG")


  3. # 下載股價數(shù)據(jù)


  4. multpl_stocks <- tq_get(tickers,

繪制多只股票的股價圖

接下來,我們將繪制多只股票的價格圖表

  1. multpl_stocks %>%

  2. ggplot(aes(x = date, y = adjusted,

?

這不是我們預期的結果。由于這些股票具有巨大的價格差異(FB低于165,AMZN高于1950),因此它們的規(guī)模不同。我們可以通過按各自的y比例繪制股票來克服此問題。


  1. facet_wrap(~symbol, scales = "free_y") + ?# facet_wrap用于制作不同的頁面

  2. theme_classic() +

計算多只股票的收益

計算多只股票的收益與單只股票一樣容易。這里只需要傳遞一個附加的參數(shù)。我們需要使用參數(shù)??group_by(symbol)??來計算單個股票的收益。

  1. #計算多只股票的每日收益


  2. tq_transmute(select = adjusted,

  3. mutate_fun = periodReturn,

  4. period = 'daily',

  5. col_rename = 'returns')


  6. #計算多只股票的月收益



  7. tq_transmute(select = adjusted,

  8. mutate_fun = periodReturn,

  9. period = 'monthly',

  10. col_rename = 'returns')

繪制多只股票的收益圖表

一旦有了收益計算,就可以在圖表上繪制收益。

  1. multpl_stock_daily_returns %>%

  2. ggplot(aes(x = date, y = returns)) +

  3. geom_line() +

  4. geom_hline(yintercept = 0) +

?

  1. multpl_stock_monthly_returns %>%

  2. ggplot(aes(x = date, y = return

  3. scale_fill_brewer(palette = "Set1", ? # 我們會給他們不同的顏色,而不是黑色

在FAANG股票中,蘋果的波動最小,而Facebook和Netflix的波動最大。對于他們從事的業(yè)務而言,這是顯而易見的。Apple是一家穩(wěn)定的公司,擁有穩(wěn)定的現(xiàn)金流量。它的產(chǎn)品受到數(shù)百萬人的喜愛和使用,他們對Apple擁有極大的忠誠度。Netflix和Facebook也是令人難以置信的業(yè)務,但它們處于高增長階段,任何問題(收益或用戶增長下降)都可能對股票產(chǎn)生重大影響。

計算多只股票的累計收益

通常,我們希望看到過去哪種投資產(chǎn)生了最佳效果。為此,我們可以計算累積結果。下面我們比較自2013年以來所有FAANG股票的投資結果。哪項是自2013年以來最好的投資?

  1. multpl_stock_monthly_returns %>%

  2. mutate(returns e_returns = cr - 1) %>%

  3. ggplot(aes(x = date, y = cumulative_returns, color = symbol)) +

  4. geom_line() +

  5. labs(x = "Date"

?

毫不奇怪,Netflix自2013年以來獲得了最高的收益。亞馬遜和Facebook位居第二和第三。

統(tǒng)計數(shù)據(jù)

計算單個股票的均值,標準差

我們已經(jīng)有了Netflix的每日和每月收益數(shù)據(jù)。現(xiàn)在我們將計算收益的每日和每月平均數(shù)和標準差。?為此,我們將使用??mean()??和??sd()函數(shù)。

  1. # 計算平均值


  2. .[[1]] %>%

  3. mean(na.rm = TRUE)


  4. nflx_monthly_mean_ret <- netfl turns) %>%

  5. .[[1]] %>%

  6. mean(na.rm = TRUE)


  7. # 計算標準差


  8. nflx_daily_sd_ret <- netflirns) %>%

  9. .[[1]] %>%

  10. sd()


  11. nflx_monthly_sd_ret <- netflix_rns) %>%

  12. .[[1]] %>%

  13. sd()

  14. nflx_stat

  1. ## # A tibble: 2 x 3

  2. ## ? period ? ? mean ? ? sd

  3. ## ? <chr> ? ? <dbl> ?<dbl>

  4. ## 1 Daily ? 0.00240 0.0337

  5. ## 2 Monthly 0.0535 ?0.176

我們可以看到Netflix的平均每日收益為0.2%,標準差為3.3%。它的月平均回報率是5.2%和17%標準差。該數(shù)據(jù)是自2009年以來的整個時期。如果我們要計算每年的均值和標準差,該怎么辦。我們可以通過按年份對Netflix收益數(shù)據(jù)進行分組并執(zhí)行計算來進行計算。

  1. netflix ?%>%

  2. summarise(Monthly_Mean_Returns = mean(nflx_returns),

  3. MOnthly_Standard_Deviation = sd(nflx_returns)

  1. ## # A tibble: 10 x 3

  2. ## ? ? year Monthly_Mean_Returns MOnthly_Standard_Deviation

  3. ## ? ?<dbl> ? ? ? ? ? ? ? ?<dbl> ? ? ? ? ? ? ? ? ? ? ?<dbl>

  4. ## ?1 ?2009 ? ? ? ? ? ? ?0.0566 ? ? ? ? ? ? ? ? ? ? ?0.0987

  5. ## ?2 ?2010 ? ? ? ? ? ? ?0.110 ? ? ? ? ? ? ? ? ? ? ? 0.142

  6. ## ?3 ?2011 ? ? ? ? ? ? -0.0492 ? ? ? ? ? ? ? ? ? ? ?0.209

  7. ## ?4 ?2012 ? ? ? ? ? ? ?0.0562 ? ? ? ? ? ? ? ? ? ? ?0.289

  8. ## ?5 ?2013 ? ? ? ? ? ? ?0.137 ? ? ? ? ? ? ? ? ? ? ? 0.216

  9. ## ?6 ?2014 ? ? ? ? ? ? ?0.00248 ? ? ? ? ? ? ? ? ? ? 0.140

  10. ## ?7 ?2015 ? ? ? ? ? ? ?0.0827 ? ? ? ? ? ? ? ? ? ? ?0.148

  11. ## ?8 ?2016 ? ? ? ? ? ? ?0.0138 ? ? ? ? ? ? ? ? ? ? ?0.126

  12. ## ?9 ?2017 ? ? ? ? ? ? ?0.0401 ? ? ? ? ? ? ? ? ? ? ?0.0815

  13. ## 10 ?2018 ? ? ? ? ? ? ?0.243 ? ? ? ? ? ? ? ? ? ? ? 0.233

我們還可以繪制結果更好地理解。

  1. netflix_monthly_returns %>%

  2. mutate(year = rns, Standard_Deviation, keyistic)) +

  3. geom_bar(stat = "identity", position = "dodge") +

  4. scale_y_continuous(b ) +

  5. theme_bw() +

?

我們可以看到,自2009年以來,每月收益和標準差波動很大。2011年,平均每月收益為-5%。

計算多只股票的均值,標準差

接下來,我們可以計算多只股票的均值和標準差。


  1. group_by(symbol) %>%

  2. summarise(mean = mean(returns),

  3. sd = sd(returns))

  1. ## # A tibble: 5 x 3

  2. ## ? symbol ? ? mean ? ? sd

  3. ## ? <chr> ? ? <dbl> ?<dbl>

  4. ## 1 AAPL ? 0.00100 ?0.0153

  5. ## 2 AMZN ? 0.00153 ?0.0183

  6. ## 3 FB ? ? 0.00162 ?0.0202

  7. ## 4 GOOG ? 0.000962 0.0141

  8. ## 5 NFLX ? 0.00282 ?0.0300

  1. group_by(symbol) %>%

  2. summarise(mean = mean(returns),

  3. sd = sd(returns))

  1. ## # A tibble: 5 x 3

  2. ## ? symbol ? mean ? ? sd

  3. ## ? <chr> ? <dbl> ?<dbl>

  4. ## 1 AAPL ? 0.0213 0.0725

  5. ## 2 AMZN ? 0.0320 0.0800

  6. ## 3 FB ? ? 0.0339 0.0900

  7. ## 4 GOOG ? 0.0198 0.0568

  8. ## 5 NFLX ? 0.0614 0.157

計算收益的年均值和標準差。

  1. %>%

  2. group_by(symbol, year) %>%

  3. summarise(mean = mean(returns),

  4. sd = sd(returns))

  1. ## # A tibble: 30 x 4

  2. ## # Groups: ? symbol [?]

  3. ## ? ?symbol ?year ? ? ?mean ? ? sd

  4. ## ? ?<chr> ?<dbl> ? ? <dbl> ?<dbl>

  5. ## ?1 AAPL ? ?2013 ?0.0210 ? 0.0954

  6. ## ?2 AAPL ? ?2014 ?0.0373 ? 0.0723

  7. ## ?3 AAPL ? ?2015 -0.000736 0.0629

  8. ## ?4 AAPL ? ?2016 ?0.0125 ? 0.0752

  9. ## ?5 AAPL ? ?2017 ?0.0352 ? 0.0616

  10. ## ?6 AAPL ? ?2018 ?0.0288 ? 0.0557

  11. ## ?7 AMZN ? ?2013 ?0.0391 ? 0.0660

  12. ## ?8 AMZN ? ?2014 -0.0184 ? 0.0706

  13. ## ?9 AMZN ? ?2015 ?0.0706 ? 0.0931

  14. ## 10 AMZN ? ?2016 ?0.0114 ? 0.0761

  15. ## # ... with 20 more rows

我們還可以繪制此統(tǒng)計數(shù)據(jù)。

  1. multpl_stock_monthly_returns %>%

  2. mutate(year = year(date)) %>%

  3. group_by(symbol, yea s = seq(-0.1,0.4,0.02),

  4. labels = scales::percent) +

  5. scale_x_continuous(breaks = seq(2009,2018,1)) +

  6. labs(x = "Year", y = Stocks") +

  7. ggtitle

?

  1. multpl_stock_monthly_returns %>%

  2. mutate(year = year(date)) %>%

  3. ggplot(aes(x = year, y = sd, fill = symbol)) +

  4. geom_bar(stat = "identity", position = "dodge", width = 0.7) +

  5. scale_y_continuous(breaks = seq(-0.1,0.4,0.02),

  6. labels = scales::p

  7. scale_fill_brewer(palette = "Set1",

?

計算多只股票的協(xié)方差和相關性

另一個重要的統(tǒng)計計算是股票的相關性和協(xié)方差。為了計算這些統(tǒng)計數(shù)據(jù),我們需要修改數(shù)據(jù)。我們將其轉換為xts對象。

協(xié)方差表

  1. #計算協(xié)方差


  2. tk_xts(silent = TRUE) %>%

  3. cov()

  1. ## ? ? ? ? ? ? ? AAPL ? ? ? ?AMZN ? ? ? ? ?FB ? ? ? ? GOOG ? ? ? ? ?NFLX

  2. ## AAPL ?5.254736e-03 0.001488462 0.000699818 0.0007420307 -1.528193e-05

  3. ## AMZN ?1.488462e-03 0.006399439 0.001418561 0.0028531565 ?4.754894e-03

  4. ## FB ? ?6.998180e-04 0.001418561 0.008091594 0.0013566480 ?3.458228e-03

  5. ## GOOG ?7.420307e-04 0.002853157 0.001356648 0.0032287790 ?3.529245e-03

  6. ## NFLX -1.528193e-05 0.004754894 0.003458228 0.0035292451 ?2.464202e-02

相關表

  1. # 計算相關系數(shù)


  2. %>%

  3. tk_xts(silent = TRUE) %>%

  4. cor()

  1. ## ? ? ? ? ? ? ?AAPL ? ? ?AMZN ? ? ? ?FB ? ? ?GOOG ? ? ? ? NFLX

  2. ## AAPL ?1.000000000 0.2566795 0.1073230 0.1801471 -0.001342964

  3. ## AMZN ?0.256679539 1.0000000 0.1971334 0.6276759 ?0.378644485

  4. ## FB ? ?0.107322952 0.1971334 1.0000000 0.2654184 ?0.244905437

  5. ## GOOG ?0.180147089 0.6276759 0.2654184 1.0000000 ?0.395662114

  6. ## NFLX -0.001342964 0.3786445 0.2449054 0.3956621 ?1.000000000

?

我們可以使用corrplot()?包來繪制相關矩陣圖。

## corrplot 0.84 loaded


  1. cor() %>%

  2. corrplot()

最受歡迎的見解

1.用機器學習識別不斷變化的股市狀況—隱馬爾科夫模型(HMM)的應用

2.R語言GARCH-DCC模型和DCC(MVT)建模估計

3.R語言實現(xiàn) Copula 算法建模依賴性案例分析報告

4.R語言COPULAS和金融時間序列數(shù)據(jù)VaR分析

5.R語言多元COPULA GARCH 模型時間序列預測

6.用R語言實現(xiàn)神經(jīng)網(wǎng)絡預測股票實例

7.r語言預測波動率的實現(xiàn):ARCH模型與HAR-RV模型

8.R語言如何做馬爾科夫轉換模型markov switching model

9.matlab使用Copula仿真優(yōu)化市場風險


基于R語言股票市場收益的統(tǒng)計可視化分析的評論 (共 條)

分享到微博請遵守國家法律
浙江省| 平远县| 巨鹿县| 法库县| 盐津县| 噶尔县| 新郑市| 中江县| 延津县| 巢湖市| 报价| 正安县| 敦化市| 鹤山市| 渑池县| 东乡族自治县| 腾冲县| 张家口市| 霍邱县| 托克逊县| 奇台县| 闽清县| 武邑县| 措勤县| 女性| 二连浩特市| 东乡县| 松原市| 来安县| 伽师县| 沂水县| 南川市| 渝北区| 板桥市| 台北县| 枝江市| 乌恰县| 木兰县| 温宿县| 庆元县| 潼南县|