株価トレンドのためのネストされた foreach ループ
株式市場は予測が難しいことで有名です。あなたは投資会社に勤めており、上司は1週間のウィンドウで株価のトレンドを見たいと考えています。
2015年以降の10社のテック企業について、日次の株価データを入手しました。チームのData Scientistが回帰モデルを当てはめるコードを用意してくれました。あなたはこのコードを foreach()、%:%、%dopar% を使って並列化する予定です。
反復処理する列の総数は ncols、行数は nrows としてワークスペースに保存されています。parallel、doParalel、foreach パッケージは読み込まれています。クラスター cl も設定済みです。あなたはネストされた foreach() ループを書く必要があります。
この演習はコースの一部です
R による並列プログラミング
演習の手順
foreachループで使用するクラスターを登録します。- 列 1 から
ncolsを反復する foreach ループを指定し、結果は"cbind"で収集し、ネスト用の演算子を使います。 - 行 1 から
nrowsを反復する別の foreach ループを指定し、結果は"c"で収集し、do-parallel 演算子を使います。 - すべての計算が終わったらクラスターを停止します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Register the cluster to use with %dopar%
___
# Use foreach loop to iterate over columns one to ncol
moving_trend <- foreach(___, ___) %:%
# Iterate over rows one to nrows within each column
foreach(___, ___) %dopar% {
prices <- data[row:(row + 6), col]
if (any(is.na(prices))) NA
else {days <- 1:7
model <- lm(prices ~ days)
model$coefficients[2]}
}
# Stop cluster
___
print(paste("Total number of models fit:", sum(!is.na(moving_trend))))