2

次のことをしたいのですが、助けが必要です。

「Age」[lm(Height〜Age)]に対する「Height」の傾きと切片を個別に計算します。

(A)各個人

(B)性別

結果(傾きと切片)を含むテーブルを作成します。これに「適用」を使用できますか?

次のステップでは、統計的検定を実行して、勾配と切片が性別間で大幅に異なるかどうかを判断します。Rでテストを行う方法は知っていますが、傾き/切片の計算とTテストを組み合わせる方法があるかもしれません。

データ例:

example = data.frame(Age = c(1, 3, 6, 9, 12,
                             1, 3, 6, 9, 12,
                             1, 3, 6, 9, 12,
                             1, 3, 6, 9, 12), 
                Individual = c("Jack", "Jack", "Jack", "Jack", "Jack",
                               "Jill", "Jill", "Jill", "Jill", "Jill",
                               "Tony", "Tony", "Tony", "Tony", "Tony",
                               "Jen", "Jen", "Jen", "Jen","Jen"),
                    Gender = c("M", "M", "M", "M", "M",
                               "F", "F", "F", "F", "F",
                               "M", "M", "M", "M", "M",
                               "F", "F", "F", "F", "F"),
                    Height = c(38, 62, 92, 119, 165,
                               31, 59, 87, 118, 170,
                               45, 72, 93, 155, 171,
                               33, 61, 92, 115, 168))
4

1 に答える 1

6

レベルごとに個別に回帰分析を行い、データフレームで勾配と切片を組み合わせる1つの方法はddply()、ライブラリの関数を使用することplyrです。

library(plyr)

ddply(example,"Individual",function(x) coefficients(lm(Height~Age,x)))
  Individual (Intercept)      Age
1       Jack    26.29188 11.11421
2        Jen    22.10660 11.56345
3       Jill    18.33249 12.04315
4       Tony    33.02030 11.96447

ddply(example,"Gender",function(x) coefficients(lm(Height~Age,x)))
  Gender (Intercept)      Age
1      F    20.21954 11.80330
2      M    29.65609 11.53934
于 2013-01-23T06:25:24.900 に答える