我正在努力为一篇论文指出,鉴于ADHD症状/自闭症存在于一个范围内,通过将人群分组为受影响或未受影响的人来研究ADHD的遗传因素会降低统计学效力。我也想知道这样做会损失多少电量。
我尝试通过使用正常分布的效果大小的100个二元因子模拟1000个人的身高并将人分组为高或不高并使用逻辑回归,并将其与使用t检验与绝对值进行比较来尝试这样做高度。我只能使用
为一个人做这个mean.height=170
subject.1.factors=sample(c(1,0), 100, replace=T)
a=rnorm(100)
factors=a-mean(a)
subject.1.factors= sample(c(1,0),100, replace=T)
subject.1.height= sum(subject.1.factors*factors+1)*mean.height/100
但我找不到办法为1000人做这件事并以有用的方式存储数据。有没有办法可以有效地做到这一点?有没有比这更好的方法来实现我的目标?
感谢您花时间阅读我的问题!
编辑:我相信我要找的输出是一个表,每个主题有一行,高度为一列,100个因子中每个因子的1/0状态有其他列。
答案 0 :(得分:0)
这就是你需要的吗?
mean.height=170
subjects=c()
factors.subj=c()
subject.factors=sample(c(1,0),100, replace=T)
for(i in 1:1000){
a=rnorm(100)
factors=a-mean(a)
subjects[i]= sum(subject.factors*factors+1)*mean.height/100
}
df=cbind(subjects,subject.factors)
hist(subjects);head(df)
答案 1 :(得分:0)
X = RNORM(100)
生成我正常分布的效果大小
因子=样本(c(0,1),1000 * 100,替换= T)
随机创建1和0的列表
factor.coeffs = x-mean(x)
使我的效果的平均值为0(不是必需的步骤)
mean.height = 175
表示以cms为单位的高度
factors.matrix = matrix(因子,nrow = 1000,ncol = 100,byrow = T)
创建100(每个因子一个)1000(每个人一个)矩阵
impacts.matrix =(sweep(factors.matrix,MARGIN = 2,factor.coeffs,' *'))
将1和0更改为对人员身高的影响
subject.heights = mean.height-rowSums(impacts.matrix)
制作我所有受试者身高的矢量
HIST(subject.heights)
可视化以确保数据有意义。
analysis.matrix = cbind(subject.heights,factors.matrix)
组合成单个矩阵我可以在
上运行统计测试
^我使用上面的代码将数据输入到我需要的结构中。我完成分析后,我会更新此答案。抱歉格式化。