精华内容
下载资源
问答
  • R语言optim函数进行函数优化实战...#optim函数最小化残差平方和 #仿真数据 set.seed(93420) # Creating random data x <- rnorm(500) y <- rnorm(500) + 0.7 * x data <- data.frame(x, y) head(data)

    R语言optim函数进行函数优化实战(和lm函数进行对比)

    目录

    R语言optim函数进行函数优化实战(和lm函数进行对比)

    #仿真数据

    展开全文
  • 这方面有需求很棒的内容,转载不了我就直接扣过来了~~对这方面有需求的读者不妨收藏一下...用R语言很好地封装了,矩阵的各种计算方法,一个函数一行代码,就能完成复杂的矩阵分解等操作。让建模人员可以更专注于模型...

    这方面有需求

    很棒的内容,转载不了我就直接扣过来了~~对这方面有需求的读者不妨收藏一下。
    d0bc7c3f4cbef1579e6b502a63f03c9f.png
    作者: 张丹(Conan)来源:http://blog.fens.me/r-matrix/

    前言


    R 是作为统计语言,生来就对数学有良好的支持。矩阵计算作为底层的数学工具,有非常广泛的使用场景。用R语言很好地封装了,矩阵的各种计算方法,一个函数一行代码,就能完成复杂的矩阵分解等操作。让建模人员可以更专注于模型推理和业务逻辑实现,把复杂的矩阵计算交给R语言来完成。
    本文总结了 R 语言用于矩阵的各种计算操作。

    1. 基本操作

    # 生成矩阵 


    取对角线元素,生成对角矩阵:

    # 对角线元素


    上三角,下三角:

    # 上三角


    矩阵转置:

    20,


    对角矩阵填充:

    # 创建方阵


    填充后,发现矩阵并不是对称的,原因是上三角取值按列取值,所以先取 10 后取 13,导致上三角和下三角取值顺序不完全一致。

    16,


    调整后,我们要先转置,再取值再填充,形成对称结构。

    20,


    矩阵和 data.frame 转换,用行列形成索引结构。

    12,

    2. 矩阵计算

    加法,减法。

    # 加载矩阵计算工具包


    矩阵值相乘。

    > m0*m1
         [,1] [,2] [,3] [,4] [,5]
    [1,]   40  395  873  741 1326
    [2,]  186  192  480  112 1710
    [3,]  189   42  616  180  171
    [4,]  112  248  864  432  520


    矩阵乘法,满足第二个矩阵的列数和第一个矩阵的行数相等,所以把上面生成的 m0 矩阵( 4 行 5 列)转置为( 5 行 4 列),再用 m1 矩阵( 4 行 5 列),进行矩阵乘法,得到一个 5 行 5 列的结果矩阵。

    > t(m0)%*%m1
         [,1] [,2] [,3] [,4] [,5]
    [1,]  527  285  649  217  399
    [2,] 1423  877 1741  633 1231
    [3,] 2319 1469 2833 1049 2063
    [4,] 3215 2061 3925 1465 2895
    [5,] 4111 2653 5017 1881 3727

    # 通过函数实现矩阵相乘
    > crossprod(m0,m1)
         [,1] [,2] [,3] [,4] [,5]
    [1,]  527  285  649  217  399
    [2,] 1423  877 1741  633 1231
    [3,] 2319 1469 2833 1049 2063
    [4,] 3215 2061 3925 1465 2895
    [5,] 4111 2653 5017 1881 3727


    矩阵外积。

    6,


    矩阵直和。

    4,


    矩阵直积。

    4,

    3. 矩阵性质

    3.1 奇异矩阵

    首先,我们线创建一个非奇异矩阵,判断非奇异矩阵方法,行列式不等于 0,矩阵可逆,满秩。

    # 创建一个非奇异矩阵


    再创建一个奇异矩阵,判断奇异矩阵方法包括,行列式等于 0,矩阵不可逆,不是满秩。

    # 奇异矩阵

    3.2 逆矩阵

    # 创建方阵,非奇异矩阵
    > m0100,16),4,4);m0
         [,1] [,2] [,3] [,4]
    [1,]   24   31   80   37
    [2,]   84   13   42   71
    [3,]   95   62   93   86
    [4,]   69   16   94   35# 计算矩阵的逆矩阵
    > solve(m0)
                [,1]          [,2]        [,3]         [,4]
    [1,] -0.03083680 -0.0076561475  0.01258023  0.017218514
    [2,] -0.01710957 -0.0270246488  0.03152548 -0.004553923
    [3,]  0.01384721 -0.0003070371 -0.00886117  0.007757524
    [4,]  0.03142440  0.0282722871 -0.01541411 -0.024126340# 逆矩阵的性质,逆矩阵与原矩阵进行矩阵乘法,得到对角矩阵。
    > round(solve(m0) %*% m0)  # 对角矩阵
         [,1] [,2] [,3] [,4]
    [1,]    1    0    0    0
    [2,]    0    1    0    0
    [3,]    0    0    1    0
    [4,]    0    0    0    1


    广义逆矩阵,将逆矩阵的概率推广到奇异矩阵和长方形矩阵上,就产生了广义逆矩阵。

    # 创建奇异矩阵


    用 ginv 函数计算非奇异矩阵,和 solve() 函数比较。

    # 非奇异矩阵


    逆矩阵的特性。

    16,

    3.3  特征值和特征向量

    # 创建一个方阵


    当 symmetric=TRUE 时,计算对称矩阵的特征值和特征向量,当 m0 不是对称矩阵时,则取下三角对称结构进行计算。

    TRUE)

    4. 矩阵分解

    下面将介绍 4 种矩阵常用的分解的方法,包括三角分解 LU,choleskey 分解,QR 分解,奇异值分解 SVD。

    4.1 三角分解 LU

    三角分解法是将原方阵分解成一个上三角形矩阵和一个下三角形矩阵,这样的分解法又称为 LU 分解法。它的用途主要在简化一个大矩阵的行列式值的计算过程,求逆矩阵,和求解联立方程组。这种分解法所得到的上下三角形矩阵不唯一,一对上三角形矩阵和下三角形矩阵,矩阵相乘会得到原矩阵。

    # 创建一个矩阵

    4.2 choleskey 分解

    Cholesky 分解是把一个对称正定的矩阵表示成一个下三角矩阵L和其转置的乘积的分解。它要求矩阵的所有特征值必须大于零,故分解的下三角的对角元也是大于零的。Cholesky 分解法又称平方根法,是当A为实对称正定矩阵时,LU 三角分解法的变形。

    # 创建对称方阵

    4.3 QR 分解

    QR 分解法是将矩阵分解成一个正规正交矩阵与上三角形矩阵,所以称为 QR 分解法,与此正规正交矩阵的通用符号 Q 有关。

    # 创建对称方阵

    4.4 奇异值分解 SVD

    奇异值分解 (singular value decomposition, SVD) 是一种正交矩阵分解法。SVD 是最可靠的分解法,但是它比 QR  分解法要花上近十倍的计算时间。[U,S,V]=svd(A),其中 U 和 V 分别代表两个正交矩阵,而 S 代表一对角矩阵。和 QR 分解法相同, 原矩阵 A 不必为正方矩阵。使用 SVD 分解法的用途是解最小平方误差法和数据压缩。

    # 创建对称方阵

    5. 特殊矩阵

    下面介绍的多种特殊矩阵,都是在 matrixcalc 库中提供的。

    5.1 Hankel Matrix

    汉克尔矩阵 (Hankel Matrix) 是具有恒定倾斜对角线的方形矩阵。Hankel 矩阵的行列式称为 catalecticant。该函数根据 n 向量 x 的值构造 n 阶 Hankel 矩阵。矩阵的每一行是前一行中值的循环移位。
    矩阵定义:

    468452b712aa44acbd0e7be351aa509b.png
    6, 

    5.2 Hilbert Matrix

    希尔伯特矩阵是一种数学变换矩阵,正定,且高度病态(即,任何一个元素发生一点变动,整个矩阵的行列式的值和逆矩阵都会发生巨大变化),病态程度和阶数相关。希尔伯特矩阵是一种特殊的汉克尔矩阵,该函数返回 n 乘 n 希尔伯特矩阵。
    矩阵定义:

    091465650b32c4717ee329a754ccdfca.png
    4)

    5.3 Creation Matrix

    创造矩阵,n 阶创建矩阵也称为推导矩阵,该函数返回阶数 n 创建矩阵,在主对角线下方的子对角线上具有序列 1,2,…,n-1 的方阵。
    矩阵定义:

    cf04e4fdcde1c0375ecfa9fff6a7408c.png
    5)  

    5.4 Stirling Matrix

    斯特林公式(Stirling’s approximation)是一条用来取n的阶乘的近似值的数学公式。一般来说,当 n 很大的时候,n 阶乘的计算量十分大,所以斯特林公式十分好用,而且,即使在 n 很小的时候,斯特林公式的取值已经十分准确。
    斯特林矩阵(Stirling Matrix),该函数构造并返回斯特林矩阵,该矩阵是包含第二类斯特林数的下三角矩阵。
    矩阵定义:

    b297cc4439a7748d1e7ca5c75f2f4f15.png
    4)

    5.5 Pascal matrix

    帕斯卡矩阵:由杨辉三角形表组成的矩阵称为帕斯卡(Pascal)矩阵。此函数返回 n 乘以 Pascal 矩阵。在数学中,尤其是矩阵理论和组合学,Pascal 矩阵是一个下三角矩阵,行中有二项式系数。通过对相同顺序的对称 Pascal 矩阵执行 LU 分解并返回下三角矩阵,可以容易地获得它。
    帕斯卡的三角形是由数字行组成的三角形。第一行具有条目1.每个后续行通过添加前一行的相邻条目而形成,替换为 0,其中不存在相邻条目。pascal 函数通过选择与指定矩阵维度相对应的 Pascal 三角形部分来形成 Pascal 矩阵。
    矩阵定义:

    d37bdd9ab89f045a870c60aa4957e331.png
    4)

    5.6 Fibonacci matrix

    斐波纳契矩阵,该函数构造了从 Fibonacci 序列导出的 n + 1 平方 Fibonacci 矩阵。
    计算公式:

    ac9319d4a0b351934ab667c5babd8434.png
    4)

    5.7 Frobenius Matrix

    Frobenius 矩阵也称为伴随矩阵,它出现在线性一阶微分方程组的解中。此函数返回一个在数值数学中有用的 Fronenius 矩阵。
    矩阵定义:

    085137484a9fbc8d583c04406ac64bfa.png
    4)

    5.8 Duplication matrix

    复制矩阵,当 A 是对称矩阵时,该函数构造将 vech(A)映射到 vec(A)的线性变换 D。
    计算公式:

    d0cbcb7971fac2481fd7ccddf29eac1e.png
    3) 

    5.9 K matrix

    k 矩阵是由 H.matrices() 函数构造的,利用直积进行计算子列表的分量。K.matrix(r, c=r) ,返回阶数为 p=r*c  的方阵,对于 r 行 c 列的矩阵 A,计算 A 和 t(A) 的直积。
    计算公式:

    75da021c9132b3858ca0f74f27cd5486.png
    2,

    5.10 E Matrices

    E 矩阵列表, E.matrices(n) 使得每个子列表的分量,是从 n 阶单位矩阵计算向量的外积导出的方阵。
    计算公式:

    72fa486871159959e148e02ab105b6e5.png
    3)

    5.11 H Matrices

    H 矩阵列表, H.matrices(r, c=r) 使得 r 阶 c 阶的子列表的分量,计算从 r 行和 c 列的单位矩阵的列向量的外积导出的方阵。

    2,

    5.12 T Matrices

    T 矩阵列表, T.matrices(n) 高级别列表中的组件数为 n。n 个组件中的每一个也是列表。每个子列表具有 n 个分量,每个分量是 n 阶矩阵。
    计算公式:

    51e0ea718b22de3719af900f1b126b9f.png
    3)


    通过 R 语言,我们实现了对于矩阵的各种计算操作,非常方便!有了好的工具,不管是学习还是应用,都会事半功倍。本文只是列举了矩阵的操作方法,没有解释计算的推到过程,推到过程请参考线性代码的教科书。

    8fbe7c6d1a164c19680809d1cc5d0d24.png— END—

    f6aa279f7386acafa076807e23123ee2.png

    展开全文
  • R语言的各种分布函数

    万次阅读 多人点赞 2017-09-23 16:36:46
    R语言的各种分布函数: 至于具体的用法了,大家可以使用help命令,根据实际情况来进行使用 R提供工具来计算累计分布函数p(cummulative distribution function CDF),概率密度函数d分位数函数q,另外...

    R语言的各种分布函数:

     

    至于具体的用法了,大家可以使用help命令,根据实际情况来进行使用




     



     

     

    R提供工具来计算累计分布函数p(cummulative distribution function CDF),概率密度函数d和分位数函数q,另外在各种概率分布前加r表示产生随机序列

    (R这种直接在分布前面加前缀的语法太难读了,pt() 误以为还是一个函数,实际上的含义是p(t()),为什么不写成这个格式呢? 不过t()返回什么好...)


    常见概率分布

     

    离散型


     

    1.二项分布Binomial distribution:binom

    二项分布指的是N重伯努利实验,记为X ~ b(n,p),E(x)=np,Var(x)=np(1-p)

    pbinom(q,size,prob), q是特定取值,比如pbinom(8,20,0.2)指第8次伯努利实验的累计概率。size指总的实验次数,prob指每次实验成功发生的概率

    dbinom(x,size,prob), x同上面的q同含义。dfunction()对于离散分布来说结果是特定值的概率,对连续变量来说是密度(Density)

    rbinom(n, size, prob),产生n个b(size,prob)的二项分布随机数

    qbinom(p, size, prob),quantile function 分位数函数。

    分位数:

    若概率0<p<1,随机变量X或它的概率分布的分位数Za。是指满足条件p(X>Za)=α的实数。如t分布的分位数表,自由度f=20和α=0.05时的分位数为1.7247。 --这个定义指的是上侧α分位数

    α分位数:

    实数α满足0 <α<1 时,α分位数是使P{X< xα}=F(xα)=α的数xα

    双侧α分位数是使P{X<λ1}=F(λ1)=0.5α的数λ1、使 P{X>λ2}=1-F(λ2)=0.5α的数λ2。

    qbinom是上侧分位数,如qbinom(0.95,100,0.2)=27,指27之后P(x>=27)>=0.95。即对于b(100,0.2)为了达到0.95的概率至少需要27次重复实验。


     


    2.负二项分布negative binomial distribution (帕斯卡分布)nbinom

    掷骰子,掷到一即视为成功。则每次掷骰的成功率是1/6。要掷出三次一,所需的掷骰次数属于集合 { 3, 4, 5, 6, ... } 。掷到三次一的掷骰次数是负二项分布的随机变量。

    dnbinom(4,3,1/6)=0.0334898,四次连续三次1的概率为这个数。

    概率函数为f(k;r,p)=choose(k+r-1,r-1)*p^r*(1-p)^k, 当r=1时这个特例分布是几何分布

    rnbinom(n,size,prob,mu) 其中n是需要产生的随机数个数,size是概率函数中的r,即连续成功的次数,prob是单词成功的概率,mu未知..(mu是希腊字母υ的读音)


    3.几何分布Geometric Distribution,geom

    n次伯努利试验,前n-1次皆失败,第n次才成功的机率

    dgeom(x,prob),注意这里的x取值是0:n,即dgeom(0,0.2)=0.2,以上的二项分布和负二项分布也是如此。

    ngeom(n,prob)


    4.超几何分布Hypergeometric Distribution,hyper

    它描述了由有限个(m+n)物件中抽出k个物件,成功抽出指定种类的物件的次数(不归还)。

    概率:p(x) = choose(m, x) choose(n, k-x) / choose(m+n, k) for x = 0, ..., k. 

     

    当n=1时,这是一个0-1分布即伯努利分布,当n接近无穷大∞时,超几何分布可视为二项分布

    rhyper(nn,m,n,k),nn是需要产生的随机数个数,m是白球数(计算目标是取到x个白球的概率),n是黑球数,k是抽取出的球个数

    dhyper(x, m, n, k)



    5.泊松分布 Poisson Distribution,pois

     

    p(x) = lambda^x exp(-lambda)/x!

    for x = 0, 1, 2, .... The mean and variance are E(X) = Var(X) = λ.  x ~ π(λ)

    泊松分布的参数λ是单位时间(或单位面积)内随机事件的平均发生率.泊松分布适合于描述单位时间内随机事件发生的次数。如某一服务设施在一定时间内到达的人数,电话交换机接到呼叫的次数,汽车站台的候客人数,机器出现的故障数,自然灾害发生的次数等等.

    rpois(n, lambda)

    dpois(x,lambda)


    连续型

     

    6.均匀分布 Uniform Distribution,unif

    f(x) = 1/(max-min) for min <= x <= max. 

     

    runif(n,min,max).

    生成16位数的随机数:as.character(runif(1,1000000000000000,9999999999999999))

    dunif(x,min,max)=1,恒定等于1/(max-min).

    对于连续变量,dfunction的值是x去特定值代入概率密度函数得到的函数值。


    7.正态分布Normal Distribution,norm

    f(x) = 1/(sqrt(2 pi) sigma) e^-((x - mu)^2/(2 sigma^2)) 

    其中mu是均值,sigma是standard deviation标准差

    理论上可以证明如果把许多小作用加起来看做一个变量,那么这个变量服从正态分布

    rnorm(n,mean=0,sd=1)后两个参数如果不填则默认为0,1。

    dnorm(x,mean,sd),sd是标准差。

    画出正态分布概率密度函数的大致图形:

    x<-seq(-3,3,0.1)

    plot(x,dnorm(x)) plot中的x,y要有相关关系才会形成函数图。

    qnorm(p,mean,sd),这个还是上侧分位数,如qnorm(0.05)=-1.644854,即x<=这个数的累计概率小于0.05

     

    3sigma法则:对于正态分布的x,x取值在(mean-3sd,mean+3sd)几乎是在肯定的。

    因为pnorm(3)-pnorm(-3)=0.9973002

     

    用正太分布产生一个16位长的随机数字:

    as.character(10^16*rnorm(1))



    8.伽玛分布Gamma Distribution,gamma

    http://zh.wikipedia.org/w/index.php?title=伽玛分布&variant=zh-cn

     

    假设随机变量X为 等到第α件事发生所需之等候时间。

     

    f(x)= 1/(s^a Gamma(a)) x^(a-1) e^-(x/s) for x >= 0, a > 0 and s > 0.

     

    Gamma分布中的参数α,称为形状参数(shape parameter),即上式中的s,β称为尺度参数(scale parameter)上式中的a

    E(x)=s*a, Var(x)=s*a^2. 当shape=1/2,scale=2时,这样的gamma分布是自由度为1的开方分布

     

    http://zh.wikipedia.org/wiki/File:Gamma_distribution_pdf.png

     

    dgamma(x,shape,rate=1,scale=1/rate), 请注意R在这里提供的rate是scale尺度参数的倒数,如果dgamma(0,1,2)则表示dgamma(0,shape=1,rate=2),而非dgamma(0,shape=1,scale=2)

    pgamma(q, shape, rate = 1, scale = 1/rate, lower.tail = TRUE,

           log.p = FALSE)

    qgamma(p, shape, rate = 1, scale = 1/rate, lower.tail = TRUE,

           log.p = FALSE)

    rgamma(n, shape, rate = 1, scale = 1/rate)


    9.指数分布Exponential Distribution,exp

    指数分布可以用来表示独立随机事件发生的时间间隔,比如旅客进机场的时间间隔、中文维基百科新条目出现的时间间隔等等。

     

    记作X ~ Exponential(λ)。

     

    f(x) = lambda e^(- lambda x) for x >= 0. 

     

    其中lambda λ > 0是分布的一个参数,常被称为率参数(rate parameter). E(x)=1/λ,Var(x)=1/λ^2

     

    dexp(x, rate = 1, log = FALSE)

    pexp(q, rate = 1, lower.tail = TRUE, log.p = FALSE)

    qexp(p, rate = 1, lower.tail = TRUE, log.p = FALSE)

    rexp(n, rate = 1)

    假设在公交站台等公交车平均10分钟有一趟车,那么每小时候有6趟车,即每小时出现车的次数~ Exponential(1/6)

    我们可以产生10个这些随机数看看rexp(10,1/6)

    60/(rexp10,1/6)即为我们在站台等车的随机时间,如下:

     [1]  6.443148 24.337131  6.477096  2.824638 15.184945 14.594903

     [7]  7.133842  8.222400 42.609784 15.182827

    可以看见竟然有一个42.6分钟的随机数出现,据说这种情况下你可以投诉上海的公交公司。

    不过x符合指数分布,1/x还符合指数分布吗?

    pexp(6,1/6)=0.6321206, 也就是说这种情况下只有37%的可能公交车会10分钟以内来。

    按照以上分析一个小时出现的公交车次数应该不符合指数分布。


    10.卡方分布(non-central)Chi-Squared Distribution,chisq

    它广泛的运用于检测数学模型是否适合所得的数据,以及数据间的相关性。数据并不需要呈正态分布

    k个标准正态变量的平方和即为自由度为k的卡方分布。

    E(x)=k,Var(x)=2k.

     

    dchisq(x, df, ncp=0, log = FALSE)

    pchisq(q, df, ncp=0, lower.tail = TRUE, log.p = FALSE)

    qchisq(p, df, ncp=0, lower.tail = TRUE, log.p = FALSE)

    rchisq(n, df, ncp=0)

    其中df为degrees of freedom。ncp是non-centrality parameter (non-negative).ncp=0时是central卡方分布,ncp不为0时,表示这个卡方分布是由非标准正态分布组合而成,ncp=这些正态分布的均值的平方和。



    11.β分布Beta Distribution,beta

    变量x仅能出现于0到1之间。

    空气中含有的气体状态的水分。表示这种水分的一种办法就是相对湿度。即现在的含水量与空气的最大含水量(饱和含水量)的比值。我们听到的天气预告用语中就经常使用相对湿度这个名词。

    相对湿度的值显然仅能出现于0到1之间(经常用百分比表示)。冬季塔里木盆地的日最大相对湿度和夏季日最小相对湿度。证实它们都符合贝塔分布

    dbeta(x, shape1, shape2, ncp = 0, log = FALSE)

    pbeta(q, shape1, shape2, ncp = 0, lower.tail = TRUE, log.p = FALSE)

    qbeta(p, shape1, shape2, ncp = 0, lower.tail = TRUE, log.p = FALSE)

    rbeta(n, shape1, shape2, ncp = 0)

    shape1,shape2是beta分布的两个参数。E(x)=s1/(s1+s2),var(x)=s1*s2/(s1+s2)^2 * (s1+s2+1)


    12.t分布Student t Distribution,t

    应用在当对呈正态分布的母群体的均值进行估计。当母群体的标准差是未知的但却又需要估计时,我们可以运用学生t 分布。

    学生t 分布可简称为t 分布。其推导由威廉·戈塞于1908年首先发表,当时他还在都柏林的健力士酿酒厂工作。因为不能以他本人的名义发表,所以论文使用了学生(Student)这一笔名。之后t 检验以及相关理论经由罗纳德·费雪的工作发扬光大,而正是他将此分布称为学生分布。

    dt(x, df, ncp, log = FALSE)

    pt(q, df, ncp, lower.tail = TRUE, log.p = FALSE)

    qt(p, df, ncp, lower.tail = TRUE, log.p = FALSE)

    rt(n, df, ncp)

    其中df是自由度,ncp是non-centrality parameter delta,If omitted, use the central t distribution。ncp出现时表示分布由非标准的卡方分布构成。


    13.F分布

    一个F-分布的随机变量是两个卡方分布变量的比率。F-分布被广泛应用于似然比率检验,特别是方差分析中

    df(x, df1, df2, ncp, log = FALSE)

    pf(q, df1, df2, ncp, lower.tail = TRUE, log.p = FALSE)

    qf(p, df1, df2, ncp, lower.tail = TRUE, log.p = FALSE)

    rf(n, df1, df2, ncp)

    df1,df2是两个自由度,ncp同t分布中的ncp。

     

     

     

    展开全文
  • R语言学习之函数

    千次阅读 2020-09-18 16:55:57
    R语言学习之函数 一、R函数 输入数据类型: 向量:sum,mean,sd,range,median,sort,order 矩阵或数据框:cbind,rbind 数字矩阵:heatmap R语言中常用lm()函数用于回归分析 > state <- as.data.frame(state.x77...

    R语言学习之函数

    一、R函数

    输入数据类型:

    向量:sum,mean,sd,range,median,sort,order

    矩阵或数据框:cbind,rbind

    数字矩阵:heatmap

    R语言中常用lm()函数用于回归分析

    > state <- as.data.frame(state.x77[,c("Murder","Population","Illiteracy","Income","Frost")])
    > fit<- lm (Murder ~ Population+Illiteracy+Income+Frost,data=state)
    > summary(fit)
    
    Call:
    lm(formula = Murder ~ Population + Illiteracy + Income + Frost, 
        data = state)
    
    Residuals:
        Min      1Q  Median      3Q     Max 
    -4.7960 -1.6495 -0.0811  1.4815  7.6210 
    
    Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
    (Intercept) 1.235e+00  3.866e+00   0.319   0.7510    
    Population  2.237e-04  9.052e-05   2.471   0.0173 *  
    Illiteracy  4.143e+00  8.744e-01   4.738 2.19e-05 ***
    Income      6.442e-05  6.837e-04   0.094   0.9253    
    Frost       5.813e-04  1.005e-02   0.058   0.9541    
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
    
    Residual standard error: 2.535 on 45 degrees of freedom
    Multiple R-squared:  0.567,	Adjusted R-squared:  0.5285 
    F-statistic: 14.73 on 4 and 45DF,  p-value: 9.133e-08
    

    二、选项参数

    1、输入控制部分

    常用选项:

        file:接一个文件
        data:一般指要输入一个数据框
        x:表示一个单独的对象,一般是向量,也可以是矩阵或者列表
        formula:公式
        na.rm:删除缺失值
        ……

    2、输出控制部分

    3、调节参数

    • 根据名字判断选项的作用

         color:选项用来控制颜色

        select:与选择有关

        font:与字体有关

        font.axis:坐标轴的字体

        lty:即line type

        lwd:即line width

        method:软件算法

        ……

    • 选项接受那些参数

        main:字符串,不能是向量

        na.rm:TRUE或者FALSE

        axis:side参数只能是1到4

        fig:包含四个元素的向量

        ……

    三、数学统计函数

      d 概率密度函数

      p 分布函数

      q 分布函数的反函数

      r 产生相同分布的随机数

    正态分布函数:(mean代表均值,sd代表方差)

    dnorm(x, mean = 0, sd = 1, log = FALSE)
    pnorm(q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
    qnorm(p, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
    rnorm(n, mean = 0, sd = 1)
    

    与离散分布相关的函数

    在这里插入图片描述

    与正态分布类似,在每种分布前加上d、p、q、r即可构成函数名称

    dhyper(x, m, n, k, log = FALSE)
    phyper(q, m, n, k, lower.tail = TRUE, log.p = FALSE)
    qhyper(p, m, n, k, lower.tail = TRUE, log.p = FALSE)
    rhyper(nn, m, n, k)
    

    runif(n) 函数用来生成n个0~1之间的随机数

    runif(50,min=1,max=100) 生成50个1到100的随机数

    set.seed(n) 在runif()前运行此函数可使n状态与生成的随机数绑定,会生成相同的随机数

    四、描述性统计函数

    1、summary() 函数

    > myvars <- mtcars[c("mpg", "hp", "wt", "am")]
    > summary(myvars)
          mpg              hp              wt              am        
     Min.   :10.40   Min.   : 52.0   Min.   :1.513   Min.   :0.0000  
     1st Qu.:15.43   1st Qu.: 96.5   1st Qu.:2.581   1st Qu.:0.0000  
     Median :19.20   Median :123.0   Median :3.325   Median :0.0000  
     Mean   :20.09   Mean   :146.7   Mean   :3.217   Mean   :0.4062  
     3rd Qu.:22.80   3rd Qu.:180.0   3rd Qu.:3.610   3rd Qu.:1.0000  
     Max.   :33.90   Max.   :335.0   Max.   :5.424   Max.   :1.0000 
    

    2、fivenum(),与summary()函数类似,返回最小值,四分位值,中位数,上四分位数和最大值

    > fivenum(myvars$hp)
    [1]  52  96 123 180 335
    

    3、Hmisc包中的describe函数:

    describe(mycars)
    

    4、pastecs包中stat.desc函数:计算种类繁多的描述性统计量,其中x是一个数据框或时间序列

    stat.desc(mycars)
    

    5、psych包中describe函数:

    describe(mycars)
    describe(mycars,trim=0.1)   #trim=0.1去掉10%的最低值最高值部分
    

    6、aggregate()函数
    很多情况下,我们需要对数据进行分组描述,这时候可以使用aggregate函数,aggregate函数能够对数据按照指定的分组信息进行统计,将分组信息通过一个列表指定出来:

    library(MASS)
    aggregate(Cars93[c("Min.Price","Price","Max.Price","MPG.city")],by=list(Manufacturer=Cars93$Manufacturer),mean)
    

    aggregate函数的缺点是一次只能计算一个统计函数。

    7、使用doBy包中的summaryBy函数:

    summaryBy(mpg+hp+wt~am,data=mycars,FUN=mean)
    

    8、使用psych包中的describeBy函数:

    describeBy(mycars,list(am=mycars$am))
    

    五、频数统计函数

    1、一维频数统计

    • tabel()函数

    分组后可以使用tabel()函数进行频数统计,计算频数表,也称为列联表,有一维列联表和多维列联表。

    > split(mtcars,mtcars$cyl)
    > split(mtcars,as.factor (mtcars$cyl))   #根据cul进行分类
    > num <- 1:100
    > cut(num,c(seq(0,100,10)))
    > cut(mtcars$mpg,c(seq(10,50,10)))
    #频数统计
    > table(mtcars$cyl)
     4  6  8 
    11  7 14 
    > table(cut(mtcars$mpg,c(seq(10,50,10))))
    (10,20] (20,30] (30,40] (40,50] 
         18      10       4       0 
    
    • prop.table()函数直接计算频数
    > prop.table(table(mtcars$cyl))
    
          4       6       8 
    0.34375 0.21875 0.43750 
    > prop.table (table(cut(mtcars$mpg,c(seq(10,50,10)))))
    
    (10,20] (20,30] (30,40] (40,50] 
     0.5625  0.3125  0.1250  0.0000 
    > prop.table(table(mtcars$cyl))*100
    
         4      6      8 
    34.375 21.875 43.750 
    

    2、二维数据框

    library(vcd)
    table(Arthritis$Treatment,Arthritis$Improved)      #统计两个量的频数,返回的结果是一个二维的列联表
    

    在这里插入图片描述

    若变量太多,可提前使用with或xtabs加载数据

    with(data = Arthritis,{table(Treatment,Improved)})
    
    xtabs(~Treatment+Improved,data = Arthritis)
    

    3、边际频数统计

    边际频数统计即按着行和列进行统计

    > library("grid")
    > library("vcd")
    > mytable <- table(Arthritis$Treatment,Arthritis$Improved)
    > with(data = Arthritis,{table(Treatment,Improved)})
             Improved
    Treatment None Some Marked
      Placebo   29    7      7
      Treated   13    7     21
    > mytable <- xtabs(~ Treatment+Improved, data=Arthritis)
    > mytable # frequencies
             Improved
    Treatment None Some Marked
      Placebo   29    7      7
      Treated   13    7     21
    > margin.table(mytable,1) #1代表按行进行边际频数统计
    Treatment
    Placebo Treated 
         43      41 
    > margin.table(mytable, 2) #2代表按列进行边际频数统计
    Improved
      None   Some Marked 
        42     14     28 
    

    将边际频数的和添加到频数表中:

    addmargins(x)
    addmargins(x,1)
    addmargins(x,2)
    

    三维列联表

    > mytable <- xtabs(~ Treatment+Sex+Improved, data=Arthritis)
    > mytable
    , , Improved = None
    
             Sex
    Treatment Female Male
      Placebo     19   10
      Treated      6    7
    
    , , Improved = Some
    
             Sex
    Treatment Female Male
      Placebo      7    0
      Treated      5    2
    
    , , Improved = Marked
    
             Sex
    Treatment Female Male
      Placebo      6    1
      Treated     16    5
    
    > ftable(mytable) 
                     Improved None Some Marked
    Treatment Sex                             
    Placebo   Female            19    7      6
              Male              10    0      1
    Treated   Female             6    5     16
              Male               7    2      5
    

    六、独立性检验函数

    1、独立性检验函数

    ​ 独立性检验是根据频数信息判断两类因子彼此相关或相互独立的假设检验。所谓独立性就是指变量之间是独立的,没有关系。

    ​ 独立性检验算法:卡方检验、Fisher检验、Cochran-Mantel-Haenszel检验

    2、假设检验

    ​ 假设检验(Hypothesis Testing)是数理统计学中根据一定假设条件由样本推断总体的一种方法。
    ​ 原假设——没有发生
    ​ 备择假设——发生了

    ​ 具体做法:根据问题的需要对所研究的总体作某种假设,记作H0;选取合适的统计量,这个统计量的选取要使得在假设H0成立时,其分布为已知;由实测的样本,计算出统计量的值,并根据预先给定的显著性水平进行检验,做出拒接或接受假设H0的判断。

    3、p-value

    p-value就是Probability的值,它是一个通过计算得到的概率值,也就是在原假设为真时,得到最大的或者超出所得到的检验统计量值的概率。
    一般将p值定位到0.05,当p<0.05时拒绝原假设,p>0.05时,不拒绝原假设。

    4、卡方检验

    > library(vcd)
    > mytable <- table(Arthritis$Treatment,Arthritis$Improved)
    > chisq.test(mytable)
    
    	Pearson's Chi-squared test
    
    data:  mytable
    X-squared = 13.055, df = 2, p-value = 0.001463
    

    ​ 上述p-value = 0.001463<0.05,说明Treatment和Improved这两个变量不是独立的。

    5、Fisher检验

    Fisher精确检验的原理是边际固定的列联表中行和列是相互独立的。

    > mytable <- xtabs(~Treatment+Improved, data=Arthritis)
    > fisher.test(mytable)
    
    	Fisher's Exact Test for Count Data
    
    data:  mytable
    p-value = 0.001393
    alternative hypothesis: two.sided
    

    p值小于0.05,说明不独立

    6、Cochran-Mantel-Haenszel检验

    ​ 原理是两个名义变量在第三个变量每一个水平中都是条件独立的。根据定义这个检验需要三个变量。

    > mytable <- xtabs(~Treatment+Improved+Sex, data=Arthritis)
    > mantelhaen.test(mytable)
    
    	Cochran-Mantel-Haenszel test
    
    data:  mytable
    Cochran-Mantel-Haenszel M^2 = 14.632, df = 2, p-value =
    0.0006647
    
    

    ​ 结果得到的p-value值非常小,说明药物治疗和改善情况在性别的每一个水平上不独立。如果调整变量的顺序,结果是有差别的,这里函数中的变量顺序很重要。

    七、相关性分析函数

    1、相关性分析

    ​ 相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析。简单来说就是变量之间是否有关系。
    ​ 相关性可能是正相关,也可能是负相关,需要根据相关系数决定。相关系数的大小表示相关程度的强弱。

    2、相关性衡量指标

    ​ 相关系数有多种计算方法,包括Pearson相关系数、Spearman相关系数、Kendall相关系数、偏相关系数、多分格(polychoric)相关系数和多系列(polyserial)相关系数。

    ​ 和独立性检验不同,相关性当中每种方法都没有独立的函数,这里计算相关系数都使用同一个函数cor。cor函数可以计算三种相关系数:pearson、kendall、spearman。具体使用哪种方法,可以通过函数中的method参数指定。函数中的use参数表示如何处理缺失值,是不处理还是删除等等。

    3、实例

    本次实例利用state.x77数据集作为演示

    • state.x77

      ​ state.x77数据集是美国50个州在1977年的人口收入、文盲率、预期寿命及谋杀率等指标的统计。数据类型为矩阵。本次实例在于统计谋杀率和哪些指标有关。

    • cor(state.x77)计算相关系数

    在这里插入图片描述

    一般相关系数都在0到1之间,0最小,1最大,正负号代表是正相关还是负相关

    • cov(state.x77)计算协方差,用来衡量两个变量的总体误差
      在这里插入图片描述

    • 如果只想计算一组变量与另一组变量之间的关系,而不需要将变量两两求相关系数

      #x <- states[,c("Population", "Income", "Illiteracy", "HS Grad")]
      x <- state.x77[,c(1,2,3,6)]
      #y <- states[,c("Life Exp", "Murder")]
      y <- state.x77[,c(4,5)]
      > cor(x,y)
      
      > head(x)
                 Population Income Illiteracy HS Grad
      Alabama          3615   3624        2.1    41.3
      Alaska            365   6315        1.5    66.7
      Arizona          2212   4530        1.8    58.1
      Arkansas         2110   3378        1.9    39.9
      California      21198   5114        1.1    62.6
      Colorado         2541   4884        0.7    63.9
      > head(y)
                 Life Exp Murder
      Alabama       69.05   15.1
      Alaska        69.31   11.3
      Arizona       70.55    7.8
      Arkansas      70.66   10.1
      California    71.71   10.3
      Colorado      72.06    6.8
      
      > cor(x,y)
                    Life Exp     Murder
      Population -0.06805195  0.3436428
      Income      0.34025534 -0.2300776
      Illiteracy -0.58847793  0.7029752
      HS Grad     0.58221620 -0.4879710
      

    ​ 描述相关性的其他指标,例如偏相关系数、多分格相关系数和多系列相关系数等等,可以通过R的扩展包来实现。

    ​ ggm包中的pcor可以用来计算偏相关系数。偏相关是指在控制一个或多个变量时,剩余其他变量之间的相互关系。

    install.packages("ggm")
    library(ggm)
    colnames(state.x77)
    pcor(c(1,5,2,3,6), cov(state.x77))
    

    ​ pcor(u,s) 函数中u是一个向量,向量中的前两个值是要计算的相关系数的下标,其余数值为条件变量的下标;s是cov函数计算出来的协方差结果。

    八、相关性检验函数

    cor.test(x,y,alternative,method)

    • x,y表示向量
    • alternative指定单侧检验还是双侧检验,two.sided同时检验正负相关,greater检验正相关,less检验负相关;
    • method指定使用哪种相关性衡量指标(pearson、kendall还是spearman)

    计算state.x77中谋杀率与文盲率之间的相关性:

    cor.test(state.x77[,3],state.x77[,5])
    
    > cor.test(state.x77[,3],state.x77[,5])
    
    	Pearson's product-moment correlation
    
    data:  state.x77[, 3] and state.x77[, 5]
    t = 6.8479, df = 48, p-value = 1.258e-08
    alternative hypothesis: true correlation is not equal to 0
    95 percent confidence interval:
     0.5279280 0.8207295
    sample estimates:
          cor 
    0.7029752 
    

    ​ p-value值远小于0.05,说明谋杀率与文盲率相关,此外还给出了相关系数为0.7029752,置信区间为0.5279280~0.8207295。

    ​ 置信区间:confidence interval,是指样本统计量所构造的总体参数的估计区间。在统计学中,一个概率样本的置信区间是对这个样本的某个总体参数的区间估计。置信区间展现的是这个参数的真实值有一定概率落在测量结果的周围的程度。置信区间给出的是被测量参数的测量值的可信程度。

    cor.test()每次只能检测一组变量,使用起来较为麻烦,

    • psych包中的corr.test函数:可以一次性检验多个变量之间的相关性。

      library(psych)
      corr.test(state.x77)
      
    • ggm包中的pcor.test函数:检验偏相关性。

      pcor.test(x,q,n)
      - x是pcor计算的偏相关系数;
      - q是要控制的变量数;
      - n是样本数。

    • 分组数据的相关性检验

    ​ t检验:即student’s t-test,t检验是用t分布理论推论差异发生的概率,从而比较两个平均数的差异是否显著。主要用于样本含量较小,一般小于30个,总体标准差未知的正态分布数据。

    ​ 在这里使用MASS包的UScrime数据集,UScrime数据集包含1960年美国47个州的刑罚制度对犯罪率的信息

    t.test(y~x,data=UScrime)

    • y是一个数值型变量,x是一个二分型变量
    > library("MASS")
    > t.test(Prob ~ So, data=UScrime)
    
    	Welch Two Sample t-test
    
    data:  Prob by So
    t = -3.8954, df = 24.925, p-value = 0.0006506
    alternative hypothesis: true difference in means is not equal to 0
    95 percent confidence interval:
     -0.03852569 -0.01187439
    sample estimates:
    mean in group 0 mean in group 1 
         0.03851265      0.06371269 
    

    ​ 结果中p-value = 0.0006506,小于0.05,可以拒绝南方各州与非南方各州拥有相同监禁概率的假设。

    ​ 如果想在多于两个组之间进行比较,若数据满足正态分布,可以使用方差分析;若不满足正态分布,则需要使用非参数检验方法。
    非参数检验称为nonparametric tests,在总体方差未知或知道甚少的情况下,利用样本数据对总体分布形态等进行推断的方法。由于非参数检验方法在推断过程中不涉及有关总体分布的参数,因而得名为“非参数”检验。
    参数检验称为parametric tests,是在总体分布形式已知的情况下,对总体分布的参数如均值、方差等进行推断的方法。也就是数据分布已知,比如满足正态分布。

    九、绘图函数

    1、R语言四大作图系统

    • 基础绘图系统(graphics包,默认已加载)
    • lattice包
    • ggplot2包
    • grid包

    2、R基础绘图系统

    1)高级绘图
    高级绘图是一步到位,可以直接绘制出图;
    2)低级绘图
    低级绘图不能单独使用,必须在高级绘图产生图形的基础上,对图形进行调整,比如加一条线,加上标题文字等。

    3、R绘图输入数据

    对于绘图函数,最重要的就是要知道输入数据的格式。

    • 散点图:x和y两个坐标数据;
    • 直方图:因子;
    • 热力图:数据矩阵;
      ……

    4、plot函数

    plot(women$height,women$weight) #输入是向量,输出是散点图
    plot(as.factor(mtcars$cyl)) #输入是因子,输出是直方图
    plot(as.factor(mtcars$cyl),mtcars$carb) #输入是第一个参数是因子,第二个参数是向量,输出是箱线图
    plot(mtcars$carb,as.factor(mtcars$cyl)) #输入是第一个参数是向量,第二个参数是因子,输出是散点图
    plot(women$height~women$weight) #输出的是二者的关系散点图
    

    利用plot函数直接绘制线性回归的结果:

    fit <- lm(height~weight,data=women) #lm函数是用于拟合线性模型
    plot(fit) #结果生成四幅图
    

    ​ plot函数之所以支持多种输入数据格式,原因在于其支持多种属性的数据格式。使用methods(plot)运行后可以看出,plot其实是一个大家族,里面有很多子函数,每个子函数名后缀对应这种属性的数据。print和summary也是这样的道理。

    5、par函数

    par是用来对绘图参数进行设置的。如:

    plot(as.factor(mtcars$cyl),col=c(“red”,“green”,“blue”)) #给图形上色
    

    直接在R编辑器中输入命令par()或者par(no.readonly=TRUE)都可以获取当前的各个绘图参数。

    十、自定义函数

    在R中只写函数名,不加括号,就会给出函数的源代码,以cor()为例

    在这里插入图片描述

    有些函数代码被封装,敲函数名无法显示源代码,例如sum,mean

    在这里插入图片描述

    函数包含以下四部分:

    1、函数名称

    • 函数命令与功能相关

    • 名称可以是子母和数字的组合,但必须是字母开头

    2、函数声明

    • 利用function函数来声明

      myfun <- function(选项参数)
          {
             函数体
      }
      

    3、函数参数

    4、函数体

    以计算偏度与峰度函数为例

    ​ 偏度(skewness),是统计数据分布偏斜方向和程度的度量,是统计数据分布非对称程度的数字特征。

    ​ 峰度(peakedness;kurtosis)又称峰态系数。表征概率密度分布曲线在平均值处峰值高地的特征数。

    mystats <- function(x,na.omit=FALSE) {   #na.omit用于删除缺失值。默认维FALSE
      if(na.omit) 
        x <- x[!is.na(x)]
      m <- mean(x)
      n <- length(x)
      s <- sd(x)
      skew <- sum((x-m^3/s^3))/n
      kurt <- sum((x-m^4/s^4))/n-3
      return(c(n=n,mean=m,stdev=s,skew=skew,kurtosis=kurt))
     }
    

    R语言中的循环与向量化操作

    函数内部通过循环实现向量化操作

    • if 条件判断
    score=70;if (score >60 ) {print ("Passwd") } else {print ("Failed")}
    
    ifelse( score >60,print ("Passwd"),print ("Failed"))
    
    • for 循环
    #for循环
    for (i in 1:10) {print ("Hello,World")}
    
    • while 循环
    #while循环
    i=1;while(i <= 10) {print ("Hello,World");i=i+1;}
    i=1;while(i <= 10) {print ("Hello,World");i=i+2;}
    
    • switch 语句

      ……

    循环三部分

    1)条件判断,是真或是假

    2)用于循环执行的结构

    3)表达式

    switch语句

    switch(expr, list)

    其中,expr为表达式,其值或为一个整数值或为一个字符串;list为一个列表。

    若expr的计算结果为整数,且值在1~length(list)之间时,则switch()函数返回列表相应位置的值。若expr的值超出范围,则没有返回值

    #switch语句
    x <- 2
    switch(x, "C", "Python", "R")
    

    在这里插入图片描述

    由上例可知,x的值为2,则switch函数根据传入的值2,输出列表中的第2个值:“Python”。

    我们可以使用switch函数的这一性质可以定义一个函数实现多种操作:

    centre <- function(x, type) {
      switch(type,
             mean = mean(x),
             median = median(x),
             trimmed = mean(x, trim = .1))
    }
    
    x <- rcauchy(10)
    centre(x, "mean")
    centre(x, "median")
    centre(x, "trimmed")
    

    i=1;while(i <= 10) {print (“Hello,World”);i=i+2;}

    
    - switch  语句
    
      ……
    
    **循环三部分**
    
    1)条件判断,是真或是假
    
    2)用于循环执行的结构
    
    3)表达式
    
    **switch语句**
    
    switch(expr, list)
    
    其中,expr为表达式,其值或为一个整数值或为一个字符串;list为一个列表。
    
    若expr的计算结果为整数,且值在1~length(list)之间时,则switch()函数返回列表相应位置的值。若expr的值超出范围,则没有返回值
    
    ```R
    #switch语句
    x <- 2
    switch(x, "C", "Python", "R")
    

    在这里插入图片描述

    由上例可知,x的值为2,则switch函数根据传入的值2,输出列表中的第2个值:“Python”。

    我们可以使用switch函数的这一性质可以定义一个函数实现多种操作:

    centre <- function(x, type) {
      switch(type,
             mean = mean(x),
             median = median(x),
             trimmed = mean(x, trim = .1))
    }
    
    x <- rcauchy(10)
    centre(x, "mean")
    centre(x, "median")
    centre(x, "trimmed")
    

    在这里插入图片描述

    展开全文
  • 原文链接:R语言中回归分类模型选择的性能指标​tecdat.cn有多种性能指标来描述机器学习模型的质量。但是,问题是,对于哪个问题正确的方法是什么?在这里,我讨论了选择回归模型分类模型时最重要的性能指标。请...
  • r语言 函数

    2017-03-01 16:44:00
    R语言实际上是函数的集合,用户可以使用base,stats等包中的基本函数,也可以自己编写函数完成一定的功能。但是初学者往往认为编写R函数十分困难,或者难以理解。这里对如何编写R函数进行简要的介绍。函数是对一些...
  • R语言函数

    2016-04-28 16:57:49
    R语言实际上是函数的集合,用户可以使用base,stats等包中的基本函数,也可以自己编写函数完成一定的功能。但是初学者往往认为编写R函数十分困难,或者难以理解。这里对如何编写R函数进行简要的介绍。  函数是...
  • R语言中applysapply函数

    千次阅读 2020-03-12 22:13:32
    apply函数和sapply的功能 apply功能 Retruns a vector or array or list of values obtained by applying a function to margins of an array or matrix. apply函数经常用于计算矩阵中行或列的均值,使用方法如下。 ...
  • 1,赋值运算符: a,向量 表示:c()  seq/length 运算:%/%(整除),%%(求余),sqrt/log/exp/sin/... min/max/sum/var(方差)/sd(标准差)/mean/median/range(最大最小值)/sort(从小排序)/order(从小到大下标) b,
  • R语言】3.2 数学函数 简单介绍 R 语言中常用的数学函数 abs(-6) #绝对值 abs(c(2,-5,55,-3)) sqrt(16) #平方跟 sqrt(c(16,49,121)) exp(1) #以e为底的指数函数 exp(c(1,2,3,4)) log(33) #自然对数 log(22,base=...
  • R语言函数总结

    万次阅读 多人点赞 2018-06-20 10:15:44
    R语言与数据挖掘:公式;数据;方法R语言特征对大小写敏感通常,数字,字母,. _都是允许的(在一些国家还包括重音字母)。不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字符不允许是数字。基本...
  • R语言 回归分析函数说明

    千次阅读 2018-11-02 21:19:56
    回归分析相关的函数 1、一元线性回归 lm() #计算beta0,beta1参数 summary() # 提取lm()参数信息 anovn() #方差分析 predict() # 根据给出自变量预测因变量的值 例: a=lm(y~1+x,data=…) #对x,y回归分析 ...
  • R语言函数的编写

    千次阅读 2017-03-22 10:52:14
    R语言函数的编写 R语言实际上是函数的集合,用户可以使用base,stats等包中的基本函数,也可以自己编写函数完成一定的功能。但是初学者往往认为编写R函数十分困难,或者难以理解。这里对如何编写R函数进行...
  • 集算器和R语言都支持循环函数,下面将对比两者用法上的异同。 1、生成数据  生成1到10之间的奇数。  集算器:x=to(1,10).step(2)  代码中,to(1,10)生成了1到10之间的连续整数,step函数根据上一步计算结果...
  • R语言的各种统计分布函数

    千次阅读 2020-04-25 22:40:48
    转载自品略图书馆... R语言的各种统计分布函数 1.二项分布Binomial distribution:binom 二项分布指的是N重伯努利实验,记为X ~ b(n,p),E(x)=np,Var(x)=np(1-p) pbinom(q,size,prob), q是特定取值...
  • 编写函数实现以下功能。 1、对于任意给定的一个数n,找出1到n之间的所有质数。 2、找出1000以内suo'y
  • R语言低级绘图函数-text

    千次阅读 2017-04-24 14:51:00
    text函数用来在一张图表上添加文字,只需要指定对应的xy坐标,以及需要添加的文字内容就可以了 基本用法: plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6), type = "n") text(x = 3, y = 3, labels = &...
  • 整理了四种常用的聚类方法,自用,现供大家参考 K均值聚类方法中 聚类个数是用了factoextra包中的fviz_nbclust函数 并用此包中的画图函数绘制了拐点图,结果较为直观...系统聚类包括最大距离法、类平均法和离差平方和
  • R语言-回归分析相关函数

    千次阅读 2016-03-08 17:22:20
    摘自:R语言实用教程 薛毅、陈立萍编著
  • SPecc函数用法 R语言 Spectral Clustering谱聚类
  • 即所有数减去其平均值的平方和,所得结果除以该组数之个数(或个数减一,即变异数),再把所得值开根号。 z-score 标准化(标准差标准化) x'=x-μ/σ 其中μ为所有样本数据的均值,σ为所有样本数据的标准差。...
  • 【R笔记】R语言函数总结

    千次阅读 多人点赞 2016-03-23 10:25:00
    R语言与数据挖掘:公式;数据;方法R语言特征对大小写敏感通常,数字,字母,. _都是允许的(在一些国家还包括重音字母)。不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字符不允许是数字。基本...
  • 从五大语言函数和lambda表达式前言一、从Kotlin的函数说起1.函数是什么?2.Kotlin中函数的形式3.Kotlin中函数的类型3.函数的入参4.Lambda闪亮登场二、从map函数看lambda表达式1.基上所有的语言都有map等操作符,拿...
  • 所使用的包:AMORE建立BP神经网络所需要的函数:newff,trainsim。newff(n.neurons, learning.rate.global, momentum.global,error.criterium, Stao,hidden.layer, output.layer, method)参数:n.neurons:一个...
  • R语言自定义极大似然函数函数、假设检验函数(超基础、简易)目录一、自定义极大似然函数二、自定义假设检验函数 目录 一、自定义极大似然函数 1、求出似然函数,以正太分布、指数分布为例 正太分布似然函数: 指数...
  • R语言--数值字符处理函数

    千次阅读 2016-05-24 22:46:07
    数值字符处理函数 取相反数abs(-4)---4 求平方差:sqrt(4)---2 取整函数: 1)向上取整:ceiling(3.45)---4 2)向下取整:floor(3.475)---3 3)向零的方向截取的参数的整数部分:trunc(5.99)----5 4)指定要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,990
精华内容 6,396
关键字:

r语言平方和函数