使用R中MVN的mvOutlier标记异常值

时间:2015-04-27 20:03:19

标签: r label outliers

我尝试使用$update1 = $wpdb->query($wpdb->prepare("UPDATE wp_avg_rate SET avg='$raty' WHERE user_id= %d'", $user->ID)); $update1 = $wpdb->query($wpdb->prepare("UPDATE wp_avg_rate SET avg='$raty' WHERE user_id= '%d'", $user->ID)); $update1 = $wpdb->query($wpdb->prepare("UPDATE wp_avg_rate SET avg='$raty' WHERE user_id= %d", $user->ID)); 包的mvOutlier()函数在卡方Q-Q图上标记异常值。

我已设法通过标签识别异常值并获得 x - 坐标。我尝试使用MVN将前者放在情节上,但 x - 和 y - 坐标似乎被翻转。

基于文档中的示例:

R

这会产生以下结果: Resulting plot

我也试过text(),当点在y = x线附近时很好,但是当不满足常态时(并且点偏离此线)可能会失败。

有人可以建议如何访问卡方分位数或为什么library(MVN) data(iris) versicolor <- iris[51:100, 1:3] # Mahalanobis distance result <- mvOutlier(versicolor, qqplot = TRUE, method = "quan") labelsO<-rownames(result$outlier)[result$outlier[,2]==TRUE] xcoord<-result$outlier[result$outlier[,2]==TRUE,1] text(xcoord,label=labelsO) 函数的 x - 坐标似乎没有服从输入参数。

3 个答案:

答案 0 :(得分:3)

查看mvOutlier函数,看起来它没有保存卡方值。现在,您的text代码将xcoord视为y值,并假设实际x值为1:2。值得庆幸的是,卡方值是一个相当简单的计算,因为在这种情况下它是基于排名的。

result <- mvOutlier(versicolor, qqplot = TRUE, method = "quan")
labelsO<-rownames(result$outlier)[result$outlier[,2]==TRUE]
xcoord<-result$outlier[result$outlier[,2]==TRUE,1]
#recalculate chi-squared values for ranks 50 and 49 (i.e., p=(size:(size-n.outliers + 1))-0.5)/size and df = n.variables = 3
chis = qchisq(((50:49)-0.5)/50,3)
text(xcoord,chis,label=labelsO)

答案 1 :(得分:3)

MVN软件包的基于Web的版本现在可以标记异常值(异常检测选项卡下的高级选项)。您可以通过http://www.biosoft.hacettepe.edu.tr/MVN/

访问此网络工具

答案 2 :(得分:2)

正如前面的回复中提到的,MVN packge不支持标记异常值。虽然它不是真的有必要,因为它可以手动完成,我们仍然可以考虑在mvOutlier(...)函数中添加“标记异常值”选项。谢谢你的兴趣。我们可能会在包的以下更新中包含它。