R语言实验汇总----助力高绩点

2024-03-08 02:50

本文主要是介绍R语言实验汇总----助力高绩点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

多元统计分析及R语言建模(第四版)

实验一:

实验1:用R语言求矩阵的逆矩阵、特征根和特征向量 P37 练习题 二-1

r=c(1.00,0.80,0.26,0.67,0.34,0.80,1.00,0.33,0.59,0.34,0.26,0.33,1.00,0.37,0.21,0.67,0.59,0.37,1.00,0.35,0.34,0.34,0.21,0.35,1.00)

r

R=matrix(r,nrow=5,ncol=5)

R

nR=solve(R)

nR

R.e=eigen(R,symmetric = T)

R.e

实验2:对给定的数据计算频数、频率和累积频率、并绘制直方图 P37 练习题 二-3

a=read.table("clipboard",header = T)

a

b=t(a)

hist(b)

hist(b,breaks = seq(0,3000,by=300),col = 1:7,freq = T)#频数

hist(b,breaks = seq(0,3000,by=300),col = 1:7,freq = F)#频率

b=cumsum(b)

hist(b,breaks = seq(0,96000,by=3000),col = 1:20,freq = T)#累积频率

实验3:编制进行计量数据频数表分析的R语言函数 P38 练习题 二-4

table(a)

pingshu<-function(s){

  table(s)

}

pingshu(b)

pingshu(a)

 

实验二:

实验1:使用本章所讲的多元图示方法对 P55 练习题 二-2的数据进行直观分析

x=read.table("clipboard",header = T)

x

barplot(apply(x,1,mean),las=2)

barplot(apply(x, 2,mean),las=2)

barplot(apply(x, 2, median),las=2)

barplot(apply(x, 1, median),las=2)

pie(apply(x, 2, mean))

boxplot(x,las=2)

boxplot(t(x),las=2)

stars(x,full = T,draw.segments =T,key.loc = c(13,1.5))

library(aplpack)

faces(x,ncol.plot = 5)

faces(t(x),ncol.plot = 2)

library(mvstats)

plot.andrews(x)

plot.andrews(t(x))

实验2:用R语言绘制雷达图和星相图 P55 练习题 二-1,要求有分析结果

                     *数据任意

library(fmsb)

radarchart(x[,1:4],axistype=0,seg=4,maxmin=FALSE,vlabels=names(x[,1:4]),pcol=1:7,plwd=2.0)

实验三:

实验1:对给定的保险公司加班和签单数据进行分析。

                  P85 练习题二-1

x=c(825,215,1070,550,480,920,1350,325,670,1215)

y=c(3.5,1,4,2,1,3,4.5,1.5,3,5)

#自定义求离均差乘积和的函数

lxy<-function(x,y){n=length(x);sum(x*y)-sum(x)*sum(y)/n}

b=lxy(x,y)/lxy(x,x)#直线斜率

a=mean(y)-b*mean(x)#截距

plot(x,y)#散点图

lines(x,a+b*x)#画直线

 

cor(x,y)#相关系数计算

cor.test(x,y)#相关系数检验

 

z=data.frame(x,y)#获得数据框

fm=lm(y~x,data=z)#最小二乘法处理

fm

 

SST=lxy(y,y)#因变量的离均差平方和

SSR=b*lxy(x,y)#回归平方和

SSE=SST-SSR#随机误差的方差

SSE

 

R2=summary(fm)$r.sq#求x和y的决定系数

R2

 

anova(fm)#方差分析

 

plot(y~x,data=z)#残差图

abline(fm)#添加回归线

实验2:对给定的广告公司的年销售额、广告预算、销售代理数目数据E3.2进行分析。

                P86 练习题二-2

x1=c(249,183,310,246,288,248,256,241)

x2=c(15,14,21,18,13,21,20,19)

y1=c(32,18,49,52,36,43,24,41)

z1=data.frame(y1,x1,x2)

fm1=lm(y1~x1+x2,data = z1)

fm1

 

summary(fm1)#多元回归系数t检验

 

R3=summary(fm1)$r.sq#多元回归模型的决定系数

R=sqrt(R3)#多元数据复相关系数

R

cor(y1,x1)

cor(y1,x2)

cor(x1,x2)

实验3:对给定的毕业生的起始工资、平均成绩和毕业年龄的数据进行分析,说明他们之间是否有关系。

               P86 练习题二-3

x3=c(2.95,3.40,3.20,3.10,3.05,2.75,3.15,2.75)

x4=c(22,23,27,25,23,28,26,26)

y2=c(25500,28100,28200,25000,22700,22500,26000,23800)

z2=data.frame(y2,x3,x4)#获得数据框

fm2=lm(y2~x3+x4,data = z2)

fm2

 

summary(fm2)#多元回归系数t检验

实验4:研究货运总量与工业总产值、农业总产值和居民非商品支出的关系。

              P86 练习题二-4

z3=read.table("clipboard",header = T)

cor(z3)

plot(z3)

 

fm3=lm(y~x1+x2+x3,data = z3)

fm3

 

chisq.test(z3)#卡方检验

 

anova(fm3)#回归方程的检验

summary(fm3)#回归系数的t检验

 

z4=read.table("clipboard",header = T)

fm4=lm(y~x2,data = z4)

fm4

anova(fm4)#回归方程的检验

summary(fm4)#回归系数的t检验

 

library(leaps)#加载包

varsel=regsubsets(y~x1+x2+x3,data = z3)#变量选择模型

result=summary(varsel)#变量选择方法结果

result

#RSS和决定系数展示

data.frame(result$outmat,RSS=result$rss,R2=result$rsq)

 

z5=read.table("clipboard",header = T)

fm5=lm(y~x1+x2,data = z5)

fm5

实验四:

实验1:用学过的广义或一般线性模型对给定的工厂零件数据进行分析, 判断三个工厂生产零件的平均强度是否相同  P104 练习题二-1

x=c(103,101,98,110)#甲

y=c(113,107,108,116,115,109)#乙

z=c(82,92,84,86,88)#丙

s=c(103,101,98,110,113,107,108,116,115,109,82,92,84,86,88)

v=c(1,1,1,1,2,2,2,2,2,2,3,3,3,3,3)

d=data.frame(s,v)

anova(lm(s~factor(v),data=d))#完全随机设计模型方差分析

 

mean(x)#甲的平均强度

mean(y)#乙的平均强度

mean(z)#丙的平均强度

      实验2:对给定的某化工产品配方和生产率的数据进行分析,说明不同配方和不同日期对生产率有无影响  P104 练习题二-2

Y=c(64.9,69.1,76.1,82.9,62.6,70.1,74.0,80.0,61.1,66.8,71.3,76.0,59.2,63.6,67.2,72.3)

A=c(1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4)

B=c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4)

d=data.frame(Y,A,B)#实验二中整合的数据

anova(lm(Y~factor(A)+factor(B),data=d))#随机单位组设计模型方差分析

      实验3:对三种品牌洗衣机的问卷调查数据进行直观分析、卡方检验,建立对数线性模型,并对结果进行分析  P104 练习题二-3

D=c(43,51,67,45,39,54,51,35,32,66,32,30)

X=c(1,2,3,1,2,3,1,2,3,1,2,3)

Y=c(1,1,1,1,1,1,2,2,2,2,2,2)

Z=c(1,1,1,2,2,2,1,1,1,2,2,2)

d=data.frame(D,X,Y,Z)

chisq.test(d)#卡方检验

log.glm<-glm(D~X+Y+Z,family = poisson(link = log),data = d)#多元对数线性回归模型

summary(log.glm)#多元对数回归模型的结果

      实验4:对给定的银行贷款数据E5.4建立Logistic回归模型,根据建立模型判断是否给某一客户提供贷款 P105 练习题二-4

x1=c(40,35,15,29,1,-2,22,10,125,100,350,54,4,2,-10,131)

x2=c(1,1,-1,2,2,1,0,1,-2,-2,-1,-1,-1,0,-1,-2)

G=c(1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0)

d=data.frame(G,x1,x2)

logit.glm<-glm(G~x1+x2,family = binomial,data = d)#Logistic回归模型

summary(logit.glm)#Logistic回归模型结果

logit.step<-step(logit.glm,direction = "both")#变量选择

summary(logit.step)#选择结果

实验五:

实验1:用Fisher判别法和Bayes判别法对冠心病患者和健康人的舒张期血压和胆固醇含量数据E6.3进行分类分析,并绘制判别函数图,判断哪种判别方法更适合该数据的分类分析。 P129 练习题二-3

a=read.table("clipboard",header = T)

b=read.table("clipboard",header = T)

attach(a)

plot(X1A,X2A)#A组散点图

detach(a)

attach(b)

plot(X1B,X2B)#B组散点图

detach(b)

a=read.table("clipboard",header = T)

b=read.table("clipboard",header = T)

c=rbind(a,b)

attach(c)

plot(X1,X2)

text(X1,X2,组别,adj=-0.5)

library(MASS)

(ld=lda(组别~X1+X2))#Fisher判别

Z=predict(ld)#根据模型预测所属的类别

newG=Z$class#预测所属类别的结果

cbind(组别,Z$x,newG)#显示结果

tab=table(组别,newG)

sum(diag(prop.table(tab)))#符合率

detach(c)

(ld1=lda(组别~X1+X2,prior=c(1,1)/2))#Bayes判别

Z1=predict(ld1)#根据模型预测所属的类别

cbind(组别,Z1$x,newG=Z1$class)#显示结果

fm=lm(X1~X2,data=c)

abline(fm)

       实验2:对财务困境的上市公司和非困境的上市公司的财务数据E6.4进行分析,建立线性判别、非线性判别和Bayes判别分析模型,计算各自的判别率,选出最合适的判别模型,预测给定的数据是否会陷入财务困境。 P130 练习题二-4

e=read.table("clipboard",header = T)

attach(e)

(ld=lda(G~x1+x2+x3+x4))#线性判别

Z=predict(ld)#根据模型预测所属的类别

newG=Z$class#预测所属类别的结果

cbind(G,Z$x,newG)#显示结果

tab=table(G,newG)

sum(diag(prop.table(tab)))#符合率

qd=qda(G~x1+x2+x3+x4);qd#非线性判别

predict(qd)

(ld1=lda(G~x1+x2+x3+x4,prior=c(1,1)/2))#Bayes

 

predict(qd,data.frame(x1=78.3563,x2=0.8895,x3=1.8001,x4=14.1022))

detach(e)

       实验3:对三种鸢尾花的数据E6.5用Fisher判别方法进行分类,并计算出模型的判别准确率 P131 练习题二-5

f=read.table("clipboard",header = T)

attach(f)

(ld=lda(i~x1+x2+x3+x4))#Fisher

Z=predict(ld)

newG=Z$class

cbind(i,Z$x,newG)

(tab=table(i,newG))

sum(diag(prop.table(tab)))

实验六:

实验1:应用层次聚类的方法对我国31个区域16个经济经济指标数据case6进行聚类,并对聚类的结果进行分析,要求画出聚类分析图

a=read.table("clipboard",header = T)

plot(a)

library(cluster)

dv=diana(a,metric = "eulidean")#层次聚类

plot(dv)#聚类图

     实验2:比较我国31个省市自治区2013年和2007年城镇居民生活消费的分布规律,根据调查资料做区域消费类型划分,并对2013年的数据和2007年的数据进行对比分析。

要求使用k-means算法、层次聚类算法、系统聚类方法进行分析。P155 二练习题2

b07=read.table("clipboard",header = T)

c13=read.table("clipboard",header = T)

#2007年

dv=diana(b07,metric = "eulidean")#层次聚类

plot(dv)#聚类图

library(mvstats)

H.clust(b07,"euclidean","ward.D",plot = T)#系统聚类

c=kmeans(b07,2)#k-means聚类

pch1=rep("1",10)

pch2=rep("2",10)

plot(b07,col=c$cluster,pch=c(pch1,pch2),cex=0.8)

#2013年

dv=diana(c13,metric = "eulidean")#层次聚类

plot(dv)#聚类图

library(mvstats)

H.clust(c13,"euclidean","ward.D",plot = T)#系统聚类

c=kmeans(c13,2)#k-means聚类

pch1=rep("1",10)

pch2=rep("2",10)

plot(c13,col=c$cluster,pch=c(pch1,pch2),cex=0.8)

实验3:下面给出5个元素两两之间的距离,使用最短距离法对其进行聚类分析,画出聚类图,并按照两类、三类进行分类

x=c(0,4,6,1,6,4,0,9,7,3,6,9,0,10,5,1,7,10,0,8,6,3,5,8,0)

d=matrix(x,nrow=5,ncol=5)#创建题目要求的矩阵

d

hc=hclust(dist(d),"single")#用最短距离聚类分析

plot(hc)

rect.hclust(hc,2);cutree(hc,2)#分2类

plot(hc)

rect.hclust(hc,3);cutree(hc,3)#分2类

实验七:

实验1:对给定的1660人的按心理健康状况和社会经济状况进行交叉分组的数据E10.2做对应分析,解释对应分析的结果,把数据间的联系用数据可视化的方法表示出来。

                     P215 二练习题2

x=read.table("clipboard",header = T)

x

chisq.test(x)#卡方检验

library(MASS)

cal=corresp(x,nf=2)#对应分析

cal#对应分析结果

biplot(cal)#双坐标轴图

         实验2:用对应分析的方法,对按人均收入等级划分的农村居民家庭基本情况的数据E10.3进行分析,分析不同文化程度和不同的收入来源对广东省农民收入水平的影响密切程度。

                   P216 二练习题3

#不同文化程度

x=read.table("clipboard",header = T)

x

chisq.test(x)#卡方检验

cal1=corresp(x,nf=2)#对应分析

cal1#对应分析结果

biplot(cal1)#双坐标图

 

#不同收入来源

x=read.table("clipboard",header = T)

x

chisq.test(x)#卡方检验

cal2=corresp(x,nf=2)#对应分析

cal2#对应分析结果

biplot(cal2)#双坐标图

实验八:

要求包括以下的分析结果

            1. 典型变量相关系数                 2. 典型相关系数的检验结果

            3. 典型变量的线性方程            4. 典型相关图

      实验1:对我国工农产业系统做典型相关分析

工业部有5个结构比重指标和农业部有4个产值指标,对数据E.11.3做典 型分析

                 P232 二练习题3

x=read.table("clipboard",header = T)

library(mvstats)

cancor.test(x[,1:5],x[,6:9],plot = T)#典型相关分析及检验作图

      实验2:对各类投资资金与三大产业做典型相关分析

 衡量投资资金变化有5个指标,反应各产业生产总值的指标有3个,对数据 E.11.4做典型分析

                P233 二练习题4               

y=read.table("clipboard",header = T)

cancor.test(y[,1:5],y[,6:8],plot = T)#典型相关分析及检验作图

 

 

 

这篇关于R语言实验汇总----助力高绩点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/785739

相关文章

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

客户案例:安全海外中继助力知名家电企业化解海外通邮困境

1、客户背景 广东格兰仕集团有限公司(以下简称“格兰仕”),成立于1978年,是中国家电行业的领军企业之一。作为全球最大的微波炉生产基地,格兰仕拥有多项国际领先的家电制造技术,连续多年位列中国家电出口前列。格兰仕不仅注重业务的全球拓展,更重视业务流程的高效与顺畅,以确保在国际舞台上的竞争力。 2、需求痛点 随着格兰仕全球化战略的深入实施,其海外业务快速增长,电子邮件成为了关键的沟通工具。

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

如何确定 Go 语言中 HTTP 连接池的最佳参数?

确定 Go 语言中 HTTP 连接池的最佳参数可以通过以下几种方式: 一、分析应用场景和需求 并发请求量: 确定应用程序在特定时间段内可能同时发起的 HTTP 请求数量。如果并发请求量很高,需要设置较大的连接池参数以满足需求。例如,对于一个高并发的 Web 服务,可能同时有数百个请求在处理,此时需要较大的连接池大小。可以通过压力测试工具模拟高并发场景,观察系统在不同并发请求下的性能表现,从而

C语言:柔性数组

数组定义 柔性数组 err int arr[0] = {0}; // ERROR 柔性数组 // 常见struct Test{int len;char arr[1024];} // 柔性数组struct Test{int len;char arr[0];}struct Test *t;t = malloc(sizeof(Test) + 11);strcpy(t->arr,

C语言指针入门 《C语言非常道》

C语言指针入门 《C语言非常道》 作为一个程序员,我接触 C 语言有十年了。有的朋友让我推荐 C 语言的参考书,我不敢乱推荐,尤其是国内作者写的书,往往七拼八凑,漏洞百出。 但是,李忠老师的《C语言非常道》值得一读。对了,李老师有个官网,网址是: 李忠老师官网 最棒的是,有配套的教学视频,可以试看。 试看点这里 接下来言归正传,讲解指针。以下内容很多都参考了李忠老师的《C语言非

C 语言基础之数组

文章目录 什么是数组数组变量的声明多维数组 什么是数组 数组,顾名思义,就是一组数。 假如班上有 30 个同学,让你编程统计每个人的分数,求最高分、最低分、平均分等。如果不知道数组,你只能这样写代码: int ZhangSan_score = 95;int LiSi_score = 90;......int LiuDong_score = 100;int Zhou

C 语言的基本数据类型

C 语言的基本数据类型 注:本文面向 C 语言初学者,如果你是熟手,那就不用看了。 有人问我,char、short、int、long、float、double 等这些关键字到底是什么意思,如果说他们是数据类型的话,那么为啥有这么多数据类型呢? 如果写了一句: int a; 那么执行的时候在内存中会有什么变化呢? 橡皮泥大家都玩过吧,一般你买橡皮泥的时候,店家会赠送一些模板。 上