[英]autoplot() in R for lm: why do I get a “Constant Leverage: Residuals vs Factor Levels” instead of a “Residuals vs Leverage” plot?
[英]Linear regression with R: How do I get labels on data point in qq plot, scale location plot, Residuals vs Leverage etc
我有一個與歐盟成員國有關的小型數據集,其中包含有關其談判成功程度和成員國在談判中表現出的活動水平的值。
我正在使用 R 進行線性回歸。
簡而言之,假設是:成員 state 顯示的活動越多,它在談判中的成功就越大。
我玩了很多數據,對其進行了轉換等。
到目前為止我做了什么:
# 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)
到目前為止,一切都很好。 現在我想檢查 model 質量。 對於視覺檢查,我發現我可以使用命令
plot(linModel)
這會連續生成 4 個圖:
正如您在每張圖片中看到的那樣,R 用數字標記有問題的觀察結果。 如果 R 可以只使用 te 數據集中的“MS_short”列並將 label 添加到標記的觀察結果中,那將非常方便。 我相信這是可能的......但是如何?
我現在與 R 合作了 2 個月。 我在這里和通過谷歌找到了一些東西,但沒有任何幫助我解決問題。 我沒有人可以問。 這是我在 stackoverflow 上的第 1 篇文章。
提前謝謝你
在 G. Grothendieck 的幫助下,我解決了這個問題。
輸入 plot 的 R-help 后,更具體的是 plot 和線性回歸(plot.lm)的幫助,使用命令
?plot.lm
我閱讀了帶有“參數和用法”部分的框,並確定了labels.id參數和id.n參數。
id.n是“每個 plot 中要標記的點數,從最極端開始。”
我需要那個。 我對識別這個極端點很感興趣。 R 已經在所有圖形中標記了 3 個最極端的點(參見初始帖子),但使用了觀察數字而不是任何有用的標簽。 任何其他標簽都會弄亂圖形。 所以,我們記得:在我的例子中,我希望標記 3 個最極端的值。
現在讓我們將其添加到命令中:我開始與上面相同,使用我已經計算的線性 model -> plot(linModel) 的 plot。 之后我添加了“ id.n = ”並將值設置為“ 3 ”。 看起來像這樣:
plot(linModel, id.n = 3,
到目前為止一切順利,現在 R 知道 label 是什么,但仍然不知道應該用作 label。 為此,我們必須將labels.id添加到命令中。
labels.id是“標簽向量,將從中選擇極值點的標簽”。
我假設我的數據集中的一列(不是線性模型!)具有向量的屬性,所以我在命令中添加了一個逗號,然后是“ labels.id = ”並輸入了我的數據集的名稱,然后是列,所以在我的例子中:“linData$MS_short”,其中 linData 是數據集,MS_short 是每個成員 state 的 2 個字母字符串的列。 最終命令如下所示:
plot(linModel, id.n = 3, labels.id = linData$MS_short)
然后它起作用了(見這里)。 故事結局。
希望這可以幫助其他一些新手。 問候。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.