古典概型的样本总量是一定的,且每种可能的可能性是相同的,

1、中位数:median(x)

2、百分位数:quantile(x)或者quantile(x,probe=seq(0,1,0.2))  #后面这个是设置参数,零到一的范围,每隔0.2算一次

  不知道叫啥的很方便的函数:fivenum(x,na.rm=TRUE)  #输出五个数最大值、最小值、下四分位数、上四分位数、中位数

3、协方差:用于看两组数据之间的关系,看看是不是有一定的关联性

  他有一个相关系数r,r越接近1,则相关性越高,反之,越接近零就越低

  cov(x[2:4])  #这就是求协方差矩阵

  cor(x[2:4])  #这是求协方差r矩阵

4、研究变量之间的关系:

  1、函数关系:有精确地函数表达式,关系非常明确,比如银行利率和收益的关系

  2、相关关系:非确定关系,有关系蛋是没那么明确,比如身高和体重的关系,可分为下面的两种

      一、平行关系:相关分析(一元、多元),比如一个人的物理成绩与数学成绩好坏的关系,表面看起来是有很强的相关的,其实是背后有很多因素起作用

              cor.test(x1,x2)(相关系数显著性的假设检验)    #输出的数据时:95%可信度下,相关系数所在的范围

      二、依存关系:回归分析(一元、多元),一个变量决定另一个变量,起决定作用的是自变量,另一个是因变量,x是自变量,y是因变量

                lm(y~1+x)  #一元线性回归分析,会输出它的公式,截距和斜率。其调用形式是:fitted.model <- lm(formula,data=data.frame)

                     #formula是公式   data.frame为数据框  结果放在fitted.model中

                     #例如 fm2<-lm(y~x1+x2,data=production)   适应于y关于x1和x2的多元回归模型

                      #y~1+x或者y~x均表示y=a+bx有截距形式的线性模型。而通过原点的线性模型可以表达为:y~x-1或y~x+0或y~0+x

                 summary:使用summary(里面放回归分析的结果),来更详细的参数与结果,coefficients这一栏是描述计算的结果,后面的Pr(>|t|)是p_value,

                    算出的值对于这组数据合不合理,越小越好最后面星号越多越好,说明结果算的很好,模型建得很好,有时可能是两颗星,一颗星,

                    甚至一个点,甚至连一个点都没有,说明算出来的东西越不合理。

                    做这个线性回归是有前提的:1、这个样本变量是正态分布的2、自变量和因变量是线性的关系,如果这两个前提有一个不满足,

                    则这个模型的合理性和准确性不能保证。有一个检验模型合不合理的指标,就是Multiple R-squared,也就是R的平方

                    ,相关系数平方,越接近一越合理。函数最下面的结果是F检验和它的p值

                   anova:方差分析函数,anova(),也可以得到summary函数结果的一部分,也只有一部分

                 predict:z=data.frame(x=185) ; predict(a,z)  #这是一个预测函数,a是已经建好的线性模型,z是输入的数值,可以得到结果,很方便

               

              多元回归:不止两组数据进行线性回归的计算,可能有三个四个五个数据进行,就要用到一些分析方法,比如逐步回归:其有两种方式,

                   向前引用法(从零开始,加一组,再加一组,再加一组数据看看),向后剔除法(先把所有数据都算进去,减一组,再减一组,

                   再减一组数据看看),逐步筛选法(一边加一边减)

                   sl <- step(s,direction="forward")    这是多元线性回归的公式,direction="forward"   方向等于forward是向前引用法,

                      backward是向后剔除法,both是两者都有,这个函数是通过判断AIC的值来进行数据的删除和添加,知道找到最优组合

                      但有时这个全自动化的函数也会出错,这时候就需要手工去进行筛选,add1()增加 和 drop1()删除      这两个函数。

                      比如drop1(s):s是已经用step函数处理过的模型,或者是新lm模型,然后会告诉你删除其中一个数据,

                      AIC的变化,然后你可以根据它的结果重新建立模型,再去看这个模型怎么样

                   会用到进行lm的更新,公式:new_lm<-updata(原来的lm, .~. , +新的数据),这是加入新的数据,减去原来的是一组数据,可以把

                   加号变为减号,减号后面是你要删除的数据

                   得出一个好的结果靠这些指标衡量:RSS(Residual standard error:残差平方和)越小越好

                             R的平方(Multiple R-squared:相关性系数)  越大越接近1越好

                             AIC(Akaike information criterion : 赤池信息准则  越小越好(大多数时候是非常好用的,但有时候是不好用的)

5、回归诊断                   

通常回归诊断需要诊断都有下面这些东西:

  1、样本是否符合正态分布假设?            

    有些数据是符合的,有些是不符合的,所以需要我们了解样本是不是正态分布

  2、是否存在离群值导致模型产生较大误差?      

    数据是抽提出来的,误差不能避免,有时正、负误差会抵消掉,对结果就没有影响。但有时候误差会偏离正常值很远的数据,这种数据我们叫它离群值,离群值对模型

  的影响非常大,可能使得这个模型跟它原本的模样完全的偏离

    如何发现这些离群值并把它剔除出去,使得这个模型回归正轨,这也是回归诊断中需要讨论的东西

  3、线性模型是否合理?

    我们假设这个关系是线性的,但是自然界中有很多关系未必是线性的,可能是二次多项式,也可能是一个指数的关系,还可能是更复杂的关系,

  甚至有的时候我们没办法写出它的表达式。我们需要知道我们做这个线性的假设是否合理,我们怎么样去判断

  4、误差是否满足独立性、等方差、正态分布等假设条件

    误差一般也是满足独立性、等方差、正态分布的,所谓独立性是指误差与y,也就是因变量是没有关系的,误差不会随着y的值变化。

  我们也要确定误差是否满足上述条件

    还有自变量中真正独立的有哪些?这里的所谓独立是指:这个自变量不会跟随其他自变量变化

  5、是否存在多重共线性?

     多重共线性:所有的自变量中,有不是真正独立的自变量,这种情况可能会产生一个情况,就是计算过程中出现的一些矩阵是不可逆的,表现出来的就是这个矩阵的

  行列式或者是这个矩阵的最小特征值非常接近零。由于在求回归模型的过程中需要求这矩阵的逆,如果这个矩阵是在这种非常接近不可逆的情况下,那很可能这个误差

  非常非常的大,使得这个模型基本上失去了意义

一、正态分布检验

函数:shopiro.test()  #如果算出来是不符合的就可以认为样本不符合正态分布,如果符合就认为它符合正态分布

  shopiro.test(x$x1)  #如果这个的结果中的p-value很小,就说明这个统计学意义很明显,需要拒绝假设,也就是说这个样本是不符合正态分布的。如果这个p-value很接近一

             说明这个样本不能被否定为不是正态分布,也就可以认识它是正态分布

二、多重共线性检验

这里的检验原理是,把样本的数据组成一个矩阵,再乘以它的转置得到一个新的矩阵,然后再求这个矩阵的特征根,用特征根的最大值除以最小值,得到一个比值,这个值就叫kappa值,一般若kappa值小于100,就认为多重共线性的程度很小,若在100~1000之间,就认为存在中等程度或较强的多重共线性。若kappa>1000,则认为存在严重的多重共线性

函数/步骤:1、先data.frame()把数据组合好

      2、在使用cor()求相关系数矩阵

         3、kappa()   #得到kappa值

         4、eigen(x)   #这个函数是用来求矩阵的特征根,在这里主要是看哪个样本中有很严重的多重共线性

1、广义回归线性模型

有时这个模型不是标准的线性的,我们也想给他做出来,这时候可以用广义线性模型

函数/步骤:1、先用data.frame()把数据组合好

      2、glm(模型,family=binormal,data=xx)  #family=binormal    的意思就是我们的因变量是二元的,1或者0。比如牛张不张嘴,张就是1,不张就是0

      3、最后得到P=exp(y的系数+x的系数*x) / (1+exp(y的系数+x的系数*x))

2、非线性回归

有时这个线就是曲线,这时候就不能用线性回归,就要用有曲线的。

比如  x <- lm(y~log(x))  y <-lm(log(y)~x)  z <- lm(log(y)~log(x))这些东西

拟合的问题:拟合不足(把幂函数拟合为直线),过度拟合(把误差都算进去,导致输入正确的数会偏离非常大)

R软件中有一个函数:nls()--非线性模型的参数估计    视频里面没有仔细讲  就算了吧^-^

R语言入门视频笔记--9--随机与数据描述分析的更多相关文章

  1. R语言入门视频笔记--10--数据挖掘

    这里来挖掘超市购物车数据. 名词: 1.挖掘数据集:购物篮数据 2.挖掘目标:关联规则 3.关联规则:牛奶=>鸡蛋[支持度=2%,置信度=60%] 4.指出度:分析中的全部事务的2%同时购买了牛 ...

  2. R语言入门视频笔记--5--自定义函数

    自定义函数 你可以输出一段代码,创建一个你自己定义的函数 蛋是如果你两个自定义函数的名字重复的话,后面的会把前面的替换掉 举个栗子: hanshu1 <- function(x)  sqrt(v ...

  3. R语言入门视频笔记--4--R的数据输入

    输入 R的数据输入可以大体三种: 1.键盘输出 2.从文本文件导入 3.从Excel中导入数据 一.从键盘输入 首先创建一个数据框,玩玩嘛,瞎建一个 mydata <- data.frame(a ...

  4. R语言入门视频笔记--8--数据框

    一.数据框 使用data.frame函数生成数据框 x <- c(20122014101:20122014128) y <- rnorm(28,85,18) #生成28个平均数为85,方差 ...

  5. R语言入门视频笔记--6--R函数之cat、format、switch函数

    一.cat 猫  怎么就变成一个输出函数了呢? cat  一个输出函数,功能和print有相同之处 我们一起比较看看 1.cat(“hellow world”)或cat('hellow world') ...

  6. R语言入门视频笔记--3-1--矩阵与数组

    生成一个新矩阵,多用一些参数吧这次: x <- c(12,13,14,15) rname <- c("R1","R2") nname <- c ...

  7. R语言入门视频笔记--3--列表list

    list <- (stud.id = 1234,stud.name="Tom",stud,marks=c(18,3,14,25,19)) #生成一个列表,里面有学生id,学生 ...

  8. R语言入门视频笔记--2--一些简单的命令

    一.对象 1.列举当前内存中的对象 ls() 2.删除不需要的对象 rm(某对象名称) 3.查看向量长度 length(某向量名称) 4.查看向量类型 mode(某向量名称) 二.函数 1.seq函数 ...

  9. R语言入门视频笔记--1

    一.数据框简要 可输入来访问mtcars这个系统自带的数据框中的mpg列 mtcars$mpg 或者输入 mtcars[c("mpg","cyl")] 来访问两 ...

随机推荐

  1. iOS5 and iOS6都只支持横屏的方法

    If your app uses a UINavigationController, then you should subclass it and set the class in IB. You ...

  2. Vue项目经验

    Vue项目经验 setInterval路由跳转继续运行并没有及时进行销毁比如一些弹幕,走马灯文字,这类需要定时调用的,路由跳转之后,因为组件已经销毁了,但是setInterval还没有销毁,还在继续后 ...

  3. ios之alloc和init

      复制代码 SomeObject *obj = [[SomeObject alloc] initWithCenter:centerPoint radius:radius]; 和   复制代码 Som ...

  4. c# DateTime常用用法

    参考:http://sqlyuju.com/c-datetime-hh-hh-qubie.html https://www.cnblogs.com/xiongxiaobai/p/5282827.htm ...

  5. div section article区分--20150227

    div section article ,语义是从无到有,逐渐增强的.div 无任何语义,仅仅用作样式化或者脚本化的钩子(hook),对于一段主题性的内容,则就适用 section,而假如这段内容可以 ...

  6. 通过工厂模式批量创建对象后调用其中方法 出现XXXis not a function()问题原因

    //通过工厂模式批量创建 function Computer(color,weight,logo){         var obj=new Object();         obj.color=c ...

  7. [LUOGU] P1048 采药

    题目描述 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到一个到处都是草药的山洞里对他说:" ...

  8. ECshop二次开发 ECSHOP首页显示积分商城里的商品

    以ECSHOP2.7.2官方默认模板为基础 1).首先打开 index.php 文件,在最末尾增加下面函数,注意千万不要写到 “?>” 的外面去,要加在“?>”的前面,加以下代码: /** ...

  9. Life is short.,You need Python

    真棒Python  https://awesome-python.com/ 精选的Python框架,库,软件和资源的精选列表. 灵感来自awesome-php. 真棒Python 管理员面板 算法和设 ...

  10. windows phone 网络开发三部曲(一)各种包的各种抓法

    首先感谢大家对我上一篇博客的支持,让我也体验了一把上榜的感觉. 这无疑是对我这个刚刚打算,认真写写博客的人的莫大的鼓励,再次感谢(鞠躬)!! 接下来想和大家分享一些关于windows phone网络开 ...