gpt4 book ai didi

r - 如何在 r 中为 LDA 绘制双标图?

转载 作者:行者123 更新时间:2023-12-04 11:16:47 27 4
gpt4 key购买 nike

我使用函数 lda() 进行了线性判别分析从包 MASS。现在我会尝试像 ade4 包(forLDA)中那样绘制双标图。你知道我该怎么做吗?

如果我尝试使用 biplot()功能不起作用。例如,如果我使用 Iris 数据并制作 LDA:

dis2 <- lda(as.matrix(iris[, 1:4]), iris$Species)

然后我可以使用函数 plot() 绘制它,但如果我使用函数 biplot()它不起作用:
biplot(dis2)
Error in nrow(y) : argument "y" is missing, with no default

如何绘制变量的箭头?

最佳答案

我编写了以下函数来执行此操作:

lda.arrows <- function(x, myscale = 1, tex = 0.75, choices = c(1,2), ...){
## adds `biplot` arrows to an lda using the discriminant function values
heads <- coef(x)
arrows(x0 = 0, y0 = 0,
x1 = myscale * heads[,choices[1]],
y1 = myscale * heads[,choices[2]], ...)
text(myscale * heads[,choices], labels = row.names(heads),
cex = tex)
}

对于您的示例:

dis2 <- lda(as.matrix(iris[, 1:4]), iris$Species)
plot(dis2, asp = 1)
lda.arrows(dis2, col = 2, myscale = 2)

箭头的长度相对于 lda 图是任意的(当然不是彼此之间的!)。如果您想要更长或更短的箭头,请更改 myscale 的值因此。默认情况下,这会为第一和第二轴绘制箭头。如果要绘制其他轴,请更改 choices来反射(reflect)这一点。

关于r - 如何在 r 中为 LDA 绘制双标图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17232251/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com