标签: normal-distribution

将归一化变量转换回非归一化值

我建立了kmeans集群,在该集群中我首先对R中的几个变量进行了规范化。该模型为我提供了集群中心,但是它们显然处于规范化状态(例如收入中心为-1.6)。

我想将该-1.6转换回非标准化值,以便使其具有实际意义(例如收入为42,000)。

现在,我可以将z分数分别转换回一个值,但是有没有办法使用R函数对几个标准化变量进行处理呢?

我可以从pnorm()开始以获取百分比-但在归一化之前,我需要寻找更多可以应用于原始数据帧的内容。

r normal-distribution

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

哪种分布更适合数据?

fitdistr在R中用来选择最适合我数据的分布.

我尝试过Cauchy,Weibull,normal和Gamma分布.

对数似然值为:Cauchy为-329.8492,Gamma为-277.4931,正常为-327.7622,Weibull为-279.0352.

哪一个是最好的?具有最大值的那个(即Gamma)或具有最大abs的那个(即Cauchy)?

statistics r normal-distribution gamma-distribution weibull

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

MATLAB的normrnd为相同的设置生成不同的值

我不知道如何描述这个问题所以我这样称呼它.如果您有任何更好的想法,请修复它.我提前道歉.

当我使用MATLAB的普通随机生成器编写代码时,我的问题出现了.

clear all; 
clc; 
close all;
rng(0,'twister');

sigma=50; 
mean(normrnd(10,sigma,20,1))

n=20;
mean(normrnd(10,sigma,n,1))
Run Code Online (Sandbox Code Playgroud)

当我通过将生成器设置为Mersenne Twister并将种子设置为0来控制它时生成20个正态分布的数字,我可以使用上面提供的代码.我可以在normrnd函数中编写样本大小,或者我可以在函数中定义它,但是当你运行它并找到两种方式生成数字的方法时,你也会发布它们差异很大.这样的第一个均值是43.2294,第二个均值是7.1280.有没有人对这种情况有任何想法?

random matlab normal-distribution mersenne-twister

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

如何从正常分布中采样限制到一定的间隔,C++实现?

使用此功能,我可以从正态分布中进行采样.我想知道如何从限制到特定间隔的正态分布中有效地采样[a,b].我的琐碎方法是从正态分布中采样,然后保留值,如果它属于某个间隔,否则重新采样.但是在我得到合适的值之前可能会丢弃许多值.

我也可以使用三角形分布近似正态分布,但我认为这不够准确.

我也可以尝试处理累积函数,但可能这也会很慢.有没有有效的方法来解决这个问题?

谢谢

c++ distribution normal-distribution

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

正态分布的对数似然

我试图使用最小化函数形式 scipy 从正态分布中找到 mu 和 sigma 的最大似然估计。然而,最小化返回平均值的预期值,但西格玛的估计值与真实西格玛相差甚远。

我定义函数 llnorm 返回正态分布的负对数似然,然后从均值 150 和标准差 10 的正态分布创建随机样本,然后使用优化我试图找到 MLE。

import numpy as np
import math
import scipy.optimize as optimize

def llnorm(par, data):
    n = len(data)
    mu, sigma = par
    ll = -np.sum(-n/2 * math.log(2*math.pi*(sigma**2)) - ((data-mu)**2)/(2 * (sigma**2)))
    return ll

data = 10 * np.random.randn(100) + 150

result = optimize.minimize(llnorm, [150,10], args = (data))
Run Code Online (Sandbox Code Playgroud)

即使数据均值接近 150 并且标准差接近 10,优化返回的估计 sigma 值要小得多(接近 0)。

python numpy normal-distribution

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

在 R 中生成范围为 [1, 3] 的正态分布随机变量

我想生成一个范围为 [1, 3] 的正态分布随机变量。

具体来说,我尝试了以下 R 代码:

x1 <- runif(100, 1, 2)
x2 <- rnorm(100, 0, 0.3)

V <- 1 + x1 + x2
Run Code Online (Sandbox Code Playgroud)

然后,V服从正态分布(以 为条件x1)并且大致集中在 [1, 3] 上。

但是,我想让V范围为 [1, 3]。也就是说,所有元素都应该在 [1, 3] 中,而不是粗略地在 [1, 3] 中:

min(V)
[1] 1
max(V)
[1] 3
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么办。有完成这项任务的技术吗?

r normal-distribution

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

如何在特定的时间间隔内生成正态分布的随机数?

我想在区间[-50,50]中生成100个正态分布的随机数.但是在下面的代码中,生成的随机数范围是[-50,50].

n <- rnorm(100, -50,50)
plot(n)
Run Code Online (Sandbox Code Playgroud)

random r normal-distribution

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

方便的方法来找到r中函数的导数?

有没有一种方便的方法可以在r中找到(正常密度)函数的导数?

r normal-distribution

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

如何在r中创建一个正态分布的矩阵?

我希望像素网格中填充正态分布的值,如下图所示

在此输入图像描述

有谁知道如何在R中这样做?

statistics r normal-distribution matrix

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