0

関数を使用tapply()して、いくつかのカテゴリでモデルを実行しようとしていますが、あまり成功していません。私のデータには 20 の診療所があり、診療所ごとにモデルを実行したいと考えています。

ここに私のモデルがあります:

attach(qregdata)
rq(logA~ dose+ chtcm + cage +raceth + sex,tau=.9)

可変クリニックとしての私のデータ (値は 1 ~ 20)。他の統計パッケージと同様に、このモデル BY クリニックを R で実行する方法を知っている人はいますか?

4

3 に答える 3

0

これを実現する非常に一般的な方法を以下に示します。このddply関数は、各 に対して指定された関数 (この場合はlm) を実行しますclinic。データのより複雑な断面で実行することもできます。たとえば、と.(clinic,level)の組み合わせごとに個別のモデルを実行します。項は線形モデルの切片を取得します。各モデル フィットのすべての出力を一度に保存する簡単な方法はないと思います。cliniclevellm(y~x)$coef[1]

n <- 10
clinic <- factor(rep(1:3,each=n))
x <- rep(0:(n-1),3)
y <- rnorm(3*n)*x
d <- data.frame(clinic,x,y)

# plot data and linear fits
library(ggplot2)
ggplot(d,aes(x,y)) + geom_point() + facet_wrap(~clinic) + stat_smooth(method='lm')

# run a separate model for each clinic
library(plyr)
ddply(d,.(clinic),summarize,intercept=lm(y~x)$coef[1],slope=lm(y~x)$coef[2])
于 2013-01-16T20:55:57.483 に答える
0

クリニックの一意の値全体で「ラッピー」を使用し、サブセットを使用して、そのクリニックのデータセットのセクションを抽出できます。次に、モデルをサブセットに合わせます。

これにより、さらに処理できるモデルのリストが返されます。

于 2013-01-16T21:01:13.883 に答える