精华内容
下载资源
问答
  • 产品上面的r
    千次阅读 多人点赞
    2020-04-09 18:47:11

    引言

    如何在iPadOS/iOS/MacOS等多个平台优雅的连贯的高效的跑R?这是一个有关于使用腾讯云搭建RStudio Server的懒人包


    Outline:

    • What: 什么是RStudio Server?

    • Why: 为什么用RStudio Server?/为什么在iPadOS &iOS上跑R?

    • How: 如何在iPadOS&iOS&MacOS上跑R?


    What: 什么是RStudio Server

    RStudio Server是RStudio的服务器版本,它能为远程使用Linux服务器的R用户提供基于浏览器的RStudio IDE。有免费版本和付费版本两种选择,对于一般用户,免费的版本是够用的。

    RStudio服务器可与最新版本的Linux发行版一起使用,包括Debian,Ubuntu和RedHat / CentOS,RStudio Server也可以从其他平台上的源代码构建和安装。

    更多有关RStudio server的内容,请参见RStudio官网


    Why: 为什么用RStudio Server?/为什么在iPadOS &IOS上跑R?

    这个部分将详细展开论证,毕竟对于R的使用者,告别本地运行环境,在一个需要付出时间成本(腾讯云和Linux基础)和金钱成本(10元/月的预算)还是需要好好讲道理的。如果你是一个RStudio Server的坚定使用者,那么请跳过此部分。

    还需要注意的是,本文基于的本地系统环境是MacOS/iPadOS/iOS,在Win系统和Android的搭建和使用方式大同小异。

    RStudio的原因

    • 在任何地方访问RStudio

      这是我使用RStudio Server最重要的原因,基于浏览器的访问方式是的R使用者能够在任何一个连接互联网的平台上使用好用的RStudio,并像在本地运行环境一样使用R,无需或较少的考虑数据储存位置、R包版本控制和本地运行环境的算力。

    • 让R运行得更快

      因为我本人的设备是17版本的MacBook,虽然非常轻薄,但在处理数据量较大的分析时,往往需要跑很久,云服务器能够提供更便宜和强大的运算能力,也让我们在挑选笔电是能兼顾美观和算力;

      如果购买的是国外的云服务器,在安装R包的时候也会速度更快,让R包安装的更顺畅。

    • 协同

      云服务器能够使R用户与朋友轻松共享代码,数据和其他文件。

    • 更方便的使用R包

      在云服务器使用RStudio能够让我们集中安装和配置R,R软件包,TeX和其他支持库

    • 更好的支持中文字符(Win用户)

      Win用户在跨语言使用R时,会遇到各种各样的问题,由于RStudio Server是基于Linux操作系统,因此在Win的浏览器里使用RStudio Server会给Win用户带来更好的用户体验。

    iPadOS的原因

    最早注意到RStudio server就是在更新RStudio Preview(v1.3.938-2)的时候看到这行字“Compatibility with iPad OS 13 for RStudio Server.”,顿时就脑补出在iPadOS上跑R的场景,又联想到Apple的那句广告词:"你的下一台电脑,何必是电脑。"于是我们来说道说道在iPadOS上使用RStudio Server有哪些吸引人的地方。
    Compatibility with **iPad OS 13** for RStudio Server.
    在这里插入图片描述

    • 使用iPad真正办公成为可能

      之前看苹果这句广告词,虽然看不懂iPad取代电脑后Mac的产品定位,但是还是认为这句话多少有些吹嘘的成分,至少使用iPad来分析数据还是有些不方便的。但是RStudio Server使得我们能用iPad办公更有说服力,至少RStudio Desktop能做的,用iPad都能。

    • 强大的Rmarkdown

      承接上文,RStudio能做的不仅仅是数据分析和可视化这么简单,强大的Rmarkdown使各种文本编辑、演示文稿甚至是网站的制作都能在iPadOS系统完成。

    • iPadOS

      iPadOS系统很大程度上提升了iPad作为生产力工具的实力,尤其是iPadOS13.4.1增加对苹果自家Magic trackpad和Magic Mouse2的支援使得iPadOS使用的更顺畅。


    How: 如何在iPadOS&iOS&MacOS上跑R?

    • 第零步:准备

      • 10元
      • WeChat 中国账户
      • Mac/PC
    • 第一步:注册腾讯云
      因为需要用到云服务器,论坛里对各大云服务器的比较已经有很多,我使用的是腾讯云
      对于中国大陆的用户这一步还是比较简单的,有一个绑定中国大陆银行卡的wechat账户就能顺利通过腾讯云的实名验证,解锁全部功能。

    • 第二步:开通腾讯云服务器

      腾讯云上有各种服务器,我选择的是一个学生优惠活动,每月10元,1核CPU,2G内存,1M带宽,50G云盘,算是CP还行,有更多数据分析需要的大家选择配置更好的服务器。

    • 第三步:Linux新手村

      作为文科生,我自己对于Linux完全零基础,所以腾讯云的新手入门算是一个很好的平台,上边从入门Linux到,搭建网站,开发App很多实验环节。这里为了我们更好的配置和使用RStudio Server,选择Linux入门还是很棒的。

    • 第四步:在Linux云服务器上安装R和RStudio Server

      虽然官方推荐使用标准方式登陆Linux,但还是在终端机里登陆来的更方便些,在终端机中执行下列命令就行,用户名和IP地址都请使用默认的用户名和IP地址:

      ssh <username>@<hostname or IP address>
      

      输入默认密码后就能够进入到Linux云服务器。

      分别执行下列命令安装R和RStudio Server

      安装R:

      sudo yum install R
      

      安装RStudio Server:

      我的Linux版本是CentOS 7.6 64位,因此安装RStudio Server的命令:

      wget https://download2.rstudio.org/server/centos6/x86_64/rstudio-server-rhel-1.2.5033-x86_64.rpm
      sudo yum install rstudio-server-rhel-1.2.5033-x86_64.rpm
      

      不同版本的RStudio server的安装代码请参见:Download RStudio Server v1.2.5033

      安装完成后我们就能在Linux云服务器里使用RStudio Server,在chrome地址栏输入"http://服务器公网地址:8787"登陆到root用户就能看到熟悉的RStudio界面啦!
      RStudio Server

      不过我们还是新建一个用户来使用RStudio Server更妥当,用下列命令在Linux的终端机设置用户名和密码:

      useradd <username> -m -s /bin/bash
      sudo passwd <username>
      
    • 第五步:下载和使用filezilla

      在清洗数据、分析数据和进行数据可视化的时候我们需要经常使用数据和保存结果,RStudio server的使用极大的便利我们这一过程,虽然能使用多种方式来上传和下载文件到Linux服务器,但是对于我来说还是使用FTP客户端来的更方便,这里推荐Filezilla

    • 第六步:在iPadOS、iOS和MacOS上优雅的跑R

      完成上述步骤我们就能在在iPadOS、IOS和MacOS上优雅的跑R啦!
      在iPadOS上使用RStudio Server:
      RStudio server
      在iOS上使用RStudio ServerRStudio server
      在Nintendo switch上…还是最适合来玩Animal Crossing
      Animal Crossing

    更多相关内容
  • 自从金融黑暗时代醒来以来,欧洲特别表现出对结构性金融产品的渴望,这些产品可以参与股票市场,同时限制或消除下行风险。此类证券通常依赖于路径,因此通常使用GBM进行建模。 我们将使用Generali Germany提供的一种...

    原文链接:http://tecdat.cn/?p=5334

    原文出处:拓端数据部落公众号

    几何布朗运动(GBM)是模拟大多数依赖某种形式的路径依赖的金融工具的标准主力。虽然GBM基于有根据的理论,但人们永远不应忘记它的最初目的 - 粒子运动的建模遵循严格的正态分布脉冲。基本公式由下式给出:

    标准维纳过程代表创新。在对气体进行建模时效果很好,在财务建模方面存在一些严重的缺陷。问题是维纳过程有两个非常严格的条件:

    a)创新通常是分布式的,平均零和方差为tb)创新是独立的

    现在,至少有一些金融市场数据暴露的人都知道股票回报不满足第一个条件,有时甚至不满足第二个条件。普遍的共识是,股票收益是扭曲的,是有效的,并且尾巴不均匀。虽然股票收益趋于收敛于正常分布且频率递减(即月收益率比日收益率更正常),但大多数学者会同意t分布或Cauchy分布更适合收益。

    然而,在实践中,大多数人在模拟布朗运动时只是采用正态分布,并接受由此产生的资产价格不是100%准确。另一方面,我不满足于这种半解决方案,我将在下面的例子中展示盲目信任GBM的成本是多少。我提出了一种伪布朗方法,其中随机创新是从经验回报的核密度估计而不是假设的正态分布中采样的。这种方法的好处在于它产生的结果更接近于过去观察到的结果而没有完全复制过去(这将是直接从过去的创新中抽样随机创新的结果)。

    介绍性例子

    在我们进入有趣的部分之前,我们展示了市场上浪费了多少钱,我们从一个简单的例子开始。我们需要加载三个包及其依赖项(您可以在页面底部下载此帖子的R-)

    
    require(quantmod)

    对于我们的第一个例子,我们将尝试模拟AT&T的回报。以下命令允许我们从雅虎财经下载价格信息并计算每月日志回报为了确定我在开始时所做的观点,我们将比较回报分布与正态分布。

    att <- getSymbols
    plot
    rug(jitter(attr))

     

    即使没有艺术史硕士学位,大多数人也会同意这两行不匹配。对于那些不依赖于这种视觉方法的人来说,可靠的Kolmogorov-Smirnov测试提供了一种更正式的方法。

    set.seed(2013)
    ks.test

    测试返回的p值为0.027,这远远不够(p值越小,我们必须得出的结论是两个分布不同)。接下来我们设置标准GBM功能。我完全清楚各种GBM函数作为众多包的一部分存在。尽管如此,我还是决定创建自己的函数,以使内部工作更加透明。

    m((mu * dt * x) + #drift
    rnorm(1, mean = 0, sd = 1) * sqrt(dt) * sigma * x) #random innovation
    x
    }

    在这个简单的函数中(我知道有更优雅的方法来实现这一点,但结果保持不变)rnorm函数充当Wiener进程驱动程序。毋庸置疑,这并不尊重我们上面所看到的。相比之下,我的伪布朗函数从过去经验回报的核密度估计中抽样随机创新。

    pseBM <- function(x, rets, n, ...) {
    N <
    y[[i]] <- x + x * (mean(rets) + samp[i])
    x <- y[[i]]
    }
    return(y)
    }

    不可否认,这个函数有点简洁,因为它假设静态增量(即dt = 1)并且几乎不需要用户输入。它只需要一个起始值(x),一个过去返回的向量(rets)和指定的路径长度(n)。...输入允许用户将其他命令传递给密度函数。这使用户可以通过添加带宽命令(bw =)来控制核密度估计的平滑度。没有任何进一步的麻烦,让我们开始使用上述功能进行模拟。在第一个例子中,我们仅使用起始值x中的两个函数来模拟一个价格路径,即系列中的最后一个价格。 要查看两个方法的执行情况,我们计算模拟序列的回报并将它们的分布与经验分布进行比较。

    x <- as.numeric
    
    attPGBMr <- diff[-1]
    d1 <- density
    d2 <- density
    d3 <- density
    plot

     

    显然,我们看到PGBM函数(蓝线)在产生接近经验回报分布(黑线)的回报时优于标准GBM函数(红线)。同样,关键(或视觉上无能)的读者可以查看KS测试的结果。

    ks.test(attr, attPGBMr)
    

    我们再次看到PGBM函数(p值= 0.41)远远优于GBM函数(p值= 0.02)。

    高级示例

    正如所承诺的那样,我们的第二个例子将展示当一个人在不能代表基础数据时错误地假设正态分布时,在线上有多少钱。自从金融黑暗时代醒来以来,欧洲特别表现出对结构性金融产品的渴望,这些产品可以参与股票市场,同时限制或消除下行风险。此类证券通常依赖于路径,因此通常使用GBM进行建模。

    我们将使用Generali Germany提供的一种特定产品 - Rente Chance Plus - 这是我开发PGBM功能的最初原因。当我在私人银行工作时,我的任务是评估这个特定的安全性,从基于GBM的标准蒙特卡罗模拟开始,但很快意识到这还不够。Rente Chance Plus提供20%参与EUROSTOXX 50指数上限至15%的上限,初始投资和实现收益均无下行。安全性在每年年底评估。尽管Generali可以在20年的投资期内自由改变参与率和资本化率,但为了论证,我们将假设这些因素保持不变。

    从上面反映我们的程序,我们首先从雅虎财经下载EUROSTOXX 50价格信息。

    eu <- getSymbols

    接下来,我们看看数据与正态分布的拟合程度如何,或者说多么糟糕。

    plot(density(er)
    
    ks.tst(er

     

    从严格的视角来看,这看起来比AT&T分布更糟糕。EUROSTOXX的回报显然是负面偏差,有点leptokurtic。KS测试返回p值为0.06,确认视觉不匹配。现在我们已经确定正态分布不是最合适的,我们可以看看错误地假设它的后果。我们将使用标准GBM和我的PGBM函数运行10,000次迭代的模拟并比较结果(如果您正在复制以下代码,请在等待时给自己喝杯咖啡。这将花费一些时间来运行)。

    x <- as.numer
    
    SIM1 <- as.data.frame
    
    SIM2 <- as.data.frame(
    
    sim2 <- ts(as.matri

    当然,我们对EUROSTOXX 50的价格水平不感兴趣,而是在参与率和上限率的约束下评估的回报。好消息是最困难的部分就在我们身后。计算回报和应用约束非常简单。对结果进行调整并不容易。

    s1.r <-(sim2))
    
    
    S1<-colSums
    
    S2<-colSum
    rug(jit
    
    ks.test

     

    我们可以清楚地看到,PGBM函数(蓝色)模拟的累积回报表现出负偏差,并且范围比标准GBM函数(红色)模拟的回报更宽。请注意,由于安全性没有下行限制,分布在下尾区看起来并不相同。KS测试以极其确定的方式证实两种分布是不同的(然而,小的p值主要是由大样本量引起的)。现在回答这个百万美元的问题(实际上非​​常字面)。线路上有多少钱?好吧,如果Generali使用正态分布来预测回报并相应地重新投保,他们会......

    均值(S1)-mean(S2)

    ...低估了累计回报率约0.6%。这可能看起来并不多,但如果我们假设安全数量为10亿欧元,那么Generali就达不到600万欧元 - 相当多的钱只是假设错误的分配。

    结论和局限

    那么我们从中学到了什么呢?用于对任何依赖路径的安全定价模型中的创新进行建模的分布可能会产生重大影响。虽然这个陈述本身就很明显,但分布差异的程度令人惊讶。当然,在Generali和其他机构工作的人可能比我更聪明,他们非常清楚正常分布并不总是最佳选择。但是,大多数人会使用更正式的(但可能只是不准确的)分布,如t分布或Cauchy分布。使用核密度分布是一种闻所未闻的方法。这是有原因的。

    首先,不能保证核密度估计比未回避的正态分布更准确地表示未知的基础分布。使用过去的数据预测未来总是让任何数据科学家的口味都不好,但不幸的是我们别无选择。然而,标准GBM固有的正态分布确实过于依赖过去的信息(即历史均值和标准偏差),但在形式化解决方案方面具有巨大的优势,因为其核心作用(双关语仅用于后见之明)概率论。

    其次,内核密度估计对使用的带宽非常敏感。如果带宽太大,您将获得平滑的分布,但是,与正态分布没有区别。如果带宽太小,您将获得一个非常强调极值的分布,特别是如果您估计内核密度的数据样本相当小。在上面的例子中,我们使用了密度函数中固有的自动带宽选择器,但几乎没有办法知道最佳带宽是什么。

    上述方法还有其他局限性,因为我们做了许多非常不切实际的假设。在Generali的例子中,我们假设Generali没有改变参与率和上限率,这是不太可能的。然而,更一般地说,我们对金融市场做出了一些基本假设。知情(希望)我们假设资本市场是有效的。因此,我们假设回报中没有自相关,这是维纳过程的第二个条件,但这是否代表了基础数据?

    acf(eu.r
    

     

    有问题欢迎联系我们!

    展开全文
  • 使用R语言预测产品销量

    千次阅读 2019-10-03 17:30:15
    使用R语言预测产品销量 通过不同的广告投入,预测产品的销量。因为响应变量销量是一个连续的值,所以这个问题是一个回归问题。数据集共有200个观测值,每一组观测值对应一种市场情况。 数据特征 TV:对于一...

    使用R语言预测产品销量

     

    通过不同的广告投入,预测产品的销量。因为响应变量销量是一个连续的值,所以这个问题是一个回归问题。数据集共有200个观测值,每一组观测值对应一种市场情况。

     

    数据特征

    • TV:对于一个给定市场的单一产品,用于电视上的广告费用(以千为单位)
    • Radio:用于广告媒体上投资的广告费用
    • Newspaper:用于报纸媒体上的广告费用

    响应

    • Sales:对应产品的销量

     

    加载数据

    > data <- read.csv("http://www-bcf.usc.edu/~gareth/ISL/Advertising.csv",colClasses=c("NULL",NA,NA,NA,NA))
    > head(data)     
      TV Radio Newspaper Sales
    1 230.1  37.8      69.2  22.1
    2  44.5  39.3      45.1  10.4
    3  17.2  45.9      69.3   9.3
    4 151.5  41.3      58.5  18.5
    5 180.8  10.8      58.4  12.9
    6   8.7  48.9      75.0   7.2
    # 显示Sales和TV的关系
    > plot(data$TV, data$Sales, col="red", xlab='TV', ylab='sales')

    # 用线性回归拟合Sales和TV广告的关系
    > fit=lm(Sales~TV,data=data)
    # 查看估算出来的系数
    > coef(fit)
    (Intercept)          TV 
     7.03259355  0.04753664
    # 显示拟合出来的模型的线
    > abline(fit)

    # 显示Sales和Radio的关系
    > plot(data$Radio, data$Sales, col="red", xlab='Radio', ylab='Sales')

    # 用线性回归拟合Sales和Radio广告的关系
    > fit1=lm(Sales~Radio,data=data)
    # 查看估算出来的系数
    > coef(fit1)
    (Intercept)       Radio 
      9.3116381   0.2024958
    # 显示拟合出来的模型的线
    > abline(fit1)

    # 显示Sales和Newspaper的关系
    > plot(data$Newspaper, data$Sales, col="red", xlab='Radio', ylab='Sales')

    # 用线性回归拟合Sales和Radio广告的关系
    > fit2=lm(Sales~Newspaper,data=data)
    # 查看估算出来的系数
    > coef(fit2)
    (Intercept)   Newspaper 
     12.3514071   0.0546931
    # 显示拟合出来的模型的线
    > abline(fit2)

    # 创建散点图矩阵
    > pairs(~Sales+TV+Radio+Newspaper,data=data, main="Scatterplot Matrix")

    第一行图形显示TVRadioNewspaperSales的影响。纵轴为Sales,横轴分别为TVRadioNewspaper。从图中可以看出,TV特征和销量是有比较强的线性关系的。

    划分训练集和测试集

    > trainRowCount <- floor(0.8 * nrow(data))
    > set.seed(1)
    > trainIndex <- sample(1:nrow(data), trainRowCount)
    > train <- data[trainIndex,]
    > test <- data[-trainIndex,]
    > dim(data)
    [1] 200   4
    > dim(train)
    [1] 160   4
    > dim(test)
    [1] 40  4

    拟合线性回归模型

    > model <- lm(Sales~TV+Radio+Newspaper, data=train)
    > summary(model)
    Call:
    lm(formula = Sales ~ TV + Radio + Newspaper, data = train)
    
    Residuals:
        Min      1Q  Median      3Q     Max 
    -8.7734 -0.9290  0.2475  1.2213  2.8971 
    
    Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
    (Intercept)  2.840243   0.353175   8.042 2.07e-13 ***
    TV           0.046178   0.001579  29.248  < 2e-16 ***
    Radio        0.189668   0.009582  19.795  < 2e-16 ***
    Newspaper   -0.001156   0.006587  -0.176    0.861    
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
    
    Residual standard error: 1.745 on 156 degrees of freedom
    Multiple R-squared:  0.8983,    Adjusted R-squared:  0.8963 
    F-statistic: 459.2 on 3 and 156 DF,  p-value: < 2.2e-16

    预测和计算均方根误差

    > predictions <- predict(model, test)
    > mean((test["Sales"] - predictions)^2)
    [1] 2.050666

    特征选择

    在之前的各变量和销量之间关系中,我们看到Newspaper和销量之间的线性关系比较弱,并且上面模型中Newspaper的系数为负数,现在去掉这个特征,看看线性回归预测的结果的均方根误差。

     

    > model1 <- lm(Sales~TV+Radio, data=train)
    > summary(model1)
    Call:
    lm(formula = Sales ~ TV + Radio, data = train)
    
    Residuals:
        Min      1Q  Median      3Q     Max 
    -8.7434 -0.9121  0.2538  1.1900  2.9009 
    
    Coefficients:
                Estimate Std. Error t value Pr(>|t|)    
    (Intercept) 2.821417   0.335455   8.411 2.35e-14 ***
    TV          0.046157   0.001569  29.412  < 2e-16 ***
    Radio       0.189132   0.009053  20.891  < 2e-16 ***
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
    
    Residual standard error: 1.74 on 157 degrees of freedom
    Multiple R-squared:  0.8983,    Adjusted R-squared:  0.897 
    F-statistic:   693 on 2 and 157 DF,  p-value: < 2.2e-16
    
    > predictions1 <- predict(model1, test)
    > mean((test["Sales"] - predictions1)^2)
    [1] 2.050226

     

    从上可以看到2.050226<2.050666,将Newspaper这个特征移除后,得到的均方根误差变小了,说明Newspaper不适合作为预测销量的特征,则去掉Newspaper特征后得到了新的模型。

    转载于:https://www.cnblogs.com/zeppelin/p/6921354.html

    展开全文
  • R语言参数估计笔记及例题

    千次阅读 2022-04-20 16:31:49
    R语言点估计,R语言正态总体均值区间评估,R语言单正态总体方差区间评估,R语言双正态总体均值差区间评估,R语言双正态总体方差比区间估计,R语言确定样本容量

    R语言参数估计

    目录

    R语言参数估计

    1.R语言点估计

    1.1定义

    1.2 例题

    2.R语言正态总体均值区间评估

    2.1定义

    2.2方差已知时,求置信区间

    2.2.1自定义函数

    2.2.2例题

    2.3方差未知时,求置信区间

    2.3.1调用内置函数t.test()

    2.3.2例题

    3.R语言单正态总体方差区间评估

    3.1定义

    3.2自定义函数

    3.3 例题

    4.R语言双正态总体均值差区间评估

    4.1定义

    4.2两方差均已知时,求置信区间

    4.2.1自定义函数

    4.3两方差均未知时,求置信区间

    4.3.1调用内置函数t.test()

    4.3.2例题

    5.R语言双正态总体方差比区间估计

    5.1定义

    5.2调用内置函数var.test()

    5.3 例题

    6.R语言确定样本容量

    6.1定义

    6.2总体方差已知时,求样本容量

    6.2.1自定义函数

    6.2.2例题

    6.3总体方差未知时,求置信区间

    6.3.1自定义函数

    6.3.2例题

    6.4估计比例/概率(P)时样本容量的确定

    6.4.1自定义函数

    6.4.2例题

    练习题:

    1.

    2.


    1.R语言点估计

    1.1定义

        有大多数定律可知,如果总体上X的k阶矩阵存在,则样本的K阶矩阵以概率收敛到总体的K阶矩,样本矩的连续函数收敛到的总体连续矩的连续函数。这就启发我们可以用样本矩阵作为总体矩的估计量,这种用相应的样本矩的估计方法称为矩估计法

    1.2 例题

    对某个篮球运动员记录其在某一次比赛中投篮命中与否,观测数据如下。

    1101001011101101
    0010101001101101

    编写R语言估计这个篮球运动员投篮的成败比

    #1.2例题
    X <- c(1,1,0,1,0,0,1,0,1,1,1,0,1,1,0,1,0,0,1,0,1,0,1,0,0,1,1,0,1,1,0,1)
    theta <- mean(X)
    h <- theta/(1-theta)
    h

    ​  

    因此得到g(θ)的矩估计值为1.285714


    2.R语言正态总体均值区间评估

    2.1定义

    由于点估计值只是估量值的一个近似值,因而点估计本身既没有反映出这种近似值的精度,既指出用估计值去估计的范围误差有多大,也没有指出这个误差范围有多大的概率包括未知数,这正是区间估计要解决的问题

    2.2方差已知时,求置信区间

    2.2.1自定义函数

    #R语言正态总体均值区间评估(方差已知时,求置信区间)
    #x:样本数据 sigma^2:方差 alpha=1-置信度
    conf <- function(x,sigma,alpha) {
      n <- length(x)
      mean <- mean(x)
      result <- c(mean-sigma*qnorm(1-alpha/2)/sqrt(n),mean+sigma*qnorm(1-alpha/2)/sqrt(n))
      result
    }

    2.2.2例题

    某车间生产的滚珠直径X服从正态分别N(μ,0.6)。现在从某日的产品中抽取6个测得直径如下单位(mm)

      14.6     15.1     14.9     14.8     15.2     15.1

    试求平均直径置信度为95%的置信区间。

    #2.2.2例题
    x <- c(14.6,15.1,14.9,14.8,15.2,15.1)
    sigma <- sqrt(0.6)
    conf(x,sigma,0.05)

     

     所以均值的置信区间为[14.3302,15.5698]

    2.3方差未知时,求置信区间

    2.3.1调用内置函数t.test()

    由于在R语言中有求方差未知时均值置信区间的内置函数t.test(),其调用格式如下:

    t.test(x,y=null,alternative=c("two.sided","less","greater"),mu=0,paired=FLASE,
    var.equal=FLASE,conf.level=0.95,...)

     alternative用于指定所求置信区间的类型;conf.level=0.95置信度为95%

    2.3.2例题

    某糖厂自动包装机包装糖,设各包糖重量服从正态分布N(μ,ε²),某日开工后测得9包糖的重量单位(KG)为99.3,98.7,100.5,101.2,98.3,99.7,99.5,102.1,100.5                             试求μ的置信度为95%的置信区间。

    #2.3.2例题
    x <- c(99.3,98.7,100.5,101.2,98.3,99.7,99.5,102.1,100.5)
    t.test(x,conf.level = 0.95)

     从上述代码中可以看到置信水平为0.95的置信区间为[99.04599,100.90956]             

    这个结果过于繁琐,由于只需要置信区间的结果,可以优化为:

    t.test(x,conf.level = 0.95)$conf.int


    3.R语言单正态总体方差区间评估

    3.1定义

    此时虽然也可以就均值μ是否已知分为两种情况讨论方差的区间估计,但实际中μ已知的情形是极为罕见的,所以只讨论在μ未知的条件下方差ε²的置信区间。

    3.2自定义函数

    #R语言单正态总体方差区间评估
    #n:个数 s2:方差 alpha=1-置信度
    chisq <- function(n,s2,alpha){
      result <- c((n-1)*s2/qchisq(alpha/2,df = n-1,lower.tail = F),(n-1)*s2/qchisq(1-alpha/2,df=n-1,lower.tail=F))
      result
    }

    3.3 例题

    从某车间加工的同类零件中抽取16件,测得零件的平均长度为12.8cm,方差为0.0023.假设零件的长度服从正态分布,试求总体方差的置信区间(置信度为95%)

    #3.3例题
    chisq(16,0.0023,1-0.95)
    

    由运行结果可知总体方差的区间估计为[0.001255075 ,0.005509301]

    4.R语言双正态总体均值差区间评估

    4.1定义

    分为两种双正态总体均值差区间评估方法:两方差均已知时和两方差均未知时

    4.2两方差均已知时,求置信区间

    4.2.1自定义函数

    #R语言双正态总体均值差区间评估(两方差均已知时,求置信区间)
    #x,y :样本数据 conf.level:置信度 sigma1,sigma2:方差
    two.sample.ci <- function(x,y,conf.level,sigma1,sigma2){
      options(digits = 4)
      m = length(x)
      n = length(y)
      xbar=mean(x)-mean(y)
      alpha=1-conf.level
      zstar=qnorm(1-alpha/2)*(sigma1/m+sigma2/n)^(1/2)
      xbar+c(-zstar,+zstar)
    }

    4.2.2例题

    为比较两种农产品的产量,选择18块条件相似的试验田,采用相同的耕作方法做实验,结果播种甲种的8块试验田的单位面积产量和播种乙品种的10块试验田的单位面积产量分别如下表所示

    两种农产品的单位面积产量
    甲品种628 ,583,510,554,612,523,530,615
    乙品种535,433,398,470,567,480,498,560,503,426

    假定每个品种的单位面积产量均服从正态分布,甲品种产量的方差为2140,乙品种产量的方差为3250,试求这两个品种平均面积产量差的置信区间(置信度95%)

    x <- c(628,583,510,554,612,523,530,615)
    y <- c(535,433,398,470,567,480,498,560,503,426)
    sigma1=2140
    sigma2=3250
    two.sample.ci(x,y,0.95,sigma1,sigma2)

    因此两个品种平均面积产量差的置信区间为:[34.67 ,130.08]

    4.3两方差均未知时,求置信区间

    4.3.1调用内置函数t.test()

    如果同求单正态的均值置信区间,在R语言中可以直接利用t.test()求两方差都未知但两均值方差相等的置信区间,并且必须在t.test()中指定选项var.equal=TRUE

    4.3.2例题

    为比较两种农产品的产量,选择18块条件相似的试验田,采用相同的耕作方法做实验,结果播种甲种的8块试验田的单位面积产量和播种乙品种的10块试验田的单位面积产量分别如下表所示

    两种农产品的单位面积产量
    甲品种628 ,583,510,554,612,523,530,615
    乙品种535,433,398,470,567,480,498,560,503,426

    假定每个品种的单位面积产量均服从正态分布,二者方差相等,试求这两个品种平均面积产量差的置信区间(置信度95%)

    #4.3.2例题
    x <- c(628,583,510,554,612,523,530,615)
    y <- c(535,433,398,470,567,480,498,560,503,426)
    t.test(x,y,var.equal = TRUE)

    因此两个品种平均面积产量差的置信区间为[29.47, 135.28]


    5.R语言双正态总体方差比区间估计

    5.1定义

    此时虽然也可以就均值是否已知分两种情况讨论方差的区间估计,但实际中μ已知的情形是极为罕见的,所以只讨论在μ未知的条件下方差ε²的置信区间。

    5.2调用内置函数var.test()

    var.test(x,y,ratio=1,alternative=c("two.sided","less","greater"),conf.level=0.95,...)

    5.3 例题

    甲、乙两台机床分别加工某种轴承,他们加工的轴承的直径分别服从正态分布N(μ1,ε1²)、N(μ2,ε2²),从各自加工的轴承中分别抽取若干个轴承测其直径,结果如下表所示

                              

    总体 样本容量 直径 x(机床甲) 8 20.5,19.8,19.7,20.4,20.1,20.0,19.0,19.9 y(机床乙) 7 20.7,19.8,19.5,20.8,20.4,19.6,20.2

    试求两台机床加工的轴承直径的方差比的0.95的置信区间

    #5.3例题 
    x <- c(20.5,19.8,19.7,20.4,20.1,20.0,19.0,19.9)
    y <- c(20.7,19.8,19.5,20.8,20.4,19.6,20.2)
    var.test(x,y,var.test(x,y,conf.level = 0.95))
    
    

    由上面的运行结果可见两台机床加工的轴承直径的方差比的0.95的置信区间为[0.1393,4.0600]方差比为0.7932


    6.R语言确定样本容量

    6.1定义

    确定样本容量n是抽样中的一个重要问题。样本抽取过少了会丢失样本信息,会导致误差大从而不满足要求;若样本抽取太多,虽然各种信息都包含了,误差也降低了,但同时会增加所需的人力、物理、和费用开销。权衡两者,我们要抽取适当数量的样本。

    6.2总体方差已知时,求样本容量

    6.2.1自定义函数

    #R语言确定样本容量(总体方差已知时,求样本容量)
    # d:允许误差 var:方差 conf.level:置信度
    size.norm1 <- function(d,var,conf.level){
      alpha=1-conf.level
      ((qnorm(1-alpha/2)*var^(1/2))/d)^2
    }

    6.2.2例题

    某地区有10000户家庭,拟抽取一个简单的样本,调查一个月的平均开支,要求置信度为95%,允许最大误差为2。根据经验,家庭开支的方差为500,应抽取多少户进行调查?

    #6.2.2例题
    size.norm1(2,500,conf.level = 0.95)

    由上述代码可知应抽取481户。

    6.3总体方差未知时,求置信区间

    6.3.1自定义函数

    #R语言确定样本容量(总体方差未知)
    #s:标准差 alpha=1-置信度 d:允许误差
    size.norm2 <- function(s,alpha,d){
      t1 <- qt(alpha/2,100,lower.tail = FALSE)
      n1 <- (t1*s/d)^2
      t2 <- qt(alpha/2,n1,lower.tail = FALSE)
      n2 <- (t2*s/d)^2
      while (abs(n2-n1)>0.5) {
        n1 <- (qt(alpha/2,n2,lower.tail = FALSE)*s/d)^2
        n2 <- (qt(alpha/2,n1,lower.tail = FALSE)*s/d)^2
      }
      n2
    }

    6.3.2例题

    某公司生产了一批新商品,产品总体服从正态分布,现在要估计这批产品的平均重量,允许最大误差为2,样本标准差为10,试问置信度99%的情况下要取多少样本?

    #6.3.2例题
    size.norm2(10,0.01,2)

    所以应该取样本170个

    6.4估计比例/概率(P)时样本容量的确定

    6.4.1自定义函数

    #R语言确定样本容量(估计比例/概率(P)时样本容量的确定)
    #d:误差率 p:估计比例 conf.level:置信度
    size.bi <- function(d,p,conf.level){
      alpha=1-conf.level
      ((qnorm(1-alpha/2))/d)^2*p*(1-p)
    }

    6.4.2例题

    某市一所大学历届毕业生就业率为90%,试估计应届毕业生就业率,要求估计误差不超过3%,试问在置信度95%下要抽取应届毕业生多少人?

    #6.4.2例题
    size.bi(0.03,0.9,0.95)

    所以在满足要求置信度在95%的时候应抽取应届毕业生385人才能让误差小于3%

    练习题:

    1.

    高三1、2班的期末数学成绩服从正态分布,分别从1、2班中各抽取12名学生的成绩,如下表所示。假设1班数学成绩的方差是181,2班数学出成绩的方差是214.5

    高三1、2班的期末数学成绩
    班级样本量成绩/分
    11264,63,91,70,92,98,96,83,89,84,61,74
    21287,61,47,89,73,71,86,86,95,91,62,76

    试比较1、2班的成绩的95%的置信区间,成绩方差比的99%置信区间

    #x:样本数据 sigma^2:方差 alpha=1-置信度
    conf <- function(x,sigma,alpha) {
      n <- length(x)
      mean <- mean(x)
      result <- c(mean-sigma*qnorm(1-alpha/2)/sqrt(n),mean+sigma*qnorm(1-alpha/2)/sqrt(n))
      result
    }
    #一班样本数据
    x <- c(64,63,91,70,92,98,96,83,89,84,61,74)
    #二班样本数据
    y <- c(87,61,47,89,73,71,86,86,95,91,62,76)
    #一班成绩置信度95%的置信区间
    conf(x,sqrt(181),1-0.95)
    #二班成绩置信度95%的置信区间
    conf(y,sqrt(214.5),1-0.95)
    
    #R语言双正态总体方差比区间估计
    #x,y:样本数据 conf.level:置信度
    var.test(x,y,conf.level = 0.99)

    所以1班成绩的95%置信区间为[72.80470,88.02863]

    所以2班成绩的95%置信区间为[68.7135 ,85.2865]

    所以成绩方差比的99%置信区间为[0.15858,4.487718]

    所以成绩方差比为0.8436088

    2.

    某研究中心,受托为一大型公司进行客户消费能力调研,需要估计出潜在客户对公司产品的平均消费支出意愿,允许误差为200元,标准差为300元,在90%的置信区间里,该研究机构应该抽取多少个客户?如果置信区间提高到95%、99%时,客户调研数量将发生什么变化?

    #s:标准差 alpha=1-置信度 d:允许误差
    size.norm2 <- function(s,alpha,d){
      t1 <- qt(alpha/2,100,lower.tail = FALSE)
      n1 <- (t1*s/d)^2
      t2 <- qt(alpha/2,n1,lower.tail = FALSE)
      n2 <- (t2*s/d)^2
      while (abs(n2-n1)>0.5) {
        n1 <- (qt(alpha/2,n2,lower.tail = FALSE)*s/d)^2
        n2 <- (qt(alpha/2,n1,lower.tail = FALSE)*s/d)^2
      }
      n2
    }
    #允许误差200,标准差300,90%的置信区间里
    size.norm2(300,0.1,200)
    #允许误差200,标准差300,95%的置信区间里
    size.norm2(300,0.05,200)
    #允许误差200,标准差300,99%的置信区间里
    size.norm2(300,0.01,200)

    所以90%的置信区间里应该调查8人

    所以95%的置信区间里应该调查11人

    所以99%的置信区间里应该调查19人

    展开全文
  • R不是面向对象语言,命名空间的功能不足,所以尽可能的不要使用很多的 .R 文件,这样会给代码的管理带来负担。当然,如果所有内容都放在一个 .R 文件里,代码的可读性及分类可能就差一些。保持一个平衡即可。 ...
  • 如何用R语言做深度学习

    千次阅读 2021-04-07 14:40:26
    感谢RStudio公司开发的keras包,使得R语言可以利用keras深度学习框架来做深度学习,具有简洁,易学,好用等特性。 什么是Keras? Keras是基于Python的深度学习库。 Keras 是一个用 Python 编写的高级神经网络API...
  • 利用R语言进行数据分析1 前言2 问题及解决思路和代码2.1 问题1:逻辑判断生成新变量2.1.1 问题描述2.1.2 规则2.1.3 对应的R语言基础2.1.4 伪代码2.1.5 真正的实现2.1.6 分组计算得结果2.2 问题2:正则提取特征+绘制...
  • r语言抓取网页数据by Hiren Patel 希伦·帕特尔(Hiren Patel) 使用R进行网页抓取的简介 (An introduction to web scraping using R) With the e-commerce boom, businesses have gone online. Customers, too, ...
  • R语言中的偏最小二乘PLS回归算法

    千次阅读 2020-12-19 14:57:26
    我们试图识别客户对各种产品的偏好,传统的回归是不够的,因为数据集的高度分量以及变量的多重共线性。PLS是处理这些有问题的数据集的强大而有效的方法。主成分回归是我们将要探索的一种选择,但在进行背景研究时,...
  • R语言实现46种距离算法

    千次阅读 2020-12-24 14:01:22
    R语言作为统计学一门语言,一直在小众领域闪耀着光芒。直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器。随着越来越多的工程背景的人的加入,R语言的社区在迅速扩大成长。现在已不仅仅是统计领域,教育...
  • r和rstudioIn this post I will discuss two Python Integrated Development Environments (IDE);... Both IDEs might be useful for researchers used to work with R and RStudio (a very good and ...
  • R实现kmeans(数据产品版) 聚类算法中经典算法kmeans,是根据距离将数据集划分为不同的类别。 #查看kmeans方法 help(kmeans) #kmeans(x,centers,iter.max,nstart=1,algorithm=c(...)) #x-数据集,center-聚类个数...
  • 使用R语言进行一元回归

    千次阅读 2017-08-30 17:13:07
    使用R语言进行一元回归我们通过一个例子来介绍通过R语言进行一元回归的方法例子:为研究某实验过程中,温度x(℃)对产品得率(%)的影响,测得数据如下: 温度x(℃) 100 110 120 130 140 150 160 170 ...
  • R语言3.3

    千次阅读 2020-03-03 14:03:09
    昨天头疼的不行所以学的很少,今天要多学一些把昨天的补回来,因为没见到韩先生所以心情没有昨天帅气了!...R中输入X=read.table(‘clipboard’,header=T);X 这是我最喜欢的一种数据输入方式。 直观分...
  • 广大R语言爱好者借助强大工具RHadoop,可以在大数据领域大展拳脚,这对R语言程序员来说无疑是个喜讯。 R是GNU的一个开源工具,具有S语言血统,擅长统计计算和统计制图。由Revolution Analytics发起的一个开源...
  • 华视100R身份证阅读器...当你购买的华视100R产品出现了上面问题,只需要来本站下载安装驱动软件即可解决!产品介绍CVR-100R快速证件通支持第一、二代身份证、驾驶证、护照、军官证、港澳通行证等多种证件,欢迎下载体验
  • 准备好为自己或其他人谈论您最喜欢的物理/数字产品,并进行适当的“产品拆解”。 使用来自 Lewis Lin 的,迄今为止最有用的心智模型。 了解用于组织您的想法和答案的“SAR”(或 STAR 或 SPAR 或类似)结构和...
  • R实现KMeans聚类算法教程

    千次阅读 2022-03-14 19:16:18
    本文和你一起学习无监督机器学习算法 ———— kmeans算法,并在R中给详细的实现示例和步骤。 什么是k-means聚类算法 聚类是从数据集中对观测值进行聚类的机器学习方法。它的目标是聚类相似观测值,不同类别之间...
  • 前面已经介绍过R语言读取excel的方法了,当然读取数据来说,个人还是推荐csv或txt存储(针对小数据量)。大数据量的数据的话建议还是用数据库,此外也可以考虑data.table包读取,这个包也是个神包,后面学习完可能来...
  • R语言作图——Radar chart(雷达图)

    千次阅读 2019-05-28 21:43:58
    也经常用来评估学生的成绩和产品的性能。 在生信领域,我们也可以用来比较评估样品的基因表达情况啦。 作图数据如下: 画出来的效果图如下: 作图方法: Step1. 绘图数据的准备 首先还是要把你想要绘图的数据调.....
  • R语言数据分析】基础代码查询表

    千次阅读 2020-05-10 13:25:12
    由于工作的需要,我已经学习了几天的R语言了,我的工作是数据分析,有时候会用到一些计算机语言,比如Python,SQL,SAS和R语言,因为不同公司要求也是不一样的,还是那句话人为刀俎我为鱼肉,学习没有亏吃。...
  • R语言面积图 area chart

    千次阅读 2020-03-01 18:59:33
    假设是两种东西产品A和产品B的一个月销量。 newData2019(c(1:31),tempData2019[,2]) names(newData2019) ("date","sales") newData2020(c(1:31),tempData2020[,2]) names(newData2020) ("date","sales") newData ...
  • const.dir,const.rhs) ##显示x1和x2的最佳值 ## [1] 45 75 ##在最佳点检查目标函数的值 ## [1] 2625 从上面的输出中,我们可以看到该公司应该生产45个产品A和75个产品B,以获得2625元的销售额。 在建立目标函数和...
  • R语言简介

    万次阅读 2016-10-15 17:03:02
    R语言简介 1什么是R语言 2R语言能干什么 3R语言有什么优势 4R语言编程工具 5R语言学习路线图 6R语言参考资料  R语言是主要用于统计分析、绘图的语言和操作环境。 R本来是由来自新西兰奥克兰大学的Ross Ihaka
  • 文章目录 前言 1 距离判别 1.1 双群体 1.1.1 理论推导 1.1.2 R语言实现 1.1.3 实例分析 1.2 多群体 1.2.1 理论推导 1.2.2 R语言实现 1.2.3 实例分析 2 贝叶斯判别 2.1 双群体 2.1.1 理论推导 2.1.2 R语言实现 2.1.3 ...
  • R语言学习路线图

    2013-11-21 17:50:27
    R语言学习路线图,非常详细的介绍,包括学习路线,使用书籍等
  • R语言学习手记 (1)

    千次阅读 2019-03-13 12:03:08
    经管的会计和财管都会学数据统计与分析R语言这么课,加上我也有点兴趣,就提前选了这门课,以下的笔记由老师上课的PPT、《R语言编程艺术》和《R语言数据科学》总结而来,希望为大家提供学习R语言的借鉴。
  • ★这里首先总体介绍一些统计学常用的R语言中的分布函数: 正态分布函数:norm() 泊松分布函数:pois() 指数分布函数:exp() Gamma分布函数:gamma() 均匀分布函数:unif() ★二项分布函数:binom() ---&...
  • rstudio 关联r 背景 (Background) Retailers typically have a wealth of customer transaction data which consists of the type of items purchased by a customer, their value and the date they were purchased...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 103,345
精华内容 41,338
关键字:

产品上面的r