如何为变量的所有值制作回归线?
How do I make a regression line for all values of my variable?
我的剧情:
plot(airbnb$distance_center,airbnb$price,pch=13,xlab="distance_center",ylab="price",bty="n")
mod <- lm(price~number_people+distance_center)
现在我想包括 回归线,显示
price & distance_center - 包括我的变量“number_people”
的所有 6 个特征
我的想法:
abline(mod$coeff[1],mod$coeff[2],lwd=2)
abline(mod$coeff[2],mod$coeff[2],lwd=2)
abline(mod$coeff[3],mod$coeff[2],lwd=2)
不幸的是,我认为这不太正确,我不确定如何迈出正确的一步。有什么想法吗?
您没有 post 您的数据,因此很难准确判断它的结构(“number_people”是数字还是因子?)。在任何一种情况下,您都需要为每个唯一 number_people
.
建立一条回归线
我在这里创建了一个与您同名的类似数据集:
mod <- lm(price ~ number_people + distance_center, data = airbnb)
plot(airbnb$distance_center, airbnb$price,
pch = 13, xlab = "distance_center", ylab = "price", bty = "n")
invisible(sapply(unique(airbnb$number_people), function(x) {
abline(a = coef(mod)[1] + x * coef(mod)[2], b = coef(mod)[3])
}))
编数据
set.seed(1)
airbnb <- data.frame(
distance_center = sqrt(runif(100, 0, 10)^2 + runif(100, 0, 10)^2),
number_people = sample(6, 100, TRUE))
airbnb$price <- 50 + airbnb$number_people *
50 / airbnb$distance_center + rnorm(100, 0, 5)^2
由 reprex package (v2.0.1)
于 2022-05-28 创建
我的剧情:
plot(airbnb$distance_center,airbnb$price,pch=13,xlab="distance_center",ylab="price",bty="n")
mod <- lm(price~number_people+distance_center)
现在我想包括 回归线,显示 price & distance_center - 包括我的变量“number_people”
的所有 6 个特征我的想法:
abline(mod$coeff[1],mod$coeff[2],lwd=2)
abline(mod$coeff[2],mod$coeff[2],lwd=2)
abline(mod$coeff[3],mod$coeff[2],lwd=2)
不幸的是,我认为这不太正确,我不确定如何迈出正确的一步。有什么想法吗?
您没有 post 您的数据,因此很难准确判断它的结构(“number_people”是数字还是因子?)。在任何一种情况下,您都需要为每个唯一 number_people
.
我在这里创建了一个与您同名的类似数据集:
mod <- lm(price ~ number_people + distance_center, data = airbnb)
plot(airbnb$distance_center, airbnb$price,
pch = 13, xlab = "distance_center", ylab = "price", bty = "n")
invisible(sapply(unique(airbnb$number_people), function(x) {
abline(a = coef(mod)[1] + x * coef(mod)[2], b = coef(mod)[3])
}))
编数据
set.seed(1)
airbnb <- data.frame(
distance_center = sqrt(runif(100, 0, 10)^2 + runif(100, 0, 10)^2),
number_people = sample(6, 100, TRUE))
airbnb$price <- 50 + airbnb$number_people *
50 / airbnb$distance_center + rnorm(100, 0, 5)^2
由 reprex package (v2.0.1)
于 2022-05-28 创建