R语言

R语言的精度和时间效率比较(简单版)

China☆狼群 提交于 2020-05-02 17:20:51
R语言的最大数值   在R语言里面,所能计算的最大数值可以用下面的方法获得:    ### R可计算最大数值 .Machine 在编程的时候注意不要超过这个数值。当然,普通情况下也不可能超过的。 R语言的最大精度   R语言的舍入误差要比python好不少,但是也还是有的。    ###最小非零整数 2^-1074 ###最大数 2^1023 ###机器误差 2^-52 + 1 - 1 2^-53 + 1 - 1 ###比较两个数字 all.equal(2^-12 + 1,2^-13 + 1,tolerance = 1e-7)   上面所谓的机器误差就是不可避免的最小误差,在做运算时会被舍弃。至于在什么情况下舍弃,取决于两个数之间的误差是均方根,系统默认的均方根是10^-8,小于这个值的时候R就会默认它们相等。使用all.equal函数可以自己设定均方根的阈值,即tolerance. R语言的时间消耗 ###创建向量会更浪费时间 n <- 1e6 x <- rep(0,n) system.time(for(i in 1:n) x[i] <- i^2) x <- c() system.time(for(i in 1:n) x[i] <- i^2)      可以看到时间差距还是很大的。 ###矩阵的列求和 ###全部使用循环,不使用sum函数 Bmatrix <- matrix(1

R语言 线性回归分析实例 《回归分析与线性统计模型》page72

…衆ロ難τιáo~ 提交于 2020-05-02 17:16:10
y,X1,X2,X3 分别表示第 t 年各项税收收入(亿元),某国生产总值GDP(亿元),财政支出(亿元)和商品零售价格指数(%). (1) 建立线性模型 : ① 自己编写函数: > library(openxlsx) > data = read.xlsx("22_data.xlsx",sheet = 1) > x = data[,-c(1,2)] > x = cbind(rep(1,17),x) > x_mat = as.matrix(x) > y =matrix(data[,2],ncol = 1) > res = solve(t(x_mat)%*%x_mat)%*%t(x_mat)%*%y > res [,1] rep(1, 17) 19412.8597818 X1 0.2679605 X2 -0.2874013 X3 -297.3653736 所以各参数的估计值分别为 ② lm函数 > lm(y~x_mat) Call: lm(formula = y ~ x_mat) Coefficients: (Intercept) x_matrep(1, 17) x_matX1 19412.859781545 NA 0.267960511 x_matX2 x_matX3 -0.287401287 -297.365373557 于是各参数的估计值分别为 这两个方法的结果是一样的。 (2

R语言函数与模型学习笔记:残差相关性零均值检验及跨期相关系数(图)

我只是一个虾纸丫 提交于 2020-05-02 17:15:54
R语言函数与模型学习笔记:残差相关性零均值检验及跨期相关系数(图) 使用极大似然估计模型参数的假设包括:残差正态性、包含截距时的零均值、以及联合正态分布。如果我们更进一步假设待估计方程矩阵的方差-协方差矩阵为对称矩阵,那么就需要进行残差独立性检验。正态性检验方法很多,包括偏度、峰度和样本分布等参数检验,在normtest、nortest和normwhn包中有许多进行进行正态检验的方法,且函数使用简单。我们今天推送的代码就是为了方便解决残差零均值和相关性检验的——cor.test()函数不能直接对残差矩阵进行。因此我们今天提供这样一个函数,可以将其直接嵌套进ML估计的模型之中,对残差矩阵进行检验。 1. 原始代码 residual.test=function(x){ library(psych) library(psych) colnames(x)=c(1:ncol(x)) rownames(x)=c(1:nrow(x)) cor.test.hommel=corr.test(x,adjust="hommel") cor.test.BH=corr.test(x,adjust="BH") residual.zero.p=c(NA) for(i in 1:ncol(x)){ residual.zero.p[i]=t.test(x[,i])$p.value } result=list(cor

R语言(自定义函数、循环语句、管道函数)

寵の児 提交于 2020-05-02 16:12:01
学习R语言半年多了,以前比较注重统计方法上的学习,但是最近感觉一些基础知识也很重要。去年的参考资料是《R语言实战》,今年主要是看视频。推荐网易云课堂里的教程,很多资料都是很良心的~ 目前学习的是:R语言数据分析挖掘实战,讲的很全,从基础知识到R语言机器学习的应用。 (我是先从后面机器学习开始学的,发现老师在里面用到很多自定义函数、循环,以前在书上看到这些也没有实际操作过,所以赶紧看前面的视频补补课) 今天的例子都很简单啦... 1、while循环 s<-1 i<-0 while(i<=100) { s<-s+i i<-i+1 } s while ( 1 /prod( 1 :i)- 1 /prod( 1 :(i+ 1 ))> 0.001 ) { print(i) e <-e+ 1 /prod( 1 :i) i <-i+ 1 } e #添加print(i),可以看出具体的i值 2、for循环 a<-c( 1 , 2 , 3 , 4 , 1 ) for (i in c( 1 :length(a))) { print(i) } #打印序号 a <-c( 1 , 2 , 3 , 4 , 1 ) for (i in a) { print(a[i]) } #打印元素 #or a <-c( 1 , 2 , 3 , 4 , 1 ) for (i in a) { print(i) } mat<- as

残差的正态性检验——概率图和QQ-plot图

天大地大妈咪最大 提交于 2020-05-02 16:09:14
数据的正态性检验 检查数据是否满足正态分布,一个很直观的方法是考察数据的正态概率图和QQ图。在MATLAB中可以很容易实现。 正态概率图(normal probability plot) 用于检查一组数据是否服从正态分布。是实数与正态分布数据之间函数关系的散点图。如果这组实数服从正态分布,正态概率图将是一条直线。通常,概率图也可以用于确定一组数据是否服从任一已知分布,如二项分布或泊松分布。 概率图展示的是样本的累积频率分布与理论正态分布的累积概率分布之间的关系 。如果图中各点为直线或接近直线,则样本的正态分布假设可以接受。 MATLAB实现 normplot(x) QQ-plot图 同理,任意两个数据集都可以通过比较来判断是否服从同一分布。计算每个分布的分位数。一个数据集对应x轴,另一个对应y轴。做一条45度参考线,如果两个数据集数据来自同一分布,则这些点会落在参照线附近。 在matlab中画QQ图使用的函数就是qqplot qqplot(x) The analysis of the AR(1) model residuals (Figure 71) shows that the residuals are normally distributed , zero centered and with a standard deviation equal to 0.764 °C.

R语言的一些基本函数用法

孤街醉人 提交于 2020-05-02 14:57:19
由于以前学习的R全还给老师了,近期从新从头学习R语言,这是最近get的一些相关函数用法,对此做一个总结回顾 ** match 作用就是可以用来筛选、匹配。 实际意义可以看 例如: > x=c(1,3,7,4) > y=c(1,3,8,9,0) > match(x,y) [1] 1 2 NA NA 返回x向量在y向量中所处的位置,x向量元素不存在y向量中的返回y 可进一步延申为数据不同表中关于字段的一个处理 如: data1 $y1 = data2 $y11 [ match ( data $a1 , data2 $a1 ) ] table1 y1 a1 null string table2 a1 y11 string string 意思为:表1(data1)的y1字段目前是空的, 我们可通过表1的a1字段去匹配到表2的a2字段,然后进一步找到每个y1字段对应的值 类似的一个用法为%in% 其含义为x在y中是否存在,y可以是表中字段也可以是向量等 > x = c ( 1 , 3 , 7 , 4 ) > y = c ( 1 , 3 , 8 , 9 , 0 ) > x % in % y [ 1 ] TRUE TRUE FALSE FALSE 与match函数的用法差异在于,%in%返回的是布尔值即TRUE和FALSE 而match则是返回位置 which()函数的用法 用法which

R语言实战(中文完整版)pdf

僤鯓⒐⒋嵵緔 提交于 2020-05-02 10:57:57
下载地址: 网盘下载 内容简介 · · · · · · 数据时代已经到来,但数据分析、数据挖掘人才却十分短缺。由于“大数据”对每个领域的决定性影响, 相对于经验和直觉,在商业、经济及其他领域中基于数据和分析去发现问题并作出科学、客观的决策越来越重要。开源软件R是世界上最流行的数据分析、统计计算及制图语言,几乎能够完成任何数据处理任务,可安装并运行于所有主流平台,为我们提供了成千上万的专业模块和实用工具,是从大数据中获取有用信息的绝佳工具。  本书从解决实际问题入手,尽量跳脱统计学的理论阐述来讨论R语言及其应用,讲解清晰透澈,极具实用性。作者不仅高度概括了R语言的强大功能、展示了各种实用的统计示例,而且对于难以用传统方法分析的凌乱、不完整和非正态的数据也给出了完备的处理方法。通读本书,你将全面掌握使用R语言进行数据分析、数据挖掘的技巧,并领略大量探索和展示数据的图形功能,从而更加高效地进行分析与沟通。想要成为倍受高科技企业追捧的、炙手可热的数据分析师吗?想要科学分析数据并正确决策吗?不妨从本书开始,挑战大数据,用R开始炫酷的数据统计与分析吧!  本书内容:  R安装与操作 数据导入/导出及格式化双变量关系的描述性分析回归分析 模型适用性的评价方法以及结果的可视化 用图形实现变量关系的可视化 在给定置信度的前提下确定样本量 高级统计分析方法和高级绘图 作者简介 · · · · · ·

r语言代写如何进行两组独立样本秩和检验

心已入冬 提交于 2020-05-01 14:38:28
原文链接 安装所需的包 wants <- c("coin") has <- wants %in% rownames(installed.packages()) if(any(!has)) install.packages(wants[!has])> 一个样本 测试 set.seed(123) medH0 <- 30 DV <- sample(0:100, 20, replace=TRUE) DV <- DV[DV != medH0] N <- length(DV) (obs <- sum(DV > medH0)) [1] 15 (pGreater <- 1-pbinom(obs-1, N, 0.5)) [1] 0 .02069 (pTwoSided <- 2 * pGreater) [1] 0 .04139 威尔科克森排检验 IQ <- c(99, 131, 118, 112, 128, 136, 120, 107, 134, 122) medH0 <- 110 wilcox.test(IQ, alternative="greater", mu=medH0, conf.int=TRUE) Wilcoxon signed rank test data: IQ V = 48, p- value = 0.01855 alternative hypothesis: true

r语言代写如何进行两组独立样本秩和检验3

穿精又带淫゛_ 提交于 2020-05-01 14:37:58
所述 配对双样品的Wilcoxon检验 一种的非参数检验,其可以被用于比较样品的两个独立数据。 本文介绍如何在ř中计算两个样本的秩检验。 可视化数据并在ř中计算的Wilcoxon测试 ř函数用于计算的秩检验 为了执行两个样本的Wilcoxon检验,比较两个独立样本(x&y)的 均值 ,R函数 wilcox.test ()可以如下使用: wilcox.test(x, y, alternative = "two.sided") x,y :数字向量 替代方案 :替代假设允许值是“two.sided”(默认值),“更大”或“更少”之一。 将数据导入R. 准备数据 将数据保存 在外部的.TXT选项卡或的的.csv文件中 将您的数据导入ř 如下: # If .txt tab file, use this my_data <- read.delim( file.choose()) # Or, if .csv file, use this my_data <- read.csv( file.choose()) 在这里,我们将使用一个示例数据集,其中包含18个人(9名女性和9名男性)的权重: # Data in two numeric vectors women_weight <- c( 38.9, 61.2, 73.3, 21.8, 63.4, 64.6, 48.4, 48.8, 48.5)

R语言代写Wilcoxon符号秩检验与配对学生t检验

穿精又带淫゛_ 提交于 2020-05-01 11:23:42
在这篇文章中,我们将探索比较两组依赖(即成对)定量数据的测试:Wilcoxon符号秩检验和配对学生t检验。这些测试之间的关键区别在于Wilcoxon的测试是非参数测试,而t测试是参数测试。在下文中,我们将探讨这种差异的后果。 睡眠数据集 我们来考虑睡眠数据集。数据集通过提供服用药物后睡眠时间与基线相比的变化来对比两种催眠药物(即安眠药)的效果: ## extra group ID ## 1 0.7 1 1 ## 2 -1.6 1 2 ## 3 -0.2 1 3 ## 4 -1.2 1 4 ## 5 -0.1 1 5 ## 6 3.4 1 6 ## 7 3.7 1 7 ## 8 0.8 1 8 ## 9 0.0 1 9 ## 10 2.0 1 10 ## 11 1.9 2 1 ## 12 0.8 2 2 ## 13 1.1 2 3 ## 14 0.1 2 4 ## 15 -0.1 2 5 ## 16 4.4 2 6 ## 17 5.5 2 7 ## 18 1.6 2 8 ## 19 4.6 2 9 ## 20 3.4 2 10 extra 表示与基线测量相比睡眠中的增加/减少(正/负值), 组 表示药物, ID 表示患者ID。为了更清楚,我将 组 重命名为 药物 : >colnames(sleep)[which(colnames(sleep) == 注意