在操作之前需要先下载Julia的Distributions包,这个包用于进行相关概率分布的函数调用。

在输入 进入Julia包管理模式后输入:

add Distributions

这里我使用我们自己实验室的实测数据 ,平均值使用Julia及R语言生成正态分布的随机数字并写入CSV文件-LMLPHP=0.67,方差使用Julia及R语言生成正态分布的随机数字并写入CSV文件-LMLPHP=0.11,数据分布服从于正态分布,使用 Normal() 函数:

d = Normal(0.67, 0.11) 

测试次数为3次一组,属于小样本量,所以使用 n-1 作为分母来得到无偏估计 

#平均值
average = (data1 + data2 + data3) / 3
#标准差(无偏样本标准差,分母为 n-1)
standard_deviation = sqrt(((data1 - average)^2 + (data2 - average)^2 + (data3 - average)^2) / 2)

完整版Julia代码

using Distributions  
  
# 创建一个均值为 0.67,标准差为 0.11 的正态分布对象  
d = Normal(0.67, 0.11)  
  
# 指定要生成的行数  
num_rows = 10 
  
open("BBGoy.csv", "w") do file   
    write(file, "数据1,数据2,数据3,平均值,标准差\n")  
       
    for i = 1:num_rows  
        # 从指定的正态分布中随机生成三个样本  
        data1 = rand(d)  
        data2 = rand(d)  
        data3 = rand(d)  
          
        # 平均值  
        average = (data1 + data2 + data3) / 3  
          
        # 标准差(无偏样本标准差,分母为 n-1)  
        standard_deviation = sqrt(((data1 - average)^2 + (data2 - average)^2 + (data3 - average)^2) / 2)  
           
        csv_row_data = [data1, data2, data3, average, standard_deviation]  
        formatted_csv_row = join(map(x -> "$(round(x, digits=4))", csv_row_data), ",")  
        write(file, formatted_csv_row * "\n")  
    end  
end

R语言代码

#设置随机数种子 
set.seed(123)  

# 均值为 0.67,标准差为 0.11 的正态分布 
mu <- 0.67  
sigma <- 0.11  

num_rows <- 10  

results <- data.frame(数据1 = numeric(num_rows),  
                      数据2 = numeric(num_rows),  
                      数据3 = numeric(num_rows),  
                      平均值 = numeric(num_rows),  
                      标准差 = numeric(num_rows))  

for (i in 1:num_rows) {  
  data1 <- rnorm(1, mean = mu, sd = sigma)  
  data2 <- rnorm(1, mean = mu, sd = sigma)  
  data3 <- rnorm(1, mean = mu, sd = sigma)  
  
  average <- (data1 + data2 + data3) / 3  
  
  # 小样本量通常使用 n-1 作为分母来得到无偏估计  
  n <- 3  
  variance <- ((data1 - average)^2 + 
                 (data2 - average)^2 + (data3 - average)^2) / (n - 1) 
  
  standard_deviation <- sqrt(variance)  
  results[i, ] <- c(data1, data2, data3, average, standard_deviation)  
}  

# 保留四位小数  
formatted_results <- data.frame(lapply(results, function(x) 
  format(x, digits = 4, nsmall = 4)))  
 
write.table(formatted_results, file = "BBGoy.csv", 
            row.names = FALSE, col.names = TRUE, sep = ",", quote = FALSE)

生成数据

使用Julia及R语言生成正态分布的随机数字并写入CSV文件-LMLPHP 

 

 

03-17 06:25