2011-10-13 37 views
3

我想比较两组受试者(0,1),但要确保我观察到的差异不是由于第三个变量造成的,这在两组之间有显着差异。组1比组0小得多,所以我猜想选择组0中与组之间的第三个变量最匹配的一组受试者的子集是最佳的。在一个完美的世界里,我猜想这个附加组件会从这两个组中选择一个子集,这个子集既可以最大化主题数量,也可以匹配组之间的第三个变量。有没有可以帮助我做到的附加组件。如果不是的话,你们可能会知道通过一些聪明的编码达到相同效果的有效方法。当然,如果我可以根据基于多个变量的相似性参数来匹配这些组,那么它会更好。是否有附加组件允许我创建根据一个或多个标准匹配的组?

+1

@romunov指出,matchit软件包应该让你在那里。 –

+0

我不清楚:这是一个坏问题在哪些方面?从统计的角度来看,它的表达方式并不是特别熟练,但它似乎与统计学相比更加相关。另一方面,这并没有很多关于示例数据和统计目标的细节,不管措辞如何。迈克:最好先统计一下统计问题,然后统计一下。您也可以在那里解决软件包问题。 – Iterator

回答

0

看看sampling包。我相信这是做这些事情最全面的特色。无论如何,这里是一个工作的例子:

require(sampling) 
set.seed(12345) 

# Set number of subjects 
n = 1000 

# Generate data 
group = factor(sample(c(0,0,1), n, replace=T)) 
x = 0.2 * as.numeric(group) + rnorm(n) 

data = data.frame(group, x) 

# Demonstrate the significant group effect 
summary(lm(x ~ group, data=data)) 

# Let's say we want a sample with 50 subjects in each group 
pik = inclusionprobastrata(as.numeric(data$group), c(50, 50)) 
picks = balancedstratification(cbind(data$x), as.numeric(data$group), pik) 

# Pick out our balanced sample 
new.data = data[picks==1, ] 

# Demonstrate that the group effect is gone 
summary(lm(x ~ group, data=new.data)) 
相关问题