📌  相关文章
📜  ggplot glm - R 编程语言(1)

📅  最后修改于: 2023-12-03 15:30:54.343000             🧑  作者: Mango

ggplot glm - R 编程语言

R 编程语言是广泛用于数据分析和可视化的开源语言,其中 ggplot2 是一种强大的可视化包。同时,在 R 中,glm 是一种常用的广义线性模型,它可以用于分析二元或多元的响应变量。本文将介绍如何使用 ggplot 和 glm 进行数据可视化和分析。

安装 ggplot2 包、glm 包
install.packages("ggplot2")
install.packages("glm")
导入数据

我们使用一个名为 "mtcars" 的数据集,其中包含 1974 年 Motor Trend US 杂志发布的 32 辆汽车的性能数据。我们将导入此数据集并进行一些预处理。

data(mtcars)

# 将 mpg 转换为 km/l
mtcars$km_per_l <- 0.4251*1/mtcars$mpg

# 将 am 转换为因子型变量
mtcars$am <- as.factor(mtcars$am)
levels(mtcars$am) <- c("自动挡", "手动挡")

# 将 gear 转换为因子型变量
mtcars$gear <- as.factor(mtcars$gear)
levels(mtcars$gear) <- c("3档", "4档", "5档")

# 将 carb 转换为因子型变量
mtcars$carb <- as.factor(mtcars$carb)
levels(mtcars$carb) <- c("1个", "2个", "3个", "4个", "6个", "8个")

head(mtcars)
绘制散点图

我们可以使用 ggplot2 包的函数 ggplot() 和 geom_point() 绘制散点图。在下面的例子中,我们将汽车的重量(wt)和油耗(km/l)用散点图表示,并使用不同的颜色标记不同的变速器类型(gear)。

library(ggplot2)

ggplot(mtcars, aes(x=wt, y=km_per_l, color=gear)) +
  geom_point(size=3) +
  scale_color_manual(values=c("#E53935", "#FB8C00", "#00897B")) +
  xlab("重量(千克)") +
  ylab("油耗(升/100公里)")

scatterplot

进行回归分析

我们可以使用 glm() 函数进行回归分析,以了解变量之间的关系。在下面的例子中,我们将考虑如何使用 glm() 函数来预测汽车是否为手动挡(am)。

首先,我们将数据集分为训练集和测试集。训练集包含 24 辆汽车,测试集包含 8 辆汽车。

set.seed(123)
train <- sample(nrow(mtcars), 24)
mtcars_train <- mtcars[train, ]
mtcars_test <- mtcars[-train, ]

然后,我们使用 glm() 函数训练模型,并使用 test data 集进行预测。

# 拟合广义线性模型
glm.fit <- glm(am ~ wt, family=binomial(link="logit"), data=mtcars_train)

# 对测试集进行预测
glm.pred <- predict(glm.fit, mtcars_test, type="response")
glm.pred <- ifelse(glm.pred > 0.5, "手动挡", "自动挡")

最后,我们使用 confusionMatrix() 函数计算模型的准确率。

library(caret)
confusionMatrix(glm.pred, mtcars_test$am)
Confusion Matrix and Statistics

          Reference
Prediction 自动挡 手动挡
       自动挡    2    2
       手动挡    2    2

Accuracy : 0.5 

准确率为 0.5,表明模型预测准确率不高,需要进一步优化模型或选择更合适的预测变量。

总结

本文介绍了如何使用 ggplot 和 glm 进行数据可视化和分析。ggplot2 包提供了灵活的绘图工具,可以以可视化的方式探索数据集中的模式和趋势。glm() 函数可以用于训练广义线性模型,用于分析响应变量和预测变量之间的关系。这些工具可以帮助数据科学家更好地理解数据,并作出更准确的预测和决策。