我的问题陈述是要识别影响净推荐值的因素
我正在使用lavaan包对样本数据进行测试
以下是代码
library(lavaan)age=c(24,56,34)weight=c(76,55,66)nps=c(9,4,5)df=c(age,weight,nps)mat1=matrix(c(cov(abs(scale(df)))),3,3,byrow=TRUE)mod2 <- "weight ~ age \n weight ~ nps"mod1 <- "nps ~ age \n nps ~ weight"mat1=matrix(c(cor(abs(scale(df)))),3,3,byrow=TRUE)colnames(mat1) <- rownames(mat1) <- c("age", "weight", "nps")mod1fit <- sem(mod1, sample.cov = mat1, sample.nobs = 100)
从上面的例子中,有没有人能帮助理解nobs[观察数=100]
。通常在机器学习中,观察数指的是行的数量,但我不知道这里nobs参数的含义是什么。
我使用了下面的链接进行学习
当我运行上述代码时,我得到了如下错误
Error in lav_samplestats_icov(COV = cov[[g]], ridge = ridge, x.idx = x.idx[[g]], : lavaan ERROR: sample covariance matrix is not positive-definite
回答:
lavaan
手册(你可以通过R控制台的命令?sem
访问)指出,参数sample.nobs
指的是
如果完整的数据框缺失而只有样本时刻被给出时的观察数。对于多组分析,这是一个包含每个组的观察数的列表或向量。
考虑到错误信息:我不是很确定你用下面的代码行想要实现什么
mat1=matrix(c(cov(abs(scale(df)))),3,3,byrow=TRUE)
然而,这导致了一个非正定的样本协方差矩阵,看起来像这样
> mat1 age weight npsage 1 1 1weight 1 1 1nps 1 1 1
如果age
、weight
和nps
是因素(每个你有三个观察值),那么
mat1 <- cor(data.frame(age,weight,nps))
可能会生成你想要的协方差矩阵。