求解R语言的数据分析问题

R语言的数据分析
首先,按照一定的规则,根据100个原始样本创建出了1500个新的样本。
其次,将这些样本代入进模型公式中进行计算,理应出现1500个结果,但是现在只出现了原始样本的100个结果。
代码如下:

data1=read.xlsx(file.choose()) #导入xlsx文件
head(data1)
dim(data1)
sleep=data1$sleep
sedentary=data1$sedentary
light=data1$light
MVPA=data1$MVPA
BMI=data1$BMI
sex=data1$sex
age=data1$age
DIS=data1$DIS
MC=data1$MC
ZSCORE=data1$ZSCORE
#时间使用构成
comp=cbind(sleep,sedentary,light,MVPA)
comp=acomp(comp)#开始数据集转换,变成组合变量
mod=lmrob(ZSCORE~poly(ilr(comp),2)+age)
summary(mod)
car::Anova(mod,test.statistic="F")
#确定为最优模型

comp1=cbind(sleep,sedentary,light,MVPA)
m=mean(comp1[,1:4])
m1=mean(sleep)
s1=sd(sleep)
m2=mean(sedentary)
s2=sd(sedentary)
m3=mean(light)
s3=sd(light)
m4=mean(MVPA)
s4=sd(MVPA)
fw1=cbind(m1-3*s1,m1+3*s1)
sleep1=seq(390,630,20)
length(sleep1)
fw2=cbind(m2-3*s2,m2+3*s2)
sedentary1=seq(330,930,20)
length(sedentary1)
fw3=cbind(m3-3*s3,m3+3*s3)
light1=seq(60,430,20)
length(light1)
fw4=cbind(m4-3*s4,m4+3*s4)
MVPA1=seq(10,150,20)
length(MVPA1)
##创建网格指标
##固定light 和mvpa,创建两层网格
sleep1=seq(390,630,10)
sedentary1=seq(330,930,10)
zhibiao1=NULL
for (i in 1:length(sleep1))
{
  for (j in 1:length(sedentary1)) 
  {
        cc=cbind(sleep1[i],sedentary1[j],60,10)
        zhibiao1=rbind(zhibiao1,cc)
  }
}
dim(zhibiao1)
head(zhibiao1)
##使用新创建的网格自变量预测的SCORE
colnames(zhibiao1)=c("sleep","sedentary","light","MVPA")
comp12=acomp(zhibiao1)
dim(comp12)
zscore1=predict(mod,comp12)
zscore2=predict(mod,poly(ilr(comp12),2))

img

创建网格时,在每个循环中使用的是固定的light和MVPA值,60和10。值是固定的。你需要改变值得大小来观测更多的数据。

这段代码是在进行R语言的数据分析,主要流程如下:

从xlsx文件中导入数据,并将数据命名为 "data1";
将原始数据的每一列分别命名为 "sleep", "sedentary", "light", "MVPA", "BMI", "sex", "age", "DIS", "MC", "ZSCORE";
创建组合变量 "comp",并用线性模型对 "ZSCORE" 变量进行建模;
将网格指标创建出来,其中固定 "light" 和 "MVPA" 变量,通过网格指标预测 "SCORE" 变量。

首先,您从 Excel 文件中读取了一份数据并命名为 data1。接下来,您使用了 lmrob 函数来建立回归模型,该模型的自变量包括某些变量的二次多项式和年龄。您对该模型进行了详细的汇总和 ANOVA 分析。最后,您使用了 comp 函数创建了网格指标,并对其进行预测。

现在,您没有出现1500个结果,只是出现了100个结果。这可能是因为代码在预测时只预测了 comp1 变量中的数据,而 comp1 只是初始样本的数据,因此您仅得到了这100个样本的预测结果。如果要获得所有1500个样本的结果,应该将网格指标 comp12 用作预测自变量,即:

zscore1 = predict(mod, comp12)
这段代码的作用是对一组数据进行数据处理和统计分析,具体操作如下:

导入xlsx文件,获取数据;
获取数据中的sleep, sedentary, light, MVPA, BMI, sex, age, DIS, MC, ZSCORE等变量;
组合变量转换,使用多项式回归模型(lmrob)对ZSCORE进行预测;
利用网格指标(sleep1,sedentary1)预测SCORE的值。
该代码的结果是进行了数据处理和统计分析,但是只得到了原始样本的100个结果,而未得到其他样本的结果。

导入 .xlsx 文件并显示数据框的前几行和维度。
从数据框中提取变量(例如睡眠、久坐、光照、MVPA、BMI、性别、年龄、DIS、MC、ZSCORE)。
计算变量的组合 (comp) 并转换数据集。
使用变量和年龄的转换组合的多项式函数,拟合一个稳健的线性回归模型 (mod) 来预测 ZSCORE。
对模型执行方差分析 (Anova)。
计算每个变量的均值和标准差。
为光照和 MVPA 创建一个固定值的网格,为睡眠和久坐创建两个不同值的图层。
使用新创建的自变量网格来预测 ZSCORE 并创建一个变量 (zscore1)。
对自变量网格应用多项式变换,并使用新的变换值来预测 ZSCORE (zscore2)。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^