1

時間の経過に伴う線形回帰係数の変化を観察したいと思います。より正確には、線形回帰が常に1年の範囲のデータセットを使用する2年の時間枠を設定しましょう。最初の回帰の後、さらに1週間移動し(つまり、新しい週を追加しますが、最初から1週間も差し引かれます)、最終日に達する限り、回帰を再度実行します。合計で52回の回帰があります。

私の問題は、データセットにいくつかの休日があり、簡単に示唆されるように7日を単純に追加できないことです。forecast.lm()さまざまなパッケージの他の多くの関数、たとえばforecastパッケージや考えられる任意の関数に対して前述のラッパー関数が必要です。すべての場合の目的は、線形回帰パラメーターの進化を見つけることです。週ごと。

4

1 に答える 1

1

質問を明確な方法で編集/細分化すると、より多くの回答が得られると思います。(1) 休日を見つけるにはどうすればよいですか (休日の定義が明確ではありません)。(2) それに応じてデータセットをスライスするにはどうすればよいですか? (3) 各チャンクで線形回帰を実行するにはどうすればよいですか?

(1)休日を見つける:データセットで休日がどのように定義/コード化されているかわからないため、ここではあまり役に立ちません。library(sos); findFn("holiday")いくつかのオプションを見つけます

(2)休日/週末の間隔に従ってデータセットを分割します。以下の例では、休日が 1 としてコード化され、休日以外が 0 としてコード化されていると仮定しています。

(3) チャンクごとに線形回帰を実行し、係数を抽出します。

d <- data.frame(holiday=c(0,0,0,1,1,0,0,0,0,1,0,0,0,0),
     x=runif(14),y=runif(14))
per <- cumsum(c(1,diff(d$holiday)==-1))  ## maybe use rle() instead
dd <- with(d,split(subset(d,!holiday),per[!holiday]))
t(sapply(lapply(dd,lm,formula=y~x),coef))
于 2011-05-19T20:30:22.570 に答える