我创建了一个由4列组成的表格:
我想获得在唯一表中汇总的Y和X之间线性回归的斜率的95%百分数处与t值关联的P值: 从Ny = 3到Ny = 8,从Nd = 1到Nd = 6,其中,Ny是X的数量,Nd是回归中包含的数据集的数量。
所以:run1应该是:Nd = 1,Ny = 3
第一个t值(a = 0.05)/对应的p值用于回归,包括X:0,1,2,数据集= 1
然后:run2应该为:Nd = 1,Ny = 4
第二个p值将用于数据集1的X = 0、1、2、3
...
最后:最后一次运行应为Nd = 6,Ny = 8
最后一个p值将是X 0、1、2、3,…,7数据集1+数据集2 +…+数据集= 6
这是创建的数据集:
Y_ini=1680
r=73
var = 0.4
inter=250
boot = 20
X = 7
dataset = 6
Run0 <- NULL
for (i in 0:X){
for (j in 1:dataset){
print(i)
print(j)
Y=data.frame(Y_ini + i*Y_ini*var/100 + rnorm(n = boot, mean = 0, sd = r)+ rnorm(n = boot, mean = 0, sd = inter))
colnames(Y)<-"Y"
Y$boot=seq(1,boot)
Y$X=i
Y$dataset=j
Run0 <-rbind(Run0,Y)
name1 <-paste(X,"Y.csv",sep="_")
name2<- paste(dataset,name1,sep="_")
name3<- paste(boot,name2,sep="_")
}
}
Run0 <- Run0[, c(2, 4, 3, 1)]
write.table(Run0,file=file.path(dossier,name3),col.names=TRUE, row.names=FALSE, sep=";",dec=".")
我尝试了几件事,但这不是我想要的
res1<-NULL
for (Ny in 3:X{
for (Nd in 1:dataset){
if (Run0$X <= Ny && Run0$dataset <= Nd ){
print(Ny)
print(Nd)
p_v <- coef(summary(lm(Run0$Y~Run0$X)))[2,4]
t_v <- coef(summary(lm(Run0$Y~Run0$X)))[2,3]
res<- data.frame(Ny,Nd,p_v,t_v)
res1<-rbind(res1,res)
}
}
}
write.table(res1,file=file.path(dossier,"stat.csv"),col.names=TRUE, row.names=FALSE, sep=";",dec=".")
表已正确创建,但p值和t_value不变,这表明增量回归未正确完成。
在那个阶段,我不知道如何处理我的问题。
任何帮助将不胜感激。
结果应显示在最终表中,该表应包含4列:每次运行Nd,Ny,p值,t值(a = 0.05)(线性回归)。