Ggplot2 を使用してグループごとに回帰直線をプロットする方法


R 可視化パッケージggplot2を使用して群回帰直線をプロットするには、次の構文を使用できます。

 ggplot(df, aes (x = x_variable, y = y_variable, color = group_variable)) +
  geom_point() +
  geom_smooth(method = " lm ", fill = NA )

このチュートリアルでは、この関数を実際に使用する方法の簡単な例を示します。

例: ggplot2 を使用してグループごとに回帰直線をプロットする

15 人の異なる生徒について次の 3 つの変数を示すデータセットがあるとします。

  • 学習時間数
  • 試験のスコアを受け取りました
  • 使用した学習手法 (A、B、C のいずれか)
 #create dataset
df <- data.frame(hours=c(1, 2, 3, 3, 4, 1, 2, 2, 3, 4, 1, 2, 3, 4, 4),
                 score=c(84, 86, 85, 87, 94, 74, 76, 75, 77, 79, 65, 67, 69, 72, 80),
                 technique= rep (c(' A ', ' B ', ' C '), each = 5 ))

#view dataset
df

   hours technical score
1 1 84 A
2 2 86 A
3 3 85 A
4 3 87 A
5 4 94 A
6 1 74 B
7 2 76 B
8 2 75 B
9 3 77 B
10 4 79 B
11 1 65 C
12 2 67 C
13 3 69 C
14 4 72 C
15 4 80 C

次のコードは、3 つの学習手法ごとに、学習時間と試験スコアの関係を表す回帰直線をプロットする方法を示しています。

 #load ggplot2
library (ggplot2)

#create regression lines for all three groups
ggplot(df, aes (x = hours, y = score, color = technique)) +
  geom_point() +
  geom_smooth(method = " lm ", fill = NA )

ggplot2 のグループ別の回帰直線

geom_smooth()では、method = ‘lm” を使用して線形トレンドを指定していることに注意してください。

「glm」、「loess」、「gam」などの他の平滑化手法を使用して、データの非線形傾向を捉えることもできます。 geom_smooth() の完全なドキュメントは ここにあります。

異なる図形を使用して、3 つのグループごとに検査結果を表示することもできることに注意してください。

 ggplot(df, aes (x = hours, y = score, color = technique, shape = technique)) +
  geom_point() +
  geom_smooth(method = " lm ", fill = NA )

ggplot2 の単一プロット内の重回帰直線

その他の ggplot2 チュートリアルはここで見つけることができます。

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です