r语言论文实现

篇一:社交网络论文:社交网络 客户细分 数据挖掘 R语言

社交网络论文:基于R语言数据挖掘的社交网络客户细分研究

【中文摘要】近几年来随着web2.0的发展,社交网络(SNS)作为web2.0的有形载体也实现了巨大的成长。伴随社交网络发展壮大的,一方面是社交网络的用户群,不同地域、性格和特质的用户群展现出了差异化的需求;另一方面是大大小小的社交网站,他们如雨后春笋般出现,开辟了硝烟弥漫的网络战场。面对差异化的用户群体和用户需求,如何细分市场识别并提供差异化的服务,以帮助企业在激烈的竞争中保持老用户,发展新用户,这是本文的主要论题。本文围绕社交网络理论和客户细分理论的研究,运用数据挖掘工具中的聚类和决策树算法,对社交网络的客户细分进行了深入的探讨并最终得出可指导实践的社交网络客户细分规则。本文的研究主要分为理论研究和实证研究两大方面。在理论研究方面,通过对社交网络理论和客户细分理论的研究,本文在第二章里综合两个理论,阐述了细分方法和细分变量的选取;并在第三章的数据挖掘技术中,介绍了数据挖掘中的聚类和决策树算法,在比较相关的算法优劣的基础上,确立了算法和模型的选择。基于理论研究方面的结论,在实证研究方面,本文选取了R语言作为研究工具。首先利用第二章确立的细分变量,选择JAVA开发爬虫程序从人人网中抓取数据;之后,...

【英文摘要】With the development of web2.0 in recent year, social network (also social network service called) as the

physical carrier of web2.0 has also experienced tremendous growth. The growth embodies in two aspects:for one thing increasing users of SNS show a differentiated demand; for another growing social network sites open up a smoking battlefield of network. How to identify and provide differentiated services to help enterprises to maintain old customer and develop new customers in the fierce competition is t...

【关键词】社交网络 客户细分 数据挖掘 R语言

【英文关键词】social network customer segmentation data mining R

【索购全文】联系Q1:138113721 Q2:139938848

同时提供论文写作一对一辅导和论文发表服务.保过包发

【目录】基于R语言数据挖掘的社交网络客户细分研究4-5景9-1011-1213-15

ABSTRACT5

第一章 绪论9-15

摘要

1.1 研究背

1.2 研究意义10-111.4 国内外研究现状12-13

1.3 研究内容和目标

1.5 文章结构

2.1 社交2.1.2 理2.1.4

第二章 社交网络客户细分研究15-25

2.1.1 社交网络定义15

网络理论概述15-18论基础15-16

2.1.3 社会网络的研究方向16-17

2.2 客户细分理论概述

社会网络数据17-1818-21

2.2.1 客户细分的定义18-192.2.2 客户细分

的产生和发展19客户细分的方法20-2121-25

2.2.3 客户细分的意义19-20

2.3 社交网络下的客户细分

2.2.4

2.3.1 社交网络客户细分的定义21

21-22

2.3.2 社交

网络客户细分的意义择22-23

2.3.3 社交网络客户细分方法选

2.3.4 社交网络客户细分变量选择23-25

三章 社交网络客户细分的数据挖掘算法研究25-43挖掘概述25-26掘发展25-26

3.1.1 数据挖掘定义253.1.3 数据挖掘功能

26

3.1 数据3.1.2 数据挖

3.2 客户细分聚

类分析算法研究26-3527-29择34-35

3.2.1 聚类分析中的数据

3.2.3 聚类方法选

3.3.1 3.3.3 决策

3.3.5

3.2.2 两种聚类方法29-34

3.3 客户细分决策树算法研究35-43

3.3.2 决策树算法36-393.3.4 确定最终树的规模40-41

决策树的定义36树剪枝39-40

决策树算法选择41-43细分实证43-64采集44-48

第四章 基于数据挖掘的社交网络客户

4.2 SNS网站数据

4.3.1

4.1 研究假设43-44

4.3 数据挖掘软件选择-R语言48-50

4.3.2 R语言特点

49-50

R语言介绍48-494.4 基于R

语言数据挖掘的社交网络客户细分50-64法实证50-54

4.4.1 分层聚类算

4.4.3

4.4.2 划分聚类算法实证54-6060-62

CART决策树算法实证62-6464

4.4.4 C4.5决策树算法实证

5.1 本文主要工作

第五章 总结和展望64-665.2 本文创新点64-65

5.3 不足和展望

65-6687-88

参考文献66-69附录69-87致谢

攻读学位期间发表的学术论文目录88

篇二:时间序列分析R语言程序

#例2.1 绘制1964——1999年中国年纱产量序列时序图(数据见附录1.2)

Data1.2=read.csv("C:\\Users\\Administrator\\Desktop\\附录1.2.csv",header=T)#如果有标题,用T;没有标题用F

plot(Data1.2,type='o') #例2.1续

tdat1.2=Data1.2[,2] a1.2=acf(tdat1.2)

#例2.2绘制1962年1月至1975年12月平均每头奶牛产奶量序列时序图(数据见附录1.3)

Data1.3=read.csv("C:\\Users\\Administrator\\Desktop\\附录1.3.csv",header=F)

tdat1.3=as.vector(t(as.matrix(Data1.3)))[1:168]#矩阵转置转向量

plot(tdat1.3,type='l') #例2.2续

acf(tdat1.3) #把字去掉 pacf(tdat1.3)

#例2.3绘制1949——1998年北京市每年最高气温序列时序图

Data1.4=read.csv("C:\\Users\\Administrator\\Desktop\\附录1.4.csv",header=T) plot(Data1.4,type='o')

##不会定义坐标轴 #例2.3续

tdat1.4=Data1.4[,2] a1.4=acf(tdat1.4) #例2.3续

Box.test(tdat1.4,type="Ljung-Box",lag=6) Box.test(tdat1.4,type="Ljung-Box",lag=12)

#例2.4随机产生1000个服从标准正态分布的白噪声序列观察值,并绘制时序图 Data2.4=rnorm(1000,0,1) Data2.4

plot(Data2.4,type='l') #例2.4续

a2.4=acf(Data2.4) #例2.4续

Box.test(Data2.4,type="Ljung-Box",lag=6) Box.test(Data2.4,type="Ljung-Box",lag=12)

#例2.5对1950——1998年北京市城乡居民定期储蓄所占比例序列的平稳性与纯随机性进行检验

Data1.5=read.csv("C:\\Users\\Administrator\\Desktop\\附录1.5.csv",header=T)

plot(Data1.5,type='o',xlim=c(1950,2010),ylim=c(60,100))

tdat1.5=Data1.5[,2] a1.5=acf(tdat1.5) #白噪声检验

Box.test(tdat1.5,type="Ljung-Box",lag=6) Box.test(tdat1.5,type="Ljung-Box",lag=12) #例2.5续选择合适的ARMA模型拟合序列 acf(tdat1.5) pacf(tdat1.5)

#根据自相关系数图和偏自相关系数图可以判断为AR(1)模型

#例2.5续 P81 口径的求法在文档上 #P83

arima(tdat1.5,order=c(1,0,0),method="ML")#极大似然估计

ar1=arima(tdat1.5,order=c(1,0,0),method="ML") summary(ar1) ev=ar1$residuals acf(ev) pacf(ev)

#参数的显著性检验 t1=0.6914/0.0989

p1=pt(t1,df=48,lower.tail=F)*2 #ar1的显著性检验 t2=81.5509/ 1.7453

p2=pt(t2,df=48,lower.tail=F)*2 #残差白噪声检验

Box.test(ev,type="Ljung-Box",lag=6,fitdf=1) Box.test(ev,type="Ljung-Box",lag=12,fitdf=1) #例2.5续P94预测及置信区间

predict(arima(tdat1.5,order=c(1,0,0)),n.ahead=5)

tdat1.5.fore=predict(arima(tdat1.5,order=c(1,0,0)),n.ahead=5)

U=tdat1.5.fore$pred+1.96*tdat1.5.fore$se L=tdat1.5.fore$pred-1.96*tdat1.5.fore$se

plot(c(tdat1.5,tdat1.5.fore$pred),type="l",col=1:2) lines(U,col="blue",lty="dashed") lines(L,col="blue",lty="dashed")

#例3.1.1 例3.5 例3.5续

#方法一plot.ts(arima.sim(n=100,list(ar=0.8))) #方法二 x0=runif(1) x=rep(0,1500)

x[1]=0.8*x0+rnorm(1) for(i in 2:length(x))

{x[i]=0.8*x[i-1]+rnorm(1)} plot(x[1:100],type="l") acf(x) pacf(x)

##拟合图没有画出来

#例3.1.2 x0=runif(1) x=rep(0,1500)

x[1]=-1.1*x0+rnorm(1) for(i in 2:length(x))

{x[i]=-1.1*x[i-1]+rnorm(1)} plot(x[1:100],type="l") acf(x) pacf(x)

#例3.1.3 方法一

plot.ts(arima.sim(n=100,list(ar=c(1,-0.5)))) #方法二 x0=runif(1) x1=runif(1) x=rep(0,1500) x[1]=x1

x[2]=x1-0.5*x0+rnorm(1) for(i in 3:length(x))

{x[i]=x[i-1]-0.5*x[i-2]+rnorm(1)} plot(x[1:100],type="l") acf(x) pacf(x)

#例3.1.4 x0=runif(1) x1=runif(1) x=rep(0,1500) x[1]=x1

x[2]=x1+0.5*x0+rnorm(1) for(i in 3:length(x))

{x[i]=x[i-1]+0.5*x[i-2]+rnorm(1)} plot(x[1:100],type="l") acf(x) pacf(x)

又一个式子 x0=runif(1) x1=runif(1) x=rep(0,1500) x[1]=x1

x[2]=-x1-0.5*x0+rnorm(1) for(i in 3:length(x))

{x[i]=-x[i-1]-0.5*x[i-2]+rnorm(1)} plot(x[1:100],type="l") acf(x) pacf(x)

#均值和方差

smu=mean(x) svar=var(x)

#例3.2求平稳AR(1)模型的方差 例3.3 mu=0

mvar=1/(1-0.8^2) #书上51页

#总体均值方差

cat("population mean and var are",c(mu,mvar),"\n")

#样本均值方差

cat("sample mean and var are",c(mu,mvar),"\n")

#例题3.4

svar=(1+0.5)/((1-0.5)*(1-1-0.5)*(1+1-0.5))

#例题3.6 MA模型 自相关系数图截尾和偏自相关系数图拖尾 #3.6.1 法一:

x=arima.sim(n=1000,list(ma=-2)) plot.ts(x,type='l') acf(x) pacf(x) 法二

x=rep(0:1000) for(i in 1:1000)

{x[i]=rnorm[i]-2*rnorm[i-1]} plot(x,type='l') acf(x) pacf(x)

#3.6.2 法一:

x=arima.sim(n=1000,list(ma=-0.5)) plot.ts(x,type='l') acf(x) pacf(x)

法二

x=rep(0:1000)

for(i in 1:1000)

{x[i]=rnorm[i]-0.5*rnorm[i-1]} plot(x,type='l') acf(x) pacf(x)

##错误于rnorm[i] : 类别为'closure'的对象不可以取子集

#3.6.3 法一:

x=arima.sim(n=1000,list(ma=c(-4/5,16/25))) plot.ts(x,type='l') acf(x) pacf(x) 法二:

x=rep(0:1000)

for(i in 1:1000)

{x[i]=rnorm[i]-4/5*rnorm[i-1]+16/25*rnorm[i-2]} plot(x,type='l') acf(x) pacf(x)

##错误于x[i] = rnorm[i] - 4/5 * rnorm[i - 1] + 16/25 * rnorm[i - 2] :

##更换参数长度为零

#例3.6续 根据书上64页来判断

#例3.7拟合ARMA(1,1)模型,x(t)-0.5x(t-1)=u(t)-0.8*(u-1),并直观观察该模型自相关系数和偏自相关系数的拖尾性。 #法一: x0=runif(1) x=rep(0,1000)

x[1]=0.5*x0+rnorm(1)-0.8*rnorm(1) for(i in 2:length(x))

{x[i]=0.5*x[i-1]+rnorm(1)-0.8*rnorm(1)} plot(x,type='l') acf(x) pacf(x)

##图和书上不一样 #法二

x=arima.sim(n=1000,list(ar=0.5,ma=-0.8)) acf(x) pacf(x)

#图和书上一样 #例3.8 选择合适的ARMA模型拟合加油站57天的OVERSHORT序列

Data1.6=read.csv("C:\\Users\\Administrator\\Desktop\\附录1.6.csv",header=F)

tdat1.6=as.vector(t(as.matrix(Data1.6)))[1:57] plot(tdat1.6,type='o')

acf(tdat1.6)

pacf(tdat1.6) #把字去掉

arima(tdat1.6,order=c(0,0,1),method="CSS")#最小二乘估计

ma1=arima(tdat1.6,order=c(0,0,1),method="CSS") summary(ma1) ev=ma1$residuals acf(ev) pacf(ev)

##错误于arima(tdat1.6, order = c(0, 0, 1), method = "CSS") :

##'x'必需为数值

#例3.9选择合适的ARMA模型拟合1880——1985年全球气温改变差值差分序列 ##没有数据

#例3.10 例3.11 例3.12##矩估计

#例3.13对等时间间隔的连续70次化学反应的过程数据进行拟合

Data1.8=read.csv("C:\\Users\\Administrator\\Desktop\\附录1.8.csv",header=F)

tdat1.8=as.vector(t(as.matrix(Data1.8)))[1:70] plot(tdat1.8,type='o')

#例3.14AR(2)例3.15AR(3)例3.16AR(3)模型的预测

#如果考得话就先。。。。。。

#例4.1线性拟合消费支出数据

Data4.1=read.csv("C:\\Users\\Administrator\\Desktop\\例题4.1.csv",header=T) tdat4.1=Data4.1[,2] plot(Data4.1,type='o') t=1:40

lm4.1=lm(tdat4.1~t) #线性拟合

summary(lm4.1) #返回拟合参数的统计量 coef(lm4.1) #返回被估计的系数 fit4.1=fitted(lm4.1) #返回模拟值 residuals(lm4.1) #返回残差值 plot(tdat4.1,type='o') #画时序图

lines(fit4.1,col="red") #画拟合图

#例4.2 曲线拟合 上海证劵交易所

Data1.9=read.csv("C:\\Users\\Administrator\\Desktop\\附录1.9.csv",header=F)

tdat1.9=as.vector(t(as.matrix(Data1.9)))[1:130]#矩阵转置转向量

plot(tdat1.9,type='l') t=1:130 t2=t^2

m1.9=lm(tdat1.9~t+t2) ## 一道矩阵就出毛病

#例4.3简单移动平均法 x4.3=c(5,5.4,5.8,6.2) x4.3

y4.3=filter(x4.3,rep(1/4,4),sides=1) y4.3

for(i in 1:3){x[1]=x[1]

x[i+1]=0.25*x[i+1]+0.75*x[i]}

##错误于`[.data.frame`(x, i + 1) : undefined columns selected

##此外: 警告信息:

##In Ops.factor(left, right) : * 对因子没有意义

#例4.4指数平滑法 ##做不出来

#例4.5 ##略略

#例4.6季节效应分析

#例4.7综合分析 中国社会消费品零售总额序列 Data1.11=read.csv("C:\\Users\\Administrator\\Desktop\\附录1.11.csv",header=T) #第一行是标签,所以是T tdat1=as.matrix(Data1.11[,2:9]) # 横向全部读取,纵向读取2至9列

tdat1.11=as.vector(tdat1)

plot(1:length(tdat1.11),tdat1.11,type='o')#画时序图,先是横坐标,后是纵坐标

md=mean(tdat1.11)#求总的均值 md

seaind=apply(tdat1,1,'mean')/md #求季节因子 seaind

plot(seaind,type='b') # 季节指数图

noseandat=tdat1.11/seaind #消除季节因子的影响

plot(1:length(tdat1.11),noseandat,"p") #消除季节因子之后的散点图

lindat=data.frame(x=1:length(noseandat),y=noseandat) m1=lm(y~x,data=lindat) #一元线性回归拟合 summary(m1)

t=1:96

that=1015.5222+20.9318*t

plot(1:length(tdat1.11),noseandat,'p')

lines(that,type='l') #拟合图和原来的图画在一起 #残差检验

ev=noseandat-that#计算残差 ev

plot(ev) #残差图 t=97:108

that=983.5601+21.5908*t q=that*seaind s=c(tdat1.11,q)

plot(1:108,s,type='b') abline(v=96)

#例5.1 差分运算

Data1.2=read.csv("C:\\Users\\Administrator\\Desktop\\附录1.2.csv",header=T)#如果有标题,用T;没有标题用F

x=Data1.2 plot(x,type='o') dx=diff(x[,2]) plot(dx,type='o')

#例5.2二阶差分 北京市民车辆拥有量序列

Data1.12=read.csv("C:\\Users\\Administrator\\Desktop\\附录1.12.csv",header=T) x=Data1.12 plot(x,type='o')

dx=diff(x[,2]) #一届差分 plot(dx,type='b')

ddx=diff(x[,2],lag=1,difference=2) #二阶差分 plot(ddx,type='l')

#例5.2 又

Data1.12=read.csv("C:\\Users\\Administrator\\Desktop\\附录1.12.csv",header=T) plot(Data1.12[,2],type='l') axis(1,at=c(1950,19999)) x=ts(Data1.12[,2])

dx=diff(x,lag=1,differences=1) #一阶差分 plot(Data1.12[-1,1],dx,type='o') d2x=diff(dx)#二阶差分

plot(Data1.12[-c(1,2),1],d2x,type='o') d2x=diff(x,differences=2) #二阶差分

plot(Data1.12[-c(1,2),1],d2x,type='o')

#例5.3 跳步差分 平均每头奶牛产奶量

Data1.13=read.csv("C:\\Users\\Administrator\\Desktop\\附录1.13.csv",header=F) tdat1=as.matrix(Data1.13) tdat=t(tdat1) x=as.vector(tdat) x

plot(x,xaxt='n',type='o')

axis(1,at=seq(1,169,24),seq(1962,1976,2)) dx=diff(x) #一步差分 plot(dx,type='o')

d12x=diff(dx,lag=12) #12步差分 plot(d12x,type='o')

#例5.4 过差分

#例5.5 你和随机游走模型

r=rnorm(1000,sd=10) #以十位等差,在1:000之间随机抽取100个数据

xt=cumsum(r) #由随机游走公式的出的模型公式 plot(xt,type='l')# 随机游走的图形

dx=diff(xt) #做一阶差分

plot(dx,type='l') #一阶差分后的图形 m=mean(dx) #均值 sd=var(dx) #方差

Box.test(dx,lag=12,type='Ljung') #用统计量检验随机性

acf(dx)#自相关图

sj=arima(xt,order=c(0,1,0)) summary(sj)

#例5.5 你和随机游走模型 又 x=ts(cumsum(rnorm(1000,0,100))) ts.plot(x)

#例5.6 对中国农业实际国民收入指数进行建模ARIMA

Data1.14=read.csv("C:\\Users\\Administrator\\Desktop\\附录1.14.csv",header=T) x=Data1.14

plot(x,type='o') #图5——10 dx=diff(x[,2]) plot(dx,type='o') acf(dx)

Box.test(dx,lag=6,type='Ljung-Box') Box.test(dx,lag=12,type='Ljung-Box') Box.test(dx,lag=18,type='Ljung-Box') pacf(dx)

m1=arima(x[,2],order=c(0,1,1),method="CSS") m2=arima(dx,order=c(0,1,1),method="CSS") ev1=m1$residuals ev2=m2$residuals plot(ev1,type='l') plot(ev2,type='l') acf(ev1) pacf(ev1) acf(ev2) pacf(ev2)

Box.test(ev1,lag=5,type='Ljung-Box') #检验残差的白噪声序列

Box.test(ev1,lag=11,type='Ljung-Box') Box.test(ev1,lag=17,type='Ljung-Box')

#例5.6续 做预测 ##没做好 px=predict(m1,n.ahead=10) plot(x,type='o',ylim=c(0,500)) lines(x[,1],x[,2]+1.96*sqrt(61.95)) lines(x[,1],x[,2]-1.96*sqrt(61.95)) ##图5——14没画出来

#例5.6续

m3=arima(x[,2],order=c(0,1,1),method="ML")

#例5.6续 p-171

plot(x,xlim=c(1950,1990),ylim=c(0,300),type='o') m1=lm(农业~年份,data=x) #变量为时间t的函数 summary(m1) ##???模型口径不会算 lines(x$年份,m1$fitted.value,col='red') #变量为一阶延迟 xt=x[,2] xy=xt[-1]

xx=xt[-length(xt)] m2=lm(xy~xx) summary(m2) m3=lm(xy~xx+0) summary(m3)

lines(x$年份[-1],m2$fitted.value,col='blue') #图5——29 #DW检验 library(lmtest)

dwtest(m2)#加载程序包 aa=dwtest(m1)

Dh=(1-aa$statistic/2)*sqrt(length(xt)-1)/(1-(length)-1)*0.009063 #Dh统计量 ev1=m1$residuals

篇三:R语言论文

统计计算

分类数据的列联表分析

信计1002班王秋燕 201020310216

分类数据的列联表分析

第一部分:

统计学中根据变量取值类型的不同,把变量分为两大类:离散型变量和连续型变量。离散型变量又称为定量变量,可分为区间变量和比率变量。

称变量为名义变量,如果变量的可能取值是没有次序之分的几个水平或状态。称变量为有序变量,如果变量的可能去只是有次序之分的几个水平或状态。

称变量为连续型变量,如果变量的可能取值是某个连续区间。 对离散型变量进行抽样取得的数据称为分类数据,也称为属性数据。 统计运用于我们日常生活的方方面面,尤其是在社会科学中,常常采用列联表来记录我们所获得资料,列联表的资料看起来只是一个一个的资料,但这些由两个或两个以上的类别交叉组合得出的格子,行变量的类别用 r 表示,ri表示第

i个类别,列变量的类别用c

表示,cj表示第j个类别,每种组合的观察频次用fij

表示,表中列出了行变量和列变量的所有可能的组合,所以称为列联表,一个r行

c列的列联表称为r?c列联表。通过运用统计检验方法,能够帮助我们更清晰地

分析社会现象。

列联表独立性检验是卡方拟合优度检验的一个特例,人们将两个或多个特征分类数据即交叉分类数据以表格形式列出即列联表,从而利用这些数据用来研究两种或多种分类之间是否有某种联系。

第二部分:

我们用统计理论来解决这个问题。 方法一:我们采用独立性的?2检验。

?2检验(Chi-square test)是现代统计学的创始人之一,K. Pearson(1857-1936)于1900年提出的一种具有广泛用途的统计方法,可用于两个或多个率(或者构成比)之间的比较,计数资料的关联度分析,拟合优度检验等。 ①?2检验用途:

比较称名变量的次数,具体来讲,就是比较实际次数与期望次数(或理论次数)之间是否有相助差异,或研究检验观察值与理论值之间的紧密程度。?2拟合检验就是用来确定事件出现的频数分布与某一理论分布之间的差别是否是随

机性的。

②?2分布基本思想: 第一,属连续型分布,第二,可加性是其基本性质,第三,唯一参数,即自由度。

(1)自由度为1的?2分布,若Z~N(0,1),则Z2的分布称为自由度为1的?2

2(Chi-square distribution),记为?(1)或?2(1)。

(2)Z1,Z2......Zv互相独立,均服从N(0,1),则Z12?Z22?......?Zv2的分布称自由度为V的?

2?(2v)近

的正态分布。

图一

2

③?2检验(chi-square distribution)基本公式:? ??T,

(A?T)

2

??(R?1)(C?1)

上述基本公式由K. Pearson提出,因此许多统计软件上常称这种检验为Pearson’s Chi-square test,其他卡方检验都是在此基础上发展起来的\。 ④?2检验主要有三个:适应性检验,正态性检验以及独立性检验。

(1)适合性检验为单样本卡方检验,它只是记一个变量,但数据要分成若干相互排斥的组和范畴。其目的是检验时间次数与期望次数是否吻合。

? np( 实统计量:2(n i ),实质是:测 频 数 ? 理 论 频 数 ) 2

???i???npi理论频数i?1i?1

k

2

k

2

适合性检验是用样本提供的信息去推断总体分布是否适合某种已知的规律。 (2)正态性检验,用卡方检验进行正态性检验其实也是一种适合性检验,即检验实际次数分布与期望次数分布是否有显著性差异。

(3)独立性检验就是检验两个特征或两个分类标准是互相独立的还是互有联系的。用于独立性检验的数据一般整理成“列联表”的形式,即一个分类标准把

数据分为若干列,另一个分类标准把数据分为若干行,行列交叉形成一个个的方格。每一行和每一列都有一个总计,书写在一行或一列的末尾,称为“边际总和”。所有边际和加起来就是全部数据的个数或样本容量(N)。 独立性检验的分析步骤: 第一步:建立假设与备择假设:

H0:pij=pi?pj(行变量与列变量独立); H1: pij=pi?pj(行变量与列变量不独立)。 第二步:确定适当的检验统计量为chi-square;

第三步:规定显著性水平?,查表得出拒绝域和临界值; 第四步:运用R语言命令运行;?

第五步:作出判断将检验统计量的值与?水平的临界值进行比较,得出接受或拒绝原假设的结论:若样本统计量的值落入拒绝域,则拒绝原假设,接受备择假设

H1;否则,接受H0。

?2统计量用于检验列联表中变量之间是否存在显著性差异,或者用于检验变量之间是否独立。当n很大,每格eij都不太小时,服从自由度k?(r?1)(c?1)的

?分布,计算公式为: ,其自由度为(r?1)(c?1),nij一列联

2

eij一列联表只第表中第i行第j列类别的实际频数,i行第j列类别的实际频数。 2rc

方法二:Fisher精准检验

??

2

??

i?1

j?1

(nij?eij)

eij

Fisher精准检验是列联表行变量和列变量独立性的另一种检验方法,Fisher精准检验是在行与列边际总数固定的假设下,利用超几何分布,用枚举法计算列联表可能出现情况的概率,此时要检验的问题仍是

HO:行变量和列变量相互独立。 (1) 首先介绍多元几何的多元推广,它是超几何分布的多元推广。 定义:设随机向量X=(x1,x2,???xr)满足条件:

(1)0?Xi?Ni(i=1,2,...,r),且N1?N2?...?Nr?N,

r

(2)m1,m2,...,mr为r个非负整数,o?mi?Ni且?mi?m(0?m?N),事件概率

i?1

由下式给出:

(

P((X1,X2,...XR)?(m1,m2,...mr))?

N1m1

)(

N2m2(N

)...()

Nrmr

r

)?

m!(N?m)!?Ni!

i?1

r

,则称X

m

N!?mi!(Ni?mi)!

i?1

服从多元超几何分布,记为X~MH(N1,N2,...Nr;m).

多元超几何分布的背景如下,共有N个个体分为r类,其中第i(i?1,2,...,r)类有Ni个,现从总体中等可能无放回的抽取m个个体,用Xi表示m个个体中属于第i类的个数,则X?(X1,X2,...,Xr)服从多元超几何分布。特别当r?2时,多元超几何分布就是超几何分布。

①2?2表Fisher精准检验:观测表(Table)概率,双侧(Twosided)p值,左侧(Leftsided)p值,右侧(Rightsided)p值。

观测表概率是按超几何分布计算的所观测到表格的概率。较小的双侧p值有利于行变量和列变量

r语言论文实现

有关联的备择假设。对于2?2表,当行列边际总数固定时,如表1,n11的数值完全决定了整个表格,n11记为(1,1)单元格可能出现的频数,则Fisher精准检验的左侧p值是事件{n11?F}的概率,右侧值是事件{n11?F}的概率。

表1

n11?F Leftsided p=

p(n11)?p(n11?F)

P(n11)?

n11?F

p(n11), Rightsided p=

?

n11?F

p(n11)。

如表1,在行边际总数固定条件下,可以把row1和row2两行看成两个独立的二项分布总体,则检验问题(1)中的H0相当于row1和row2有相同的二项分布,所以检验问题(1)写成

H0:p(Y?coll)?p(Y?collX?row1)?p(Y?collX?row2),结合表1,则