Whiz Tools

Μετατροπέας Διάστημα Εμπιστοσύνης σε Τυπικές Αποκλίσεις

Μετατροπή Διάστημα Εμπιστοσύνης σε Τυπικές Αποκλίσεις

[... υπάρχουσα εισαγωγή και τμήματα τύπων ...]

Οπτικοποίηση

Το παρακάτω διάγραμμα απεικονίζει τη σχέση μεταξύ των διαστημάτων εμπιστοσύνης και των τυπικών αποκλίσεων σε μια κανονική κατανομή:

μ 68.27% 95% 99.73%

[... υπάρχουσα τμήματα υπολογισμού και περιπτώσεις άκρων ...]

Παραδείγματα

Ακολουθούν παραδείγματα κώδικα για τη μετατροπή διαστημάτων εμπιστοσύνης σε τυπικές αποκλίσεις σε διάφορες γλώσσες προγραμματισμού:

' Excel VBA Συνάρτηση για τη Μετατροπή Διάστηματος Εμπιστοσύνης σε Τυπικές Αποκλίσεις
Function ConfidenceToStdDev(CI As Double) As Double
    ConfidenceToStdDev = Application.NormSInv(1 - (1 - CI) / 2)
End Function
' Χρήση:
' =ConfidenceToStdDev(0.95)
confidence_to_std_dev <- function(confidence_interval) {
  qnorm((1 + confidence_interval) / 2)
}

# Παράδειγμα χρήσης:
ci <- 0.95  # 95% διάστημα εμπιστοσύνης
z_score <- confidence_to_std_dev(ci)
cat(sprintf("%.2f%% διάστημα εμπιστοσύνης αντιστοιχεί σε %.4f τυπικές αποκλίσεις\n", ci*100, z_score))
function z = confidenceToStdDev(confidenceInterval)
    z = norminv((1 + confidenceInterval) / 2);
end

% Παράδειγμα χρήσης:
ci = 0.95;  % 95% διάστημα εμπιστοσύνης
zScore = confidenceToStdDev(ci);
fprintf('%.2f%% διάστημα εμπιστοσύνης αντιστοιχεί σε %.4f τυπικές αποκλίσεις\n', ci*100, zScore);
import scipy.stats as stats

def confidence_to_std_dev(confidence_interval):
    return stats.norm.ppf((1 + confidence_interval) / 2)

# Παράδειγμα χρήσης:
ci = 0.95  # 95% διάστημα εμπιστοσύνης
z_score = confidence_to_std_dev(ci)
print(f"{ci*100}% διάστημα εμπιστοσύνης αντιστοιχεί σε {z_score:.4f} τυπικές αποκλίσεις")
function confidenceToStdDev(confidenceInterval) {
  // Χρησιμοποιώντας μια προσέγγιση για την αντίστροφη συνάρτηση σφάλματος
  function erfInv(x) {
    const a = 0.147;
    const y = Math.log(1 - x*x);
    const z = 2/(Math.PI * a) + y/2;
    return Math.sign(x) * Math.sqrt(Math.sqrt(z*z - y/a) - z);
  }
  
  return Math.sqrt(2) * erfInv(confidenceInterval);
}

// Παράδειγμα χρήσης:
const ci = 0.95;
const zScore = confidenceToStdDev(ci);
console.log(`${ci*100}% διάστημα εμπιστοσύνης αντιστοιχεί σε ${zScore.toFixed(4)} τυπικές αποκλίσεις`);
public class ConfidenceIntervalConverter {
    public static double confidenceToStdDev(double confidenceInterval) {
        // Χρησιμοποιώντας τον αλγόριθμο του Moro για την προσέγγιση της αντίστροφης κανονικής CDF
        double p = (1 + confidenceInterval) / 2;
        double t = Math.sqrt(-2 * Math.log(1 - p));
        double c0 = 2.515517;
        double c1 = 0.802853;
        double c2 = 0.010328;
        double d1 = 1.432788;
        double d2 = 0.189269;
        double d3 = 0.001308;
        
        return t - ((c0 + c1 * t + c2 * t * t) / (1 + d1 * t + d2 * t * t + d3 * t * t * t));
    }

    public static void main(String[] args) {
        double ci = 0.95;
        double zScore = confidenceToStdDev(ci);
        System.out.printf("%.2f%% διάστημα εμπιστοσύνης αντιστοιχεί σε %.4f τυπικές αποκλίσεις%n", ci*100, zScore);
    }
}
#include <iostream>
#include <cmath>

double confidenceToStdDev(double confidenceInterval) {
    // Χρησιμοποιώντας τον αλγόριθμο του Moro για την προσέγγιση της αντίστροφης κανονικής CDF
    double p = (1 + confidenceInterval) / 2;
    double t = std::sqrt(-2 * std::log(1 - p));
    double c0 = 2.515517, c1 = 0.802853, c2 = 0.010328;
    double d1 = 1.432788, d2 = 0.189269, d3 = 0.001308;
    
    return t - ((c0 + c1 * t + c2 * t * t) / (1 + d1 * t + d2 * t * t + d3 * t * t * t));
}

int main() {
    double ci = 0.95;
    double zScore = confidenceToStdDev(ci);
    printf("%.2f%% διάστημα εμπιστοσύνης αντιστοιχεί σε %.4f τυπικές αποκλίσεις\n", ci*100, zScore);
    return 0;
}
def confidence_to_std_dev(confidence_interval)
  # Χρησιμοποιώντας μια προσέγγιση για την αντίστροφη συνάρτηση σφάλματος
  p = (1 + confidence_interval) / 2
  t = Math.sqrt(-2 * Math.log(1 - p))
  c0, c1, c2 = 2.515517, 0.802853, 0.010328
  d1, d2, d3 = 1.432788, 0.189269, 0.001308
  
  t - ((c0 + c1 * t + c2 * t * t) / (1 + d1 * t + d2 * t * t + d3 * t * t * t))
end

# Παράδειγμα χρήσης:
ci = 0.95
z_score = confidence_to_std_dev(ci)
puts "#{ci*100}% διάστημα εμπιστοσύνης αντιστοιχεί σε #{z_score.round(4)} τυπικές αποκλίσεις"
<?php
function confidenceToStdDev($confidenceInterval) {
    // Χρησιμοποιώντας μια προσέγγιση για την αντίστροφη συνάρτηση σφάλματος
    $p = (1 + $confidenceInterval) / 2;
    $t = sqrt(-2 * log(1 - $p));
    $c0 = 2.515517; $c1 = 0.802853; $c2 = 0.010328;
    $d1 = 1.432788; $d2 = 0.189269; $d3 = 0.001308;
    
    return $t - (($c0 + $c1 * $t + $c2 * $t * $t) / (1 + $d1 * $t + $d2 * $t * $t + $d3 * $t * $t * $t));
}

// Παράδειγμα χρήσης:
$ci = 0.95;
$zScore = confidenceToStdDev($ci);
printf("%.2f%% διάστημα εμπιστοσύνης αντιστοιχεί σε %.4f τυπικές αποκλίσεις\n", $ci*100, $zScore);
?>
fn confidence_to_std_dev(confidence_interval: f64) -> f64 {
    // Χρησιμοποιώντας μια προσέγγιση για την αντίστροφη συνάρτηση σφάλματος
    let p = (1.0 + confidence_interval) / 2.0;
    let t = (-2.0 * (1.0 - p).ln()).sqrt();
    let c0 = 2.515517;
    let c1 = 0.802853;
    let c2 = 0.010328;
    let d1 = 1.432788;
    let d2 = 0.189269;
    let d3 = 0.001308;
    
    t - ((c0 + c1 * t + c2 * t * t) / (1.0 + d1 * t + d2 * t * t + d3 * t * t * t))
}

fn main() {
    let ci = 0.95;
    let z_score = confidence_to_std_dev(ci);
    println!("{:.2}% διάστημα εμπιστοσύνης αντιστοιχεί σε {:.4} τυπικές αποκλίσεις", ci*100.0, z_score);
}
using System;

class ConfidenceIntervalConverter
{
    static double ConfidenceToStdDev(double confidenceInterval)
    {
        // Χρησιμοποιώντας μια προσέγγιση για την αντίστροφη συνάρτηση σφάλματος
        double p = (1 + confidenceInterval) / 2;
        double t = Math.Sqrt(-2 * Math.Log(1 - p));
        double c0 = 2.515517, c1 = 0.802853, c2 = 0.010328;
        double d1 = 1.432788, d2 = 0.189269, d3 = 0.001308;
        
        return t - ((c0 + c1 * t + c2 * t * t) / (1 + d1 * t + d2 * t * t + d3 * t * t * t));
    }

    static void Main()
    {
        double ci = 0.95;
        double zScore = ConfidenceToStdDev(ci);
        Console.WriteLine($"{ci*100:F2}% διάστημα εμπιστοσύνης αντιστοιχεί σε {zScore:F4} τυπικές αποκλίσεις");
    }
}
package main

import (
    "fmt"
    "math"
)

func confidenceToStdDev(confidenceInterval float64) float64 {
    // Χρησιμοποιώντας μια προσέγγιση για την αντίστροφη συνάρτηση σφάλματος
    p := (1 + confidenceInterval) / 2
    t := math.Sqrt(-2 * math.Log(1 - p))
    c0, c1, c2 := 2.515517, 0.802853, 0.010328
    d1, d2, d3 := 1.432788, 0.189269, 0.001308
    
    return t - ((c0 + c1*t + c2*t*t) / (1 + d1*t + d2*t*t + d3*t*t*t))
}

func main() {
    ci := 0.95
    zScore := confidenceToStdDev(ci)
    fmt.Printf("%.2f%% διάστημα εμπιστοσύνης αντιστοιχεί σε %.4f τυπικές αποκλίσεις\n", ci*100, zScore)
}
import Foundation

func confidenceToStdDev(_ confidenceInterval: Double) -> Double {
    // Χρησιμοποιώντας μια προσέγγιση για την αντίστροφη συνάρτηση σφάλματος
    let p = (1 + confidenceInterval) / 2
    let t = sqrt(-2 * log(1 - p))
    let c0 = 2.515517, c1 = 0.802853, c2 = 0.010328
    let d1 = 1.432788, d2 = 0.189269, d3 = 0.001308
    
    return t - ((c0 + c1 * t + c2 * t * t) / (1 + d1 * t + d2 * t * t + d3 * t * t * t))
}

// Παράδειγμα χρήσης:
let ci = 0.95
let zScore = confidenceToStdDev(ci)
print(String(format: "%.2f%% διάστημα εμπιστοσύνης αντιστοιχεί σε %.4f τυπικές αποκλίσεις", ci*100, zScore))

Δοκιμαστικές Περιπτώσεις

Για να διασφαλιστεί η ακρίβεια της συνάρτησης μετατροπής σε διάφορα διαστήματα εμπιστοσύνης, ακολουθούν ορισμένες δοκιμαστικές περιπτώσεις:

import unittest
import math

def confidence_to_std_dev(confidence_interval):
    return stats.norm.ppf((1 + confidence_interval) / 2)

class TestConfidenceToStdDev(unittest.TestCase):
    def test_common_confidence_intervals(self):
        self.assertAlmostEqual(confidence_to_std_dev(0.6827), 1.0, places=4)
        self.assertAlmostEqual(confidence_to_std_dev(0.95), 1.96, places=2)
        self.assertAlmostEqual(confidence_to_std_dev(0.99), 2.576, places=3)
        self.assertAlmostEqual(confidence_to_std_dev(0.9973), 3.0, places=4)

    def test_edge_cases(self):
        self.assertAlmostEqual(confidence_to_std_dev(0.5), 0.6745, places=4)
        self.assertTrue(math.isinf(confidence_to_std_dev(1.0)))
        self.assertEqual(confidence_to_std_dev(0.0), -float('inf'))

if __name__ == '__main__':
    unittest.main()

[... υπάρχουσες περιπτώσεις χρήσης, εναλλακτικές, ιστορία, περιορισμοί και αναφορές ...]

Feedback