私はマルチレベル解析の初心者で、グラフ関数を使ってグラフをどのようにすることができるかを理解しようとしていますbase-R
。私は以下のfit
の出力を理解していますが、私は視覚化に苦労しています。 df
は、単にいくつかの簡単なテストデータです:異なる色で多レベル解析で異なるレベルを表示する方法
t <- seq(0, 10, 1)
df <- data.frame(t = t,
y = 1.5+0.5*(-1)^t + (1.5+0.5*(-1)^t) * t,
p1 = as.factor(rep(c("p1", "p2"), 10)[1:11]))
fit <- lm(y ~ t * p1, data = df)
# I am looking for an automated version of that:
plot(df$t, df$y)
lines(df$t[df$p1 == "p1"],
fit$coefficients[1] + fit$coefficients[2] * df$t[df$p1 == "p1"], col = "blue")
lines(df$t[df$p1 == "p2"],
fit$coefficients[1] + fit$coefficients[2] * df$t[df$p1 == "p2"] +
+ fit$coefficients[3] + fit$coefficients[4] * df$t[df$p1 == "p2"], col = "red")
それはそれはp1
と二行があることを含める必要があることを知っている必要があります。
結果は次のようになります。
編集は:est <- predict(fit, newx = t)
はフィットと同じ結果になりますが、それでも私は「どのようにクラスタ化する」分からない予測します。
編集2 @Keith:式y ~ t * p1
はy = (a + c * p1) + (b + d * p1) * t
となります。 「最初の青い線」については、c, d
は両方ともゼロです。
'T'と 'y'は常に同じになりますか?あなたは常に単一因子列を持っていますか? –
適合した値を得るより良い方法は 'predict()'です。 data.frameを 'newdata'として渡して予測し、驚かせる。 –
@KeithHughittいいえ、私の本当の問題は、単純化された見た目[here](http://stackoverflow.com/questions/40765869/analysis-using-linear-regression-based-on-subgroups)のためにはるかに複雑になります。この質問の主な目的は、実際には「正しい数の線でグラフを取得する方法」です。この単純なケースでも( 'p1'は2レベルしかありません!)私は失敗します;-) – Christoph