我想用R中的Q-Q图检验多元和单变量正态性。我用过几种不同的方法--它们似乎都不起作用。我是R的新手,如果能得到任何帮助,我将不胜感激。
我的数据集= vdata_clean1
我有15个预测变量(IV),但没有React变量(DV),因为我正在运行一个验证性因素分析(15个变量代表15种不同类型的项目,构成了我正在测试的量表)。
我安装了以下软件包:
install.packages("lavaan", dependencies=TRUE)
install.packages ("semPlot")
install.packages ("semTools")
install.packages("psych")
install.packages("MVN")
install.packages("mvtnorm")
install.packages("ggplot2")
install.packages("qgraph")
install.packages("psych")
字符串
1.首先,我使用了mvn函数(多变量q-q图)
mvn(data = vdata_clean1, subset = NULL, mvnTest = c("mardia"),
covariance = TRUE, tol = 1e-25, alpha = 0.5, scale = FALSE, desc
= TRUE, transform = "none", R = 1000, univariateTest = c("SW"),
univariatePlot = "none", multivariatePlot = "q-q",
multivariateOutlierMethod = "none", bc = FALSE, bcType =
"rounded", showOutliers = FALSE, showNewData = FALSE)
型
=>我没有收到错误消息,但图不显示。
1.其次,我尝试了qqnorm函数(多变量q-q图)
qqnorm(vdata_clean1, ylim, main = "Normal Q-Q Plot", xlab =
"Theoretical Quantiles", ylab = "Sample Quantiles", plot.it =
TRUE, datax = FALSE)
型
=>我收到以下错误消息,但没有绘图:
Error: Must use a vector in `[`, not an object of class matrix.
Call `rlang:last_error()` to see a backtrace'
型
- 我尝试了一个变量的ggplot函数(ILproto_1)(单变量q-q图)
ggplot(vdata_clean1, aes(sample = ILproto_1)) + stat_qq() +
stat_qq_line() + labs(title= "Normality Q-Q Plot (ILproto_1)", y
= "Sample Quantiles") + theme_classic() `
型
=>我收到了这个错误消息:
Don't know how to automatically pick scale for object of type
haven_labelled. Defaulting to continuous.
Don't know how to automatically pick scale for object of type
haven_labelled. Defaulting to continuous.
Error in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x,
x$y, :
polygon edge not found
In addition: Warning message:
In grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y,
: no font could be found for family "Arial"
- 我还尝试了使用ggplot函数(针对变量ILproto_1)绘制直方图
ggp1 <- ggplot(vdata_clean1, aes(x = ILproto_1))
ggp1 <- ggp1 + geom_histogram(binwidth=1, colour="black",
aes(y=..density.., fill=..count..))
ggp1 <- ggp1 + scale_fill_gradient("Count", low="#DCDCDC",
high="#7C7C7C")
ggp1 <- ggp1 + stat_function(fun=dnorm,
color="red",
args=list(mean=mean(vdata_clean1$ILproto_1),
sd=sd(vdata_clean1$ILproto_1)))
ggp1
=>没有错误消息,但我没有收到任何图
3条答案
按热度按时间guykilcj1#
如果没有一个可重复的例子,这是很困难的。尽管如此,这使用了
mtcars
数据集来创建一个包含11个变量的嵌套框架,这些变量使用ggplot2
。字符串
的数据
smtd7mpg2#
您可以从{RVAideMemoire}包中查看mqqnorm函数。
它基于平方广义距离创建多变量QQ图,并使用卡方作为理论分布。
eqfvzcg83#
当你有一个变量集合时,如
mtcars
数据中的变量集合,单变量QQ图通常太令人困惑。对于多变量数据,您真正需要的是马氏平方距离的chisq-QQ图。当数据为NVN时,这应该遵循p个变量的p个自由度的$\chi^2$分布。
函数heplots::cqplot为您绘制此图。它还通过标准和去趋势版本提供点识别。
字符串
x1c 0d1x的数据
型
的