首页 > 解决方案 > 使用 R 进行线性回归:如何在 qq 图中的数据点上获得标签、比例位置图、残差与杠杆等

问题描述

我有一个与欧盟成员国有关的小型数据集,其中包含有关其谈判成功程度和成员国在谈判中表现出的活动水平的值。

我正在用 R 进行线性回归。

简而言之,假设是:一个成员国表现得越活跃,它在谈判中就会越成功。

我玩了很多数据,对其进行了转换等。

到目前为止我做了什么:

# Stored the dataset from a csv file in object linData
linData = read.csv(file.choose(), sep = ";", encoding = "de_DE.UTF-8")

# As I like to switch variables and test different models, I send the relevant ones to objects x and y.
# So it is easier for me to change it in the future.
x = linData$ALL_Non_Paper_Art.Ann.Recit.Nennung
y = linData$Success_high

# I put the label for each observation in a factor lab
lab = linData$MS_short

# After this I run the linear model
linModel = lm(y~x, data = linData)
summary(linModel)

# I create a simple scatterplot. Here the labels from the factor lab work fine
plot(x, y)
text(x, y, labels=lab, cex= 0.5, pos = 4)

到目前为止,一切都很好。现在我想检查模型质量。对于视觉检查,我发现我可以使用命令

plot(linModel)

这会连续生成 4 个图:

正如您在每张图片中看到的那样,R 用数字标记有问题的观察结果。如果 R 可以只使用 te 数据集中的“MS_short”列并将标签添加到标记的观察结果,那将非常方便。我相信这是可能的......但是如何?

我现在用 R 工作了 2 个月。我在这里和通过谷歌找到了一些东西,但没有任何帮助我解决问题。我没有人可以问。这是我在 stackoverflow 上的第 1 篇文章。

提前谢谢你

标签: rplotlabellinear-regression

解决方案


在 G. Grothendieck 的帮助下,我解决了这个问题。

进入 plot 的 R-help 后,更具体的 plot 和线性回归的帮助(plot.lm)用命令

?plot.lm

我阅读了带有“参数和用法”部分的框,并确定了labels.id参数和id.n参数。

id.n是“每个图中要标记的点数,从最极端开始。”

我需要那个。我对识别这个极端点很感兴趣。R 已经在所有图形中标记了 3 个最极端的点(参见初始帖子),但使用了观察数字而不是任何有用的标签。任何其他标签都会弄乱图形。所以,我们记得:在我的例子中,我希望标记 3 个最极端的值。

现在让我们将它添加到命令中:我开始与上面相同,使用我已经计算的线性模型的绘图 -> plot(linModel)。之后我添加了“ id.n = ”并将值设置为“ 3 ”。看起来像这样:

plot(linModel, id.n = 3, 

到目前为止一切顺利,现在 R 知道要标记什么,但仍然不知道应该将什么用作标签。为此,我们必须将labels.id添加到命令中。

labels.id是“标签向量,将从中选择极值点的标签”。

我假设我的数据集中的一列(不是线性模型!)具有向量的属性,所以我在命令中添加了一个逗号,然后是“ labels.id = ”并输入了我的数据集的名称,然后是列,所以在我的例子中:“linData$MS_short”,其中 linData 是数据集,MS_short 是每个成员国的 2 个字母字符串的列。最终命令如下所示:

plot(linModel, id.n = 3, labels.id = linData$MS_short)

然后它起作用了(见这里)。故事结局。

希望这可以帮助其他一些新手。问候。


推荐阅读