簡體   English   中英

基本 R 圖中的 lines() 函數給出了幾條線而不是平滑線

[英]lines() function in base R plot giving several lines instead of smooth line

我正在嘗試為我擁有的回歸模型圖添加平滑器。 我只是使用基數 R 來繪制我的 X 和 Y 向量,然后使用 plot() 和lines() 添加一個平滑器。 我以前做過這個,它奏效了,但今天我得到了一個多條線連接點的圖,而不是一條穿過所有數據的平滑線。 我無法弄清楚我編寫的這段代碼有什么不同,所以我希望這里有人可以幫助我確定問題。

這是我的代碼。 我正在使用我隨機生成的數據來練習其他東西:

X 和隨機變量向量來創建“Y”:

X <- rnorm(100, mean = 10, sd = 1)
epsilon <- rnorm(100, 0, 1)

是:

b0 <- 0.27
b1 <- 0.49
b2 <- 0.62
b3 <- 0.8

Y <- b0 + b1*X + b2*2^2 + b3*X^3 + epsilon

創建 df 和 reg 模型/Yhat:

df = data.frame(Y,X,epsilon)
reg <- lm(Y ~ I(X^3), data = df)
Yhat <- fitted.values(reg)
cbind(df, Yhat) -> df

陰謀:

plot(X, Y)
lines(X, Yhat, col = "blue", lwd = 0.5)

為此,必須對X值進行排序,並根據對應的X值對Y值進行排序:

X <- rnorm(100, mean = 10, sd = 1)
epsilon <- rnorm(100, 0, 1)

b0 <- 0.27
b1 <- 0.49
b2 <- 0.62
b3 <- 0.8

Y <- b0 + b1*X + b2*2^2 + b3*X^3 + epsilon

df = data.frame(Y,X,epsilon)
reg <- lm(Y ~ I(X^3), data = df)
Yhat <- fitted.values(reg)
cbind(df, Yhat) -> df

plot(X, Y)
lines(X[order(X)], Yhat[order(X)], col = "blue", lwd = 0.5)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM