使用R语言进行判别分析

一、样本数据描述

2016年全国31个省、直辖市、自治区城镇居民人均消费支出水平划为2类,其中北京和上海划为一类,其余地区划为一类,将广东和西藏作为待判样本,具体划分数据如下表,试对数据进行判别分析,并将广东和西藏两个待判区域归类。

x1:食品烟酒支出,x2:衣着支出,x3:居住支出,x4:生活用品和服务支出,

x5:交通通信支出,x6:教育文化娱乐支出,x7:医疗保健支出,x8:其他用品和服务支出

City,X1,X2,X3,X4,X5,X6,X7,X8,Group
北京,8070.4,2643,12128,2511,5077.9,4054.7,2629.8,1140.6,1
天津,8679.6,2114,6187.3,1663.8,3991.9,2643.6,2172.2,892.2,2
河北,4991.6,1614.4,4483.2,1351.1,2664.1,1991.3,1549.9,460.4,2
山西,3862.8,1603,3633.8,951.6,2401,2439,1651.6,450.1,2
内蒙古,6445.8,2543.3,4006.1,1565.1,3045.2,2598.9,1840.2,699.9,2
辽宁,6901.6,2321.3,4632.8,1558.2,3447,3018.5,2313.6,802.8,2
吉林,4975.7,1819,3612,1107.1,2691,2367.5,2059.2,534.9,2
黑龙江,5019.3,1804.4,3352.4,1018.9,2462.9,2011.5,2007.5,468.3,2
上海,10014.8,1834.8,13216,1868.2,4447.5,4533.5,2839.9,1102.1,1
江苏,7389.2,1809.5,6140.6,1616.2,3952.4,3163.9,1624.5,736.6,2
浙江,8467.3,1903.9,7385.4,1420.7,5100.9,3452.3,1691.9,645.3,2
安徽,6381.7,1491,3931.2,1118.4,2748.4,2233.3,1269.3,432.9,2
福建,8299.6,1443.5,6530.5,1393.4,3205.7,2461.5,1178.5,492.8,2
江西,5667.5,1472.2,3915.9,1028.6,2310.6,1963.9,887.4,449.6,2
山东,5929.4,1977.7,4473.1,1576.5,3002.5,2399.3,1610,526.9,2
河南,5067.7,1746.6,3753.4,1430.2,1993.8,2078.8,1524.5,492.8,2
湖北,6294.3,1557.4,4176.7,1163.8,2391.9,2228.4,1792,435.6,2
湖南,6407.7,1666.4,3918.7,1384.1,2837.1,3406.1,1362.6,437.4,2
广西,5937.2,886.3,3784.3,1032.8,2259.8,2003,1065.9,299.3,2
海南,7419.7,859.6,3527.7,954,2582.3,1931.3,1399.8,341,2
重庆,6883.9,1939.2,3801.1,1466,2573.9,2232.4,1700,434.4,2
四川,7118.4,1767.5,3756.5,1311.1,2697.6,2008.4,1423.4,577.1,2
贵州,6010.3,1525.4,3793.1,1270.2,2684.4,2493.5,1050.1,374.6,2
云南,5528.2,1195.5,3814.4,1135.1,2791.2,2217,1526.7,414.3,2
陕西,5422,1542.2,3681.5,1367.7,2455.7,2474,2016.7,409,2
甘肃,5777.3,1776.9,3752.6,1329.1,2517.9,2322.1,1583.4,479.9,2
青海,5975.7,1963.5,3809.4,1322.1,3064.3,2352.9,1750.4,614.9,2
宁夏,4889.2,1726.7,3770.5,1245.1,3896.5,2415.7,1874,546.6,2
新疆,6179.4,1966.1,3543.9,1543.8,3074.1,2404.9,1934.8,581.5,2
广东,9421.6,1583.4,6410.4,1721.9,4198.1,3103.4,1304.5,870.1
西藏,8727.8,1812.5,3614.5,983.0,2198.4,922.5,585.3,596.5

二、读取数据

df<-read.csv('f:/桌面/各城市消费水平.csv')

head(df)

head(df)City     X1     X2      X3     X4     X5     X6     X7     X8 Group
1   北京 8070.4 2643.0 12128.0 2511.0 5077.9 4054.7 2629.8 1140.6     1
2   天津 8679.6 2114.0  6187.3 1663.8 3991.9 2643.6 2172.2  892.2     2
3   河北 4991.6 1614.4  4483.2 1351.1 2664.1 1991.3 1549.9  460.4     2
4   山西 3862.8 1603.0  3633.8  951.6 2401.0 2439.0 1651.6  450.1     2
5 内蒙古 6445.8 2543.3  4006.1 1565.1 3045.2 2598.9 1840.2  699.9     2
6   辽宁 6901.6 2321.3  4632.8 1558.2 3447.0 3018.5 2313.6  802.8     2

三、建立线下判别函数

library(MASS)
z<-lda(Group~X1+X2+X3+X4+X4+X5+X6+X7+X8,data=df,prior=c(1,1)/2)
z

library(MASS)
> z<-lda(group~X1+X2+X3+X4+X4+X5+X6+X7+X8,data=df,prior=c(1,1)/2)
Error in eval(predvars, data, env) : 找不到对象'group'
> z<-lda(Group~X1+X2+X3+X4+X4+X5+X6+X7+X8,data=df,prior=c(1,1)/2)
> z
Call:
lda(Group ~ X1 + X2 + X3 + X4 + X4 + X5 + X6 + X7 + X8, data = df, prior = c(1, 1)/2)Prior probabilities of groups:1   2 
0.5 0.5 Group means:X1       X2        X3       X4       X5     X6       X7        X8
1 9042.600 2238.900 12672.000 2189.600 4762.700 4294.1 2734.850 1121.3500
2 6219.337 1705.056  4265.485 1308.322 2920.152 2419.0 1624.448  519.6704Coefficients of linear discriminants:LD1
X1  0.0006388214
X2  0.0013250299
X3 -0.0015453976
X4 -0.0019589553
X5  0.0014962902
X6 -0.0003410774
X7 -0.0011726981
X8 -0.0020388069

使用程序包MASS中的lda函数进行判别分析,运行分别得到了,先验概率、两组每组的均值,线下判别函数的判别系数。

四、对原始数据进行回判

pred<-predict(z)
pred

运行得到:

pred<-predict(z)
> pred
$class[1] 1 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
Levels: 1 2$posterior1            2
1  1.000000e+00 4.027765e-31
2  1.773743e-27 1.000000e+00
3  6.975962e-28 1.000000e+00
4  8.482928e-32 1.000000e+00
5  6.559339e-39 1.000000e+00
6  5.599629e-32 1.000000e+00
7  1.009488e-34 1.000000e+00
8  8.724046e-38 1.000000e+00
9  1.000000e+00 1.761066e-39
10 1.285275e-25 1.000000e+00
11 4.239946e-31 1.000000e+00
12 2.243237e-41 1.000000e+00
13 5.122434e-26 1.000000e+00
14 5.160427e-39 1.000000e+00
15 2.364619e-32 1.000000e+00
16 1.394579e-28 1.000000e+00
17 1.107948e-32 1.000000e+00
18 7.036740e-38 1.000000e+00
19 8.146237e-37 1.000000e+00
20 5.359631e-45 1.000000e+00
21 1.520051e-39 1.000000e+00
22 8.930788e-43 1.000000e+00
23 6.492436e-41 1.000000e+00
24 5.489651e-36 1.000000e+00
25 1.934120e-30 1.000000e+00
26 5.493119e-36 1.000000e+00
27 1.798720e-39 1.000000e+00
28 8.845496e-42 1.000000e+00
29 3.042194e-39 1.000000e+00$xLD1
1  -5.546457
2   4.881533
3   4.955489
4   5.669907
5   6.967645
6   5.702824
7   6.203559
8   6.762564
9  -7.071856
10  4.542101
11  5.542388
12  7.417637
13  4.615005
14  6.986655
15  5.771144
16  5.083072
17  5.831224
18  6.779598
19  6.585515
20  8.078531
21  7.083520
22  7.673106
23  7.333417
24  6.434315
25  5.422111
26  6.434265
27  7.070180
28  7.491387
29  7.028534

1、$class结果得到了对原始数据进行回判的结果,经比较和实际样本数据是一致的。

2、$posterior得到每个原始样本进行后验回判概率。

3、$x得到了线下判别函数的在每个样本的数值。

五、列联表表示回判的结果

table(pred$class,df$Group)1  21  2  02  0 27

可以得到了实际回判准确率为100%

六、对两个待判样本进行判别归类

newdata<-rbind(c(9421.6,1583.4,6410.4,1721.9,4198.1,3103.4,1304.5,870.1),
               c(8727.8,1812.5,3614.5,983.0,2198.4,922.5,585.3,596.5))
dimnames(newdata)<-list(NULL,c('X1','X2','X3','X4','X5','X6','X7','X8'))
newdata<-data.frame(newdata)
predict(z,newdata=newdata)

运行得到:

 predict(z,newdata=newdata)
$class
[1] 2 2
Levels: 1 2$posterior1 2
1 2.305282e-30 1
2 1.443943e-56 1$xLD1
1  5.408199
2 10.189745

从结果可以看到,待判的两个样本都归属于第二类城市和地区,$posterior得到了后验概率,$x得到了线性判别函数的样本数值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/710464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue中动态引入图片

分析 很多时间&#xff0c;不管是vue2&#xff0c;还是vue3开发中都会遇到&#xff0c;动态渲染图片的功能&#xff0c;但是为什么我们直接将图片的路径直接赋值给变量的时候&#xff0c;图片渲染不出来&#xff0c;而通过require引入加载图片后却能正常渲染呢&#xff1f;主要…

解释什么是内连接、左连接和右连接,并给出每种连接的SQL示例

在关系型数据库中&#xff0c;连接&#xff08;JOIN&#xff09;是一种在查询中组合来自两个或多个表的行的方法。这些表通过一个或多个列中的相关值关联起来。SQL 提供了几种类型的连接&#xff0c;每种连接在处理表之间的关系和数据检索时都有其特定的方式。最常见的连接类型…

华为HarmnyOS TypeScript基础语法快速入门

华为HarmnyOS TypeScript基础语法快速入门 一、JavaScript、TypeScript、ArkTS二、TypeScript基础语法1. 基础类型2. 条件语句3. 函数4. 类5. 模块6. 迭代器 一、JavaScript、TypeScript、ArkTS ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript&#xff08;简称TS&am…

Flask+Gunicorn中文乱码解决方案

在使用FlaskGunicorn部署应用时&#xff0c;发现中文的输出存在乱码的现象。这是因为Python的默认编码是ASCII&#xff0c;而ASCII并不支持中文字符。 解决Python中文乱码问题的首要任务是确保使用合适的编码方式。当你处理中文字符时&#xff0c;应该使用UTF-8编码。UTF-8是一…

Axios入门

1.概念 Axios是一个开源的可以用在浏览器和node.js的异步通信框架&#xff0c;他的主要功能是实现Ajax异步通信 2.Axios入门程序 2.1.准备json格式的文件 {"name": "小明","address": {"street": "雁塔","city"…

动画原理:表面形变算法的思考与总结

前言&#xff1a; 之前我的文章 Mesh形变算法_mesh算法-CSDN博客就有大致的讨论过&#xff0c;介绍的也比较粗略&#xff01;现在主要是想在Triangulated Surface Mesh Deformation方向上更深入的讨论一下&#xff01;结合今年我对这一块的学习谈谈我的理解~ 下面要介绍大致几…

Java设计模式——桥连模式

桥接模式简单来说就是通过将抽象部分和具体部分分离&#xff0c;使它们可以独立地变化。如果你的一个类存在多个变化维度&#xff08;如抽象和具体的实现&#xff09;。若使用继承来处理这些变化&#xff0c;将会导致类层次结构的急剧增加&#xff0c;难以管理和维护。并且&…

MySQL(基础篇)——函数、约束

一.函数 1.定义 函数是指一段可以直接被另一段程序调用的程序或代码。 2.字符串函数 常见如下&#xff1a; -- 字符串拼接 SELECT CONCAT(hello,MySql) AS CONCAT -- 将字符串全部转为小写 SELECT LOWER(HEllo MYSql) AS LOWER -- 将字符串全部转为大写 SELECT UPPER(Hello…

环境配置 |Jupyter lab/Jupyter Notebook 安装与设置

ipynb使用Jupyterlab/Jupyter Notebook 来编写Python程序时的文件,在使用时,可以现转换为标准的.py的python文件 1.Jupyter Lab 1.1.下载安装 环境&#xff1a;Linux pip install jupyterlab 1.2.使用 jupyter lab 点击后进入 1.3.jupyter lab更换内核 因为我的是在anac…

178文章复现:基于matlab的微震图像去噪

文章复现&#xff1a;基于matlab的微震图像去噪&#xff0c;利用同步压缩连续小波变换进行自动微震去噪和起始检测&#xff0c;SS-CWT 可对时间和频率变化的噪声进行自适应过滤&#xff0c;可以去除小幅值信号中的大部分噪声&#xff0c;检测地震事件并估算地震发生时间。程序已…

数据结构之树结构(上)

存储方式 数组存储方式的分析 优点&#xff1a;通过下标方式访问元素&#xff0c;速度快。对于有序数组&#xff0c;还可使用二分查找提高检索速度。 缺点&#xff1a;如果要检索具体某个值&#xff0c;或者插入值&#xff08;按一定顺序&#xff09;会整体移动&#xff0c;效…

C++实现计算复杂数学表达式

本文使用C实现Shunting-yard算法&#xff0c;将中缀表达式转换为后缀表达式&#xff0c;然后使用后缀表达式计算结果&#xff0c;实现了目前支持以下 四则运算&#xff08;、-、*、/&#xff09;开平方&#xff08;^&#xff09;取基数为 10 的对数&#xff08;L&#xff09;小…

小(2)型土石坝安全监测设施配置详解

小(2)型土石坝的安全监测是确保大坝稳定、安全运行的重要环节。为此&#xff0c;合理配置安全监测设施显得尤为重要。以下是对小(2)型土石坝安全监测设施配置的详细介绍。 一、渗流量监测 渗流量是反映大坝安全状况的关键指标之一。为准确监测渗流量&#xff0c;我们采用仪器量…

【大数据】Flink SQL 语法篇(十):EXPLAIN、USE、LOAD、SET、SQL Hints

《Flink SQL 语法篇》系列&#xff0c;共包含以下 10 篇文章&#xff1a; Flink SQL 语法篇&#xff08;一&#xff09;&#xff1a;CREATEFlink SQL 语法篇&#xff08;二&#xff09;&#xff1a;WITH、SELECT & WHERE、SELECT DISTINCTFlink SQL 语法篇&#xff08;三&…

day05_用户管理minIO角色分配(页面制作,查询用户,添加用户,修改用户,删除用户,用户头像,查询所有角色,保存角色数据)

文章目录 1 用户管理1.1 页面制作1.2 查询用户1.2.1 需求说明1.2.2 后端接口需求分析SysUserSysUserDtoSysUserControllerSysUserServiceSysUserMapperSysUserMapper.xml 1.2.3 前端对接实现思路sysUser.jssysRole.vue 1.3 添加用户1.3.1 需求说明1.3.2 页面制作1.3.3 后端接口…

ChatGPT-4 AI 绘图魔力释放

最近刚开通了 ChatGPT4&#xff0c;正好要设计一个网站图标&#xff0c;想测试一下它AI绘图的能力&#xff0c;让它根据文字描述生成一个想象中的图标 &#xff08;PS&#xff1a;如果想体验 GPT4 文生图&#xff0c;可以看这个教程 如何升级 ChatGPT 4.0&#xff09; 第1次交…

【三维重建】【SLAM】SplaTAM:基于3D高斯的密集RGB-D SLAM

题目&#xff1a;SplaTAM: Splat, Track & Map 3D Gaussians for Dense RGB-D SLAM 地址&#xff1a;spla-tam.github.io 机构&#xff1a;CMU&#xff08;卡内基梅隆大学&#xff09;、MIT&#xff08;美国麻省理工&#xff09; 总结&#xff1a;SplaTAM&#xff0c;一个新…

ywtool network命令

一.network功能介绍 network功能就是通过脚本的方式配置IP信息&#xff0c;分为4项: (1) 配置单网卡(2)配置br网桥(单网卡)(3)配置bond(两张网卡)(4)配置ovs网桥(单网卡) 日志文件:/var/log/ywtools/ywtools-network.log/usr/local/ywtools/config/config.ini中network参数:…

从预训练到通用智能(AGI)的观察和思考

1.预训练词向量 预训练词向量&#xff08;Pre-trained Word Embeddings&#xff09;是指通过无监督学习方法预先训练好的词与向量之间的映射关系。这些向量通常具有高维稠密特征&#xff0c;能够捕捉词语间的语义和语法相似性。最著名的预训练词向量包括Google的Word2Vec&#…

Go语言实战五-go语言的类型与iton

前言 go语言是静态类型语言&#xff0c;也就是在编译时编译器需要知道程序中值的类型&#xff0c;这样有利于减少bug和提高性能&#xff0c;具体就是内存的分配量和其中的内容 用户定义类型 1.用户定义新的类型&#xff0c;需要使用type 和struct关键字 type user struct {…