'R Error: Wasn't able to determine range of domain
I am working with the R programming language.
I randomly generated the following data :
x1 = rnorm(1,5,5)
x2 = rnorm(1,5,5)
x3 = rnorm(1,5,5)
x4 = rnorm(1,5,5)
x5 = rnorm(1,5,5)
x6 = rnorm(1,5,5)
x7 = rnorm(1,5,5)
x8 = rnorm(1,5,5)
x9 = rnorm(1,5,5)
x10 = rnorm(1,5,5)
x11 = rnorm(1,5,5)
x12 = rnorm(1,5,5)
x13 = rnorm(1,5,5)
x14 = rnorm(1,5,5)
x15 = rnorm(1,5,5)
x16 = rnorm(1,5,5)
x17 = rnorm(1,5,5)
x18 = rnorm(1,5,5)
x19 = rnorm(1,5,5)
x20 = rnorm(1,5,5)
Then I defined this function (Likelihood of a Normal Distribution):
my_function <- function(mu,sigma) {
a = log((1/sqrt(2*pi*sigma^2)) * (exp((x1-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x2-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x3-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x4-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x5-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x6-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x7-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x8-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x9-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x10-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x11-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x12-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x13-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x14-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x15-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x16-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x17-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x18-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x19-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x20-mu)/sigma)^2))
}
However, the problem happens when I try to plot it:
library(plotly)
input_1 <- seq(-100, 100,1)
input_2 <- seq(-100, 100,1)
z <- outer(input_1, input_2, my_function)
plot_ly(x = input_1, y = input_2, z = z) %>% add_surface()
The following error is produced:
Error in scales::col_numeric(pal, rng, na.color = na.color) :
Wasn't able to determine range of domain
Can someone please show me why this error is coming and what can I do to fix this problem?
Solution 1:[1]
So your problem is pathological in two ways:
- a negative sigma is a problem
- a zero-valued sigma is a problem
So here is my updated code:
my_function <- function(mu,sigma) {
a = log((1/sqrt(2*pi*sigma^2)) * (exp((x1-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x2-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x3-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x4-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x5-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x6-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x7-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x8-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x9-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x10-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x11-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x12-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x13-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x14-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x15-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x16-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x17-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x18-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x19-mu)/sigma)^2)) +
log((1/sqrt(2*pi*sigma^2)) * (exp((x20-mu)/sigma)^2))
}
library(plotly)
x1 = rnorm(1,5,5)
x2 = rnorm(1,5,5)
x3 = rnorm(1,5,5)
x4 = rnorm(1,5,5)
x5 = rnorm(1,5,5)
x6 = rnorm(1,5,5)
x7 = rnorm(1,5,5)
x8 = rnorm(1,5,5)
x9 = rnorm(1,5,5)
x10 = rnorm(1,5,5)
x11 = rnorm(1,5,5)
x12 = rnorm(1,5,5)
x13 = rnorm(1,5,5)
x14 = rnorm(1,5,5)
x15 = rnorm(1,5,5)
x16 = rnorm(1,5,5)
x17 = rnorm(1,5,5)
x18 = rnorm(1,5,5)
x19 = rnorm(1,5,5)
x20 = rnorm(1,5,5)
input_1 <- seq(-100, 100,1)
input_2 <- seq(1, 100,1)
z <- outer(input_1, input_2, my_function)
plot_ly(x = input_1, y = input_2, z = z) %>% add_surface()
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | EngrStudent |

