在R语言潜在变量分析中理解问题并解决Lavaan包的错误

我的问题陈述是要识别影响净推荐值的因素

我正在使用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参数的含义是什么。

我使用了下面的链接进行学习

https://www.jaredknowles.com/journal/2013/9/1/latent-variable-analysis-with-r-getting-setup-with-lavaan

当我运行上述代码时,我得到了如下错误

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

如果ageweightnps是因素(每个你有三个观察值),那么

mat1 <- cor(data.frame(age,weight,nps))

可能会生成你想要的协方差矩阵。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注