要求:修改代码使其采用动态交互或动画形式展示
案例1:为研究高等院校人文社会科学研究中立项课题数会受哪些因素的影响,收集1999年31个省市自治区部分高校有关社科研究方面的数据(相关回归分析(高校科研研究).sav),研究立项课题数(当年)与投入的具有高级职称的人年数(上年)、发表的论文数(上年)之间的关系。
(1) 首先可绘制矩阵散点图进行初步分析。
(2)可通过计算pearson简单相关系数分析变量间线性相关性的强弱。
(3)这里被解释变量为立项课题数(X5),解释变量为投入人年数(X2),投入高级职称的人年数(X3),投入科研事业费(X4),专著数(X6),论文数(X7),获奖数(X8)。
a) 解释变量筛选策略先采用强制进入策略,并做多重共线性检测。
b) 重新建立回归方程,采用向后筛选策略完成解释变量的选择,观测每一步检验的变化情况。
案例2:商业协会收集了最近一年来20个城市的5项指数指标(20个城市的5项指数.xls),根据这些数据建立回归模型,用房屋、公用设施、交通运输和保健指数来预测生活日用品指数,对结果进行讨论,并指出显著和不显著的解释变量。
案例3:为研究居民家庭教育支出和消费性支出之间的关系,收集到1978年至2002年全国人均消费性支出和教育支出的数据。(数据文件:相关回归分析(年人均消费支出和教育.sav)
(1)首先绘制教育支出和消费性支出的散点图,观察散点图发现两变量之间呈非线性关系,可尝试选择二次、三次曲线、复合函数和幂函数模型,利用曲线估计对1990年到2002年数据进行本质线性模型分析。其中,教育支出为被解释变量,消费性支出为解释变量。
(2)利用1981年到2002年的数据绘制就餐费用和年份之间散点图和线图,对居民未来在外就餐费用的趋势进行分析和预测;尝试选择二次、三次曲线、复合函数和幂函数模型,利用曲线估计对年份和就餐费用进行本质线性模型分析。
install.packages("foreign")
install.packages("car")
install.packages("sandwich")
# 加载包
library(foreign)
library(car)
library(sandwich)
# 读取SPSS数据
data <- read.spss("C:\\Users\\ASUS\\Desktop\\南京理工大学\\R语言\\实验课\\实验四线性回归建模\\数据及代码\\相关回归分析(高校科研研究).sav", to.data.frame = TRUE)
# 查看数据摘要
summary(data)
data
# 绘制散点图矩阵
pairs(data[, c("X2", "X3", "X4", "X5", "X6", "X7", "X8")])
# 计算Pearson相关系数
cor_matrix <- cor(data[, c("X2", "X3", "X4", "X5", "X6", "X7", "X8")], method = "pearson")
cor_matrix
# 使用强制进入策略建立初始回归模型
full_model <- lm(X5 ~ X2 + X3 + X4 + X6 + X7 + X8, data = data)
summary(full_model)
# 检查多重共线性
vif(full_model)
step_model <- step(full_model, direction = "backward")
summary(step_model)
# 查看每一步的检验结果
coefficients(step_model, vcov = vcovHC(step_model, type = "HC1"))
#案例二
library(readxl)
data=read.csv(file = "C:\\Users\\ASUS\\Desktop\\南京理工大学\\R语言\\实验课\\实验四线性回归建模\\数据及代码\\CI (1).xlsx",header=TRUE,quote="\\",dec=".",fill=TRUE)
print(data)
# 建立线性回归模型
model <- lm(日用品~ 房.屋+公用设施+交通运输+保.健, data = data)
# 输出模型摘要
summary(model)
# 根据summary输出讨论显著性和不显著性的解释变量
# 通常,如果某个解释变量的p-value小于0.05,则可以认为它在统计上是显著的
significant_vars <- which(summary(model)$coefficients[, "Pr(>|t|)"] < 0.05)
not_significant_vars <- which(!significant_vars)
# 输出显著和不显著的变量
cat("显著的解释变量有:")
names(significant_vars)
cat("\n不显著的解释变量有:")
names(not_significant_vars)
#案例三
library(foreign)
library(ggplot2)
data=read.spss("C:\\Users\\ASUS\\Desktop\\南京理工大学\\R语言\\实验课\\实验四线性回归建模\\数据及代码\\相关回归分析(年人均消费支出和教育).sav",to.data.frame=TRUE)
data
data1 <- data[, c("NF", "X2", "X5")]
# 重命名列名
colnames(data1) <- c("年份", "消费性支出", "教育支出")
# 绘制散点图
ggplot(data1, aes(x = 消费性支出, y = 教育支出)) +
geom_point() +
labs(x = "consumption", y = "Education") +
theme_minimal()
# 拟合二次曲线模型
model_quadratic <- lm(教育支出 ~ 消费性支出 + I(消费性支出^2), data = data1)
new_data <- data.frame(消费性支出 = seq(min(data1$消费性支出), max(data1$消费性支出), length.out = 100))
new_data$教育支出 <- predict(model_quadratic, newdata = new_data)
# 绘制散点图和拟合的二次曲线
ggplot(data1, aes(x = 消费性支出, y = 教育支出)) +
geom_point() +
geom_line(data = new_data, aes(x = 消费性支出, y = 教育支出), color = "red") +
labs(x = "consumption", y = "Education") +
theme_minimal()
# 提取所需的列(年份、就餐费用)
data2 <- data[data$NF >= 1981 & data$NF <= 2002, c("NF", "X4")]
# 重命名列名
colnames(data2) <- c("年份", "就餐费用")
# 绘制散点图
plot(data2$年份, data2$就餐费用, xlab = "Year", ylab = "Eat", main = "年份与就餐费用的关系", pch = 16)
# 拟合二次曲线模型
model_quadratic <- lm(就餐费用 ~ 年份 + I(年份^2), data = data2)
# 预测未来就餐费用
future_years <- seq(2003, 2030, by = 1)
predicted_data <- data.frame(年份 = future_years)
predicted_data$就餐费用 <- predict(model_quadratic, newdata = predicted_data)
# 绘制拟合的二次曲线
lines(predicted_data$年份, predicted_data$就餐费用, col = "red", lwd = 2)
# 输出拟合模型的系数
coefficients(model_quadratic)