小编Gle*_*n_b的帖子

R的ASCII绘图函数

为了访问我的服务器,我被迫使用没有X窗口的旧文本终端应用程序.我要做的最好的事情是emacs/ESS.

通常,我希望制作直方图和散点图等基本图,而不必经历将文件传输到带图形显示的计算机的麻烦.

是否有基于文本终端的R图形库?

graphics text r data-visualization

14
推荐指数
1
解决办法
2677
查看次数

在R中"添加"两个大表的简单方法?

是否有一种简单的方法可以在R中的两个大表中为每个类别添加计数?

...表中并不存在完全相同的值(尽管它们大多会重叠):

我想要做的一个小例子.设置一些数据:

  x1 <- c(5, 3, 3, 6, 3, 3, 5, 5, 11, 2, 4, 9, 3, 5, 8, 2, 8, 5, 4, 8)
  x2 <- c(6, 10, 9, 17, 6, 7, 8, 11, 5, 12, 14, 5, 11, 7, 7)

  table(x1)
x1
 2  3  4  5  6  8  9 11 
 2  5  2  5  1  3  1  1 

 table(x2)
x2
 5  6  7  8  9 10 11 12 14 17 
 2  2  3  1  1  1 …
Run Code Online (Sandbox Code Playgroud)

aggregate r

8
推荐指数
1
解决办法
147
查看次数

单变量异常值检测

这次我不会像以前在我的一个问题中那样直接询问如何检测异常值.我确实阅读了一些与此主题相关的帖子,但没有得到我需要的内容.我有一组值,如下所示:

y<-c(0.59, 0.61, 0.59, 1.55, 1.33, 3.50, 1.00, 1.22, 2.50, 3.00, 3.79, 3.98, 4.33, 4.45, 4.59, 4.72, 4.82, 4.90, 4.96, 7.92, 5.01, 5.01, 4.94, 5.05, 5.04, 5.03, 5.06, 5.10, 5.04, 5.06, 7.77, 5.07, 5.08, 5.08, 5.12, 5.12, 5.08, 5.17, 5.18)
Run Code Online (Sandbox Code Playgroud)

现在,大多数研究人员都表示异常检测过程不仅取决于数据,还取决于背景.我使用了R中的几个包,如异常值(grubbs test),extremevalues,mvoutlier(pcout方法),但无法找到使用它们的最佳方法.在这种情况下(取决于我的要求),7.77(第31号视网膜),7.92(20视点中的视点)和3.50(视图第6组)是异常值.使用异常值包的grubbs测试我可以检测7.77和7.92作为异常值但不是3.50.我不知道我是否可以在这里发布我的数据图,但是在查看了图或分布上的数据趋势之后,观察No 6将是一个明显的异常值.

我试图将非线性模型拟合到这些数据,但由于这些异常值,我找不到最合适的(最佳拟合不是唯一的要求),无论如何我需要检测这些异常值,因为我将适合单独的这些异常值的模型.

我的问题很简单.我是否可以通过一些标准包检测这3个异常值?或者如何使用我的非线性生成模型来帮助检测这些异常值?

最好的祝福

沙赫扎德

在此输入图像描述

statistics regression r outliers

7
推荐指数
2
解决办法
3280
查看次数

R中非线性最小二乘内的样条

考虑R中的非线性最小二乘模型,例如以下形式:

 y ~ theta / ( 1 + exp( -( alpha + beta * x) ) )
Run Code Online (Sandbox Code Playgroud)

(我的真正的问题有几个变量,外部函数不是逻辑但更多涉及;这个更简单,但我想如果我能做到这一点,我的情况应该几乎立即跟随)

我想用(例如)自然三次样条替换术语"alpha + beta*x".

这里有一些代码用于在逻辑内部创建一些非线性函数的示例数据:

set.seed(438572L)
x <- seq(1,10,by=.25)
y <- 8.6/(1+exp( -(-3+x/4.4+sqrt(x*1.1)*(1.-sin(1.+x/2.9))) )) + rnorm(x, s=0.2 )
Run Code Online (Sandbox Code Playgroud)

如果我在lm中不需要逻辑,我可以轻松地用样条项替换线性项; 所以线性模型是这样的:

 lm( y ~ x ) 
Run Code Online (Sandbox Code Playgroud)

然后成为

 library("splines")
 lm( y ~ ns( x, df = 5 ) )
Run Code Online (Sandbox Code Playgroud)

生成拟合值很简单,并借助于(例如)rms包得到预测值似乎很简单.

实际上,将原始数据与基于lm的样条拟合拟合并不是太糟糕,但我有理由在逻辑函数中需要它(或者更确切地说,在我的问题中等效).

nls的问题是我需要为所有参数提供名称(我很高兴他们称之为(b1,...,b5)为一个样条拟合(并说c1,...,c6为另一个变量) - 我需要能够制作其中的几个).

是否有一种合理的方法来生成nls的相应公式,以便我可以用样条函数替换非线性函数内的线性项?

我能想到的唯一方法就是可以做到这一点有点尴尬和笨重,如果不编写一大堆代码就不能很好地概括.

(编辑以供澄清)对于这个小问题,我当然可以手工完成 - 写出由ns生成的矩阵中每个变量的内积的表达式,乘以参数的向量.但是,我必须为每个其他变量中的每个样条再次逐个编写整个项目,并且每次我更改任何样条曲线中的df时再次,并且如果我想使用cs而不是ns,则再次.然后,当我想尝试做一些预测(/插值)时,我们会得到一系列新的问题需要处理.我需要一遍又一遍地继续这样做,并且可能需要大量的结和几个变量,以便在分析后进行分析 - 我想知道是否有一种比写出每个单独术语更简洁,更简单的方法,无需编写大量代码.我可以看到一个相当牛逼的方式,这将涉及到相当多的代码,但是作为R,我怀疑有更简洁的方式(或更可能是3或4个更简洁的方式)只是躲避我.因此问题.

我以为我曾经看到有人在过去以相当不错的方式做过这样的事情,但对于我的生活,我现在找不到它; 我已经尝试了很多次来找到它.

[更具体地说,我通常希望能够尝试适合每个变量中的几个不同样条曲线 - 尝试几种可能性 - 以便看看我是否能找到一个简单的模型,但仍然适合这个目的是足够的(噪音真的非常低;合适的偏差可以达到很好的平滑效果,但只能达到一定程度).它更像是"找到一个漂亮的,可解释的,但足够的拟合函数",而不是任何接近推理和数据挖掘的东西都不是这个问题的真正问题.

或者,如果这比gnm或ASSIST或其他包装更容易,那将是有用的知识,但是关于如何继续上述玩具问题的一些指示将有所帮助.

r spline nonlinear-functions least-squares

5
推荐指数
1
解决办法
1230
查看次数

函数y = at ^ b*exp(-ct)是否有名字?可以线性化吗?我怎样估计a,b,c?

我试图拟合一个非线性模型,但在网上找不到任何好的例子.

这个功能有名字吗?

可以线性化吗?

我试图估计参数a,b以及c随机效应g(如组中)作为时间的函数t,如下所示.我可以在nls没有随机效果的情况下使用模型,但是在模型收敛时遇到了麻烦.建议欢迎(最好在R内,但任何合适的包装都可以)?

## time, repeated 16 times for 4 replicates from each of 4 groups  
t <- rep(1:20, 16)
## g, group
g <- rep(1:4, each = 80)

## starting to create an example dataset, 
## to see if I can recover known parameters
a <- rep(c(3.5, 4, 4.1, 5), each = 80)
b <- rep(c(1.1, 1.4, 1.8, 2.5), each = 80)
c <- rep(c(0.125, 0.25), …
Run Code Online (Sandbox Code Playgroud)

r nlme

5
推荐指数
1
解决办法
704
查看次数

如何从R中的数据框创建直方图

我想从数据框中创建直方图,但是每次使用代码时都会出错'x' must be numeric

    df <- data.frame(col1 = c(10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120),
    col2 = c(10, 21, 31, 41, 51, 61, 72, 82, 92, 104, 114, 134))

    hist(df)
Run Code Online (Sandbox Code Playgroud)

r histogram

5
推荐指数
1
解决办法
2万
查看次数

如何从线性模型中创建r的置信区间?

我想创建一个y vs x的线性模型,并使用它来找到给定x的观测值的y的置信区间.

所以我创建了一些样本:

x=rnorm(100,2)
y=rnorm(100,2)
Run Code Online (Sandbox Code Playgroud)

并创建了线性模型:

bbbb=lm(y~x)
Run Code Online (Sandbox Code Playgroud)

但是,当我使用预测来创建置信区间时,它给出了一系列置信区间而不是一个置信区间?

predict(bbbb,x=2,interval="confidence")
Run Code Online (Sandbox Code Playgroud)

收益:

...
51  2.188294 1.949615 2.426973
52  2.189329 1.932474 2.446183
53  2.176816 1.950111 2.403521
54  2.183961 1.998136 2.369786
...
Run Code Online (Sandbox Code Playgroud)

当x = 2时,如何使y返回一个置信区间?

regression r confidence-interval

0
推荐指数
1
解决办法
150
查看次数

R循环中的变量作为函数的结果

我在将文件名作为R中的循环中的变量处理时遇到问题

files <- list.files(pattern = "*.tab",full.name=T)
for (a in files) { aname <- strsplit(basename(a), "\\.")[[1]][1]
                   aname <- read.table(a,header=TRUE, sep="\t",comment.char="")
                }
Run Code Online (Sandbox Code Playgroud)

它只生成一个对象:aname如果我使用以下内容:

for (a in files) { c(strsplit(basename(a), "\\.")[[1]][1]) <- read.table(a,header=TRUE,
                        sep="\t",comment.char="")
                }
Run Code Online (Sandbox Code Playgroud)

它产生:找不到函数"c < - ".但如果我这样做

for (a in files) { aname <- strsplit(basename(a), "\\.")[[1]][1]
                   print(aname)
                }
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,输出是没有扩展名的文件列表.所以,问题是:如何使函数的结果成为变量名?谢谢!

loops r

-1
推荐指数
1
解决办法
173
查看次数