R の lm() 関数でデータ フレームのサブセットを使用する方法


lm()関数を使用して R で回帰モデルを近似する場合、 subset引数を使用してデータ フレームのサブセットのみを使用できます。

 fit <- lm(points ~ fouls + minutes, data=df, subset=(minutes> 10 ))

この特定の例は、応答変数としてポイントを使用し、予測変数として群集分を使用する回帰モデルに対応します。

subset引数は、回帰モデルを近似するときに、変数が 10 より大きいデータ フレーム内の行のみを使用することを指定します。

次の例は、この構文を実際に使用する方法を示しています。

例: R の lm() でデータ フレーム サブセットを使用する方法

R に、10 人のバスケットボール選手のプレー時間、ファウルの合計、得点の合計に関する情報を含む次のデータ フレームがあるとします。

 #create data frame
df <- data. frame (minutes=c(5, 10, 13, 14, 20, 22, 26, 34, 38, 40),
                 fouls=c(5, 5, 3, 4, 2, 1, 3, 2, 1, 1),
                 points=c(6, 8, 8, 7, 14, 10, 22, 24, 28, 30))

#view data frame
df

   minutes fouls points
1 5 5 6
2 10 5 8
3 13 3 8
4 14 4 7
5 20 2 14
6 22 1 10
7 26 3 22
8 34 2 24
9 38 1 28
10 40 1 30

次の重線形回帰モデルを近似したいとします。

ポイント = β 0 + β 1 (分) + β 2 (ファウル)

ただし、変数が 10 より大きいデータ フレーム内の行のみを使用するとします。

lm()関数をサブセット引数とともに使用して、この回帰モデルに適合させることができます。

 #fit multiple linear regression model (only for rows where minutes>10)
fit <- lm(points ~ fouls + minutes, data=df, subset=(minutes> 10 ))

#view model summary
summary(fit)

Call:
lm(formula = points ~ fouls + minutes, data = df, subset = (minutes > 
    10))

Residuals:
      3 4 5 6 7 8 9 10 
 1.2824 -2.5882 2.2000 -1.9118 2.3588 -1.7176 0.1824 0.1941 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -11.8353 4.9696 -2.382 0.063046 .  
fouls 1.8765 1.0791 1.739 0.142536    
minutes 0.9941 0.1159 8.575 0.000356 ***
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.255 on 5 degrees of freedom
Multiple R-squared: 0.9574, Adjusted R-squared: 0.9404 
F-statistic: 56.19 on 2 and 5 DF, p-value: 0.0003744

nobs()関数を使用すると、回帰モデルに適合するために実際にデータ フレームからの観測値がいくつ使用されたかを確認できます。

 #view number of observations used to fit model
nobs(fit)

[1] 8

モデルの適合にデータ フレームの8行が使用されたことがわかります。

元のデータ フレームを見ると、ちょうど8行のminutes変数の値が 10 を超えていることがわかります。これは、回帰モデルを近似するときにそれらの行のみが使用されたことを意味します。

サブセット引数で&演算子を使用して、複数の条件に基づいてデータ フレームをサブセット化することもできます。

たとえば、次の構文を使用すると、が 10 を超え、障害が4 未満であるデータ フレーム内の行のみを使用して回帰モデルを近似できます。

 #fit multiple linear regression model (only where minutes>10 & fouls<4)
fit <- lm(points ~ fouls + minutes, data=df, subset=(minutes> 10 & fouls< 4 ))

#view number of observations used to fit model
nobs(fit)

[1] 7

結果から、この特定のモデルに適合させるためにデータ フレームの7行が使用されたことがわかります。

追加リソース

次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。

R で単純な線形回帰を実行する方法
R で重回帰を実行する方法
R で残差プロットを作成する方法

コメントを追加する

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