WEEK4
- TANG HAORAN

- 2024年3月12日
- 讀畢需時 1 分鐘
两两线性回归
# 加载必要的库
library(ggplot2)
library(gridExtra)
# 读取CSV文件
df <- read.csv("C:/Users/11030/Desktop/HKtestno0.csv", header = TRUE)
# 创建输出文件夹的路径
output_folder <- "C:/Users/11030/Desktop/rall2"
if (!dir.exists(output_folder)) {
dir.create(output_folder)
}
# 获取所有的列名,假定它们都是数值型的列
column_names <- names(df)
# 对每对变量进行线性回归并绘图
for (i in 1:(length(column_names)-1)) {
for (j in (i+1):length(column_names)) {
# 拟合线性模型
model <- lm(reformulate(column_names[i], response = column_names[j]), data = df)
# 获取R平方值
r_squared <- summary(model)$r.squared
# 绘制散点图和拟合线
p <- ggplot(df, aes_string(x = column_names[i], y = column_names[j])) +
geom_point() +
geom_smooth(method = "lm", formula = y ~ x, color = "blue") +
theme_minimal() +
ggtitle(paste("Scatter plot of", column_names[j], "vs", column_names[i], "\nR-squared:", round(r_squared, 3)))
# 保存图像
file_name <- paste0(column_names[i], "_vs_", column_names[j], "_scatterplot.png")
ggsave(file.path(output_folder, file_name), plot = p, width = 5, height = 4, dpi = 300)
}
}
# 保存图像
file_name <- paste(column_names[i], "_vs_", column_names[j], ".png", sep = "")
file_path <- file.path(output_folder, file_name)
ggsave(file_path, plot = p, width = 6, height = 4)
}
}

留言