9

Rで線形回帰の次のケースを作りたい

year<-rep(2008:2010,each=4)
quarter<-rep(1:4,3)
cpi<-c(162.2,164.6,166.5,166.0,166.4,167.0,168.6,169.5,170.0,172.0,173.3,174.0)
plot(cpi,xaxt="n",ylab="CPI",xlab="")
axis(1,labels=paste(year,quarter,sep="C"),at=1:12,las=3)
fit<-lm(cpi~year+quarter)

処理するデータの線形回帰を示す線をプロットしたいと思います。私は試しました:

abline(fit)
abline(fit$coefficients[[1]],c(fit$coefficients[[2]],fit$coefficients[[3]]))

問題は、私の数式が次の形式になっていることです。

y=a+b*year+c*quarter

次のような単純なものではありません。

y=a+b*year

では、線形回帰を示す線をどのように描くことができますか?

アブラインで線を引くことはできますか?

4

5 に答える 5

7

predict機能をお探しですか?

例:使用すると次のlines(predict(fit))ようになります:

ここに画像の説明を入力してください

これを使用して、計算された係数に合わせて将来のデータを予測することもできます。例えば

# plot the existing data with space for the predicted line
plot(c(cpi,rep(NA,12)),xaxt="n",ylab="CPI",xlab="",ylim=c(162,190))

# plot the future predictions as a line using the next 3 year periods
lines(13:24,
      predict(
        fit,
        newdata=data.frame(year=rep(c(2011,2012,2013),each=4),quarter=rep(1:4,3))
             )
     )

year<-rep(2008:2013,each=4)
axis(1,labels=paste(year,quarter,sep="C"),at=1:24,las=3)

ここに画像の説明を入力してください

于 2013-01-22T05:27:39.970 に答える
6

ハンバグ。これらはすべて合理的な解決策ですが、あなたが求めていることを実行しません。今、あなたが求めるものは少し涼しく、完全に実用的ではありませんが、を使用して行うことができますrgl

f <- function(x, y, coefs){
  z <- coefs[1] + coefs[2] * x + coefs[3] * y
  z
}

x <- seq(from=min(year), to=max(year), length.out=100)
y <- seq(from=min(quarter), to=max(quarter), length.out=100)

z <- outer(x, y, f, coefs=coef(fit))

今、魔法が起こる場所rgl

library(rgl)

persp3d(x, y, z, col="lightblue")

ここに画像の説明を入力してください

ここでは正義は行われていませんが、きれいで、動かすことができます。

そして、なんと、元のポイントを追加しましょう

points3d(year, quarter, cpi, size=5, col="red")

ここに画像の説明を入力してください

于 2013-01-22T05:47:14.110 に答える
6
cpi<-c(162.2,164.6,166.5,166.0,166.4,167.0,168.6,169.5,170.0,172.0,173.3,174.0)
cpits <- ts(cpi, start=2008, frequency=4)
plot(decompose(cpits))

ここに画像の説明を入力してください

于 2013-01-22T05:05:36.123 に答える
3

エラーは、データのフォーマット方法にあります。別のオプションは次のとおりです。

year<-seq(from=2008,to=2010.75,by=.25)
cpi<-c(162.2,164.6,166.5,166.0,166.4,167.0,168.6,169.5,170.0,172.0,173.3,174.0)
df <- data.frame(year,cpi)
plot(df)+abline(lm(df$cpi~df$year))

ここに画像の説明を入力してください

次に、必要に応じて軸ラベルを再フォーマットできます。

于 2013-01-22T05:58:09.373 に答える
1

TeachingDemosパッケージのPredict.PlotandTkPredict関数は、予測子の1つと、他の予測子の値を条件とする応答変数との関係をプロットします。 Predict.Plotさまざまな条件からの複数の行を簡単に確認できると同時にTkPredict、条件付けされている値をインタラクティブに変更できます(Predict.Plot現在のプロットを再作成するためのコードが生成されます)。

これらの関数は、複数の予測子の回帰モデルでは一般的ですが、時系列の分解ほど良くはありません。

于 2013-01-22T22:15:19.790 に答える