前言:我是lst,这是本学期课程内容,根据上课内容、参考书本、CSDN社区等来源,完成的部分课程习题代码。如有问题,欢迎大家批评指正

library(openxlsx)                                     #加载读取Excel数据包

#【输出设置】
#setwd("C:/Users/lst89/Documents/mvexer5") #设置目录
options(digits=4)
par(mar=c(4,4,2,1))

#第二章p57-2-1
R=matrix(c(1,0.8,0.26,0.67,0.34,0.8,1,0.33,0.59,0.34,0.26,0.33,1,0.37,0.21,0.67,0.59,0.37,1,0.35,0.34,0.34,0.21,0.35,1),nrow = 5,ncol = 5);
R                                                              #输入数据
solve(R)                                                   #求逆矩阵
R.e=eigen(R,symmetric=T)                     #symmetric是判断是否为对称阵,
R.e                                                           #求矩阵的特诊值
R.e $ vectors%*%diag(R.e $ values)%*%t(R.e $ vectors)#特征向量

#第二章p57-2-2
library(openxlsx)                                      #加载读取Excel数据包
E2.2=read.xlsx('mvexer5.xlsx','E2.2');    
E2.2                                                         #读取mvexer5.xlsx表格E2.2数据
breaks = seq(0,3000,by = 300)               #按组距为300编制频数表
breaks
hist(E2.2 $ X,breaks,col = 1:7,xlab = "工资(元)",ylab = "频数")#以工资x为横轴,频数y为纵轴,将数据划分为0-3000并以300为度量,绘制7列的彩色直方图
hist(E2.2 $ X ,breaks,freq = F,col = 1:7,xlab = "工资(元)",ylab = "频率")
Cumsum <- cumsum(E2.2 $ X)
cumsum
M <- seq(0,96000,by = 3000)

hist(Cumsum,M,freq = F,col = 1:12,las = 3,xlab = "工资(元)",ylab = "累积频率")#绘制出累计频率直方图
H = hist(E2.2 $ X,breaks = seq(900,3000,300))#正态概率图
names(H)
data.frame('组中距' = H $ mids,'频数' = H $ counts,'频率' = H $ density*300,'累积频率' = cumsum(H $ density*300))#

#第二章p57-2-3
library(openxlsx)                                             #加载读取Excel数据包
E2.3=read.xlsx('mvexer5.xlsx','E2.3');          
E2.3                                                                #读取mvexer5.xlsx表格E2.2数据
str(E2.3)                                       
summary(E2.3)                                                #对数据进行基本统计分析

#第三章P84-2.1
library(openxlsx)
E3.2 = read.xlsx('mvexer5.xlsx',sheet = 'E3.2',rowNames = TRUE)          
#设定参数rowNames=TRUE,即可将第一列字符变量变成数据框的行名,供后期使用
E3.2
#在Excel文件中mvexer5.xlsx的表单d3.2中选择A1:E22,并复制到剪切板
dat = read.table("clipboard",header = T)               #将剪切板数据读入数据框dat中
dat
#数据框标记转换函数
msa.X <- function(df){                                          #将数据框第一列设置为数据框行名
  X = df[,-1]                                                          #删除数据框df的第一列并赋给X
  rownames(X) = df[,1]                                       #将df的第一列值赋给X的行名
  X                                                                      #返回新的数值数据框=return(X)
}
E3.2 = msa.X(dat)
E3.2
barplot(apply(E3.2,2,mean))                              #按行作均值条形图
barplot(apply(E3.2,1,mean),las = 3)                  #修改横坐标标记
barplot(apply(E3.2,2,mean))                             #按列作均值条图
barplot(apply(E3.2,2,median))                          #按列作中位数条图
barplot(apply(E3.2,2,median),col = 1:8)           #按列取色
boxplot(E3.2)                                                    #按列作箱尾图
boxplot(E3.2,horizontal = T)                             #箱尾图中图形按水平放置

#四p119-2-1
library(openxlsx)                                               #加载读取Excel数据包
E4.1=read.table("clipboard",header = T)
E4.1

plot(x,y,main = '散点图',xlab = '每周加班时间(小时)',ylab = '每周签发的新保单数目(张)')                                                             #绘制散点图

cor(E4.1)                                                          #相关系数
lm4.1 <- lm(E4.1)
lm4.1

#估计值
square_sigma <- t(E4.1)/(10-1-1)#square_sigma <- t(x_hat - y)%*%(x_hat - y)/(10-1-1)
square_sigma

y = c(3.5,1,4,2,1,3,4.5,1.5,3,5)
x = c(825,215,1070,550,480,920,1350,325,670,1215)
y_hat <- 46.15 + 251.17*y
s <- t(y_hat - x)%*%(y_hat - x)/(10-1-1)
s
(summary(lm4.1) $ s)^2

#求方差分析
SR <- t(y_hat - mean(x))%*%(y_hat - mean(x))
ST <- t(x - mean(x))%*%(x - mean(x))
s_R <- SR/ST
s_R                                       
(summary(lm4.1) $ r.squared)
anova(lm4.1)

#对回归方程作残差图分析
res <- residuals(lm4.1)
res
plot(y,res,main='残差散点图',xlab='每周签发的新保单数目',ylab='残差')
plot(lm4.1)

#计算1000张要加班的时间
lm4.1_1 <- lm(x ~ y,data = ee4.1)
predict(lm4.1_1,newdata = data.frame(y = 1000))
lm4.1_1 <- lm(y ~ x,data = ee4.1)
predict(lm4.1_1,newdata = data.frame(x = 1000))

#四p119-2-2
library(openxlsx)
E4.2 = read.xlsx('mvexer5.xlsx',sheet = 'E4.2',rowNames = T)
(lm4.2 = lm(y ~ x1 + x2,data = E4.2))                 #显示多元线性回归模型

library(openxlsx)                                                 #加载读取Excel数据包
E4.2=read.table("clipboard",header = T)
E4.2
(lm4.2=lm(y~x1+x2,data=E4.2))
coef.sd <- function(lm4.2){                                 #标准回归系数
  b = lm4.2 $ coef
  b
  si = apply(lm4.2 $ model,2,sd)
  si
  bs = b[-1] * si[-1]/si[1]
  bs
}

coef.sd(lm4.2)
                                                  #在5%的显著水平下确定每一解释变量与依赖变量是否呈线性关系
summary(lm4.2)
                                                  #计算简单相关系数和复相关系数
cor(E4.2)

#四119-2-3
#回归模型并解释各系数
E4.3 = read.table("clipboard",header = T)
E4.3
#确定学生的GPA和年龄是否能真正用来解释起始工资样本的变化
(lm4.3 = lm(起始工资~ GPA + 年龄,data = E4.3))
summary(lm4.3)
R4.3 = summary(lm4.3) $ r.sq
R4.3
R_2_4.3 = sqrt(R4.3)
R_2_4.3
#预测某GPA为3.00,年龄为24岁的毕业生的起始工资
predict(lm4.3,newdata = data.frame(GPA = 3,年龄 = 24))

#四120-2-4
#计算y,x1,x2,x3的相关系数矩阵并绘制矩阵散点图

library(openxlsx)
E4.4 = read.xlsx('mvexer5.xlsx',sheet = 'E4.4')
cor4.4 <- cor(E4.4[,-1])      #去除第一列编号数据后剩余的样本计算相关系数矩阵
cor4.4

pairs(E4.4)#绘制散点图

#求y关于x1,x2,x3的多元线性回归方程
lm4.4 <- lm(y ~ x1 + x2 + x3,data = E4.4)      #建立回归方程
summary(lm4.4)
#所求得的方程做拟合优度检验
summary(lm4.4)
(R4.4 = summary(lm4.4)$r.sq)
(R_2_4.4 = sqrt(R4.4))

#对回归方程做显著性检验,对每一个回归系数做显著性检验
summary(lm4.4)
#如果有的回归系数没通过显著性检验,将其剔除,重新建立回归方程,再做回归方程的显著性检验和回归系数的显著性检验
lm4.4_drop3 <- lm(y ~ x1 + x2,data = E4.4)
lm4.4_drop3
summary(lm4.4_drop3)

#对每一个回归系数做显著性检验
summary(lm4.4_drop3)
t1 <- 1.942
t2 <- 2.465
t3 <- 1.178
qt(1-0.05,7)

#使用逐步回归分析的逐步筛选方法获得一个最优的回归模型
lm.step = step(lm4.4,direction = 'forward')           #向前引入法变量选择结果

lm.step = step(lm4.4,direction = 'backward')       #向后剔除法变量选择结果

lm.step = step(lm4.4,direction = 'both')               #逐步筛选法变量选择结果

#五p144-2-1
library(openxlsx)
E5.1 = read.xlsx('mvexer5.xlsx',sheet = 'E5.1')
E5.1
anova(lm(S ~ factor(F),data = E5.1))

#五p145-2-2
library(openxlsx)
E5.2 = read.xlsx('mvexer5.xlsx',sheet = 'E5.2')
E5.2
summary(E5.2)
anova(lm(P ~ factor(A)+factor(B),data=E5.2))

#五p145-2-3
library(openxlsx)
E5.3 <- read.xlsx('mvexer5.xlsx',sheet = 'E5.3')
E5.3
summary(E5.3)
logit.glm = glm(G ~ x1 + x2,data = E5.3)
summary(logit.glm)

logit.step <- step(logit.glm,direction = 'both')    #逐步筛选法变量选择
summary(logit.step)
pre1 <- predict(logit.glm,data.frame(x1 = 131,x2 = -2))
pre1

#第七章p212-2
library(openxlsx)
E7.2=read.xlsx("mvexer5.xlsx",sheet = 'E7.2',rowNames = T)
E7.2
plot(E7.2,gap=0)                                   #绘制散点图
D =dist(E7.2)                                        #计算距离矩阵
D
hc = hclust(D,"single")                          #聚类 最短距离法
hc
names(hc)
data.frame(hc $ merge,hc $ height)
plot(hc)

hc = hclust(D)                                      #聚类 最长距离法
hc
names(hc)
data.frame(hc $ merge,hc $ height)
plot(hc)

plot(hclust(D,"median"))                     #聚类 中间距离法
plot(hclust(D,"average"))
plot(hclust(D,"centroid"))
plot(hclust(D,"ward.D"))
plot(hclust(D,"ward.D2"))
plot(hc)
rect.hclust(hc,k = 4,border = 'pink')    #综上 认为平均距离好。分四类

多元统计分析及R语言建模(第五版)部分课后习题代码演示相关推荐

  1. 多元统计分析及R语言建模(第五版)——第6章 判别分析课后习题

    第6章 判别分析 文章会用到的数据请在这个网址下下载多元统计分析及R语言建模(第五版)数据 练习题 1)考虑两个数据集x1 = [3 7 2 4 4 7],x2 = [6 9 5 7 4 8] (1) ...

  2. 多元统计分析及R语言建模(第五版)——第3章多元数据的直观表示课后习题

    第3章多元数据的直观表示 本文用到的数据可以去这个网址下下载多元统计分析及R语言建模(第5版)数据 练习题 2)表3-2是2004年广东省各市高新技术产品情况.试对资料按照本章介绍的多元图示方法做直观 ...

  3. 多元统计分析及R语言建模_自定义函数: msaR.R

    #*********************************************** #****** 多元统计分析及R语言建模(第五版)****** #****** 自定义函数: msaR ...

  4. 多元统计分析及R语言建模

    目录 一.数据矩阵数据框及R表示 1.创建向量和矩阵 1)创建一个向量 2)创建一个矩阵 2.矩阵其他运算 1)矩阵的转置,加法减,矩阵相乘,求矩阵C的逆 2)获得矩阵对角线元素 ,创建三阶单位矩阵 ...

  5. 多元统计分析及R语言建模(王斌会)第十、十一、十二章答案

    3)我国工农业产业系统的典型相关分析:首先将工业内部五个结构比重变量作为第一组分析变量:以农业产品为原料的生产部门的产值占总工业部门产值的比重:以非农业产品为原料的生产部门的产值占总工业部门产值的比重 ...

  6. 多元统计分析及R语言建模(王斌会)第八、九、十章答案

    1)试述主成分分析的基本思想 主成分分析是利用降维的思想,将多个变量转化为少数几个综合变量(即主成分),其中每个主成分都是原始变量的线性组合,各主成分之间互不相关,从而这些主成分能够反映始变量的绝大部 ...

  7. 多元统计分析及R语言建模#学习笔记

    最近在学习R语言,把书上的代码都敲一遍,仅供学习 函数c()创建向量 x1=c(171,175,159,155,152,158,154,164,168,166,159,164) x2=c(57,64, ...

  8. 数学建模笔记(十五):多元统计分析及R语言建模(判别分析、聚类分析、主成分分析、因子分析,含数据代码注释,均可供运行)

    文章目录 一.多元数据的数学表达 1.多元分析资料的一般格式与矩阵化表示 2.数据特征(一元数据与多元数据的均值和方差) 二.R软件基本使用 1.向量创建(c函数) 2.行列合并(rbind,cbin ...

  9. 2020春多元统计分析及R语言建模习题

    文章目录 第一章测试题 第二章测试题 第三章测试题 第四章测试题 第五章测试题 第六章测试题 第七章测试题 第八章测试题 第九章测试题 第十章测试题 第十一章测试题 第十二章测试题 第十三章测试题 第 ...

最新文章

  1. C++ 向量(vector) 的使用
  2. 认知AI的兴起:2025年AI将会发生质的飞跃
  3. 易语言 基础知识一及认识句柄 局部变量
  4. AprilTag程序的获取
  5. 程序员面试题精选100题(24)-栈的push、pop序列[数据结构]
  6. 机房收费--一般用户
  7. LeetCode 30串联所有单词的子串31下一个排列
  8. tomcat 环境配置
  9. Swing中的一些对话框
  10. GridView中列表的“双击事件”
  11. Spring Boot Cache使用与整合
  12. oracle使用loop将增加十天,使用loop循环操作DML语句
  13. Java instead of 用法_我又不是你的谁--java instanceof操作符用法揭秘
  14. c语言输出单链表最大值与最小值,数据结构(C语言版)---顺序表与链表的比较...
  15. alex的ATM学习笔记
  16. 2021年各省高考试成绩查询,2021年各省高考成绩查询时间 什么时候出分
  17. 谷歌浏览器开发者模式
  18. 记录一下落地网关soul(shenyu)过程中的一些实践
  19. 语言模型Katz backoff以及HMM模型
  20. 我在成都火车站捡了个彝族美女 第19节:饭来张口的生活

热门文章

  1. 红米6 红米6A完美刷入开发版获取ROOT超级权限的经验
  2. idea Java 读取rtf文件内容,解决中文乱码的问题。
  3. 充电显示服务器异常,手机充电异常请咨询客户服务中心
  4. 取消蓝牙配对代码_配对代码审查
  5. HTML列表标签及自定义列表的应用
  6. 二进制数字调制器的设计
  7. 【微信公众号VUEh5获取展示微信内置地图(gcj02)转为百度地图】
  8. Spring源码解析三
  9. js格式化日期为各种国际格式
  10. 【xshell7免费下载安装】