📊 Статистические калькуляторы онлайн
Полный набор инструментов для статистического анализа данных: описательная статистика, корреляция, t-тест, ANOVA
Полный набор инструментов для статистического анализа данных: описательная статистика, корреляция, t-тест, ANOVA
Коэффициент вариации ${formatNumber(stats.cv, decimals)}% ${stats.cv > 30 ? 'указывает на высокую изменчивость данных' : 'свидетельствует об умеренной изменчивости'}.
`; // Показываем контейнер с результатами document.getElementById('results-container').style.display = 'block'; document.getElementById('results-container').scrollIntoView({ behavior: 'smooth' }); } // ========== КОРРЕЛЯЦИЯ ========== function calculateCorrelation() { const dataX = parseData(document.getElementById('corr-data-x').value); const dataY = parseData(document.getElementById('corr-data-y').value); const corrType = document.getElementById('correlation-type').value; const alpha = parseFloat(document.getElementById('significance-level').value); if (dataX.length !== dataY.length || dataX.length < 2) { alert("Обе выборки должны содержать одинаковое количество значений (минимум 2)"); return; } let correlation = 0; let pValue = 0; if (corrType === 'pearson') { // Корреляция Пирсона const meanX = calculateMean(dataX); const meanY = calculateMean(dataY); const stdX = calculateStandardDeviation(dataX); const stdY = calculateStandardDeviation(dataY); let covariance = 0; for (let i = 0; i < dataX.length; i++) { covariance += (dataX[i] - meanX) * (dataY[i] - meanY); } covariance /= (dataX.length - 1); correlation = covariance / (stdX * stdY); // Приближенный расчет p-value для корреляции Пирсона const t = correlation * Math.sqrt((dataX.length - 2) / (1 - correlation * correlation)); pValue = 2 * (1 - studentTCDF(Math.abs(t), dataX.length - 2)); } // Интерпретация силы корреляции let strength = ""; let interpretation = ""; const absCorr = Math.abs(correlation); if (absCorr >= 0.9) { strength = "очень сильная"; interpretation = "Практически линейная зависимость"; } else if (absCorr >= 0.7) { strength = "сильная"; interpretation = "Заметная зависимость"; } else if (absCorr >= 0.5) { strength = "умеренная"; interpretation = "Средняя зависимость"; } else if (absCorr >= 0.3) { strength = "слабая"; interpretation = "Слабая зависимость"; } else { strength = "очень слабая или отсутствует"; interpretation = "Практически нет зависимости"; } const isSignificant = pValue < alpha; // Отображение результатов document.getElementById('result-title').textContent = "Результаты корреляционного анализа"; const resultsGrid = document.getElementById('results-grid'); resultsGrid.innerHTML = `Коэффициент корреляции ${formatNumber(correlation, 3)} указывает на ${strength} ${correlation > 0 ? 'прямую' : 'обратную'} связь между переменными.
${interpretation}. Статистическая значимость: ${isSignificant ? 'корреляция статистически значима (p < ' + alpha + ')' : 'корреляция не является статистически значимой (p > ' + alpha + ')'}.
${corrType === 'pearson' ? 'Примечание: Корреляция Пирсона измеряет линейную зависимость.
' : ''} `; // Строим диаграмму рассеяния createScatterPlot(dataX, dataY); // Показываем результаты document.getElementById('results-container').style.display = 'block'; } // ========== t-ТЕСТ ========== function toggleTTestInputs() { const testType = document.querySelector('input[name="ttest-type"]:checked').value; document.getElementById('ttest-inputs-independent').style.display = testType === 'independent' ? 'block' : 'none'; document.getElementById('ttest-inputs-onesample').style.display = testType === 'one-sample' ? 'block' : 'none'; } function calculateTTest() { const testType = document.querySelector('input[name="ttest-type"]:checked').value; const alternative = document.getElementById('ttest-alternative').value; let tStat = 0; let pValue = 0; let df = 0; let mean1 = 0, mean2 = 0; let std1 = 0, std2 = 0; let n1 = 0, n2 = 0; if (testType === 'independent') { const dataA = parseData(document.getElementById('ttest-data-a').value); const dataB = parseData(document.getElementById('ttest-data-b').value); if (dataA.length < 2 || dataB.length < 2) { alert("Каждая выборка должна содержать минимум 2 значения"); return; } n1 = dataA.length; n2 = dataB.length; mean1 = calculateMean(dataA); mean2 = calculateMean(dataB); std1 = calculateStandardDeviation(dataA); std2 = calculateStandardDeviation(dataB); // Расчет t-статистики для независимых выборок const varianceEquality = document.getElementById('ttest-variance').value; if (varianceEquality === 'equal') { // Предполагаем равные дисперсии const pooledVariance = ((n1 - 1) * std1 * std1 + (n2 - 1) * std2 * std2) / (n1 + n2 - 2); const se = Math.sqrt(pooledVariance * (1/n1 + 1/n2)); tStat = (mean1 - mean2) / se; df = n1 + n2 - 2; } else { // Тест Велча (неравные дисперсии) const se = Math.sqrt((std1*std1/n1) + (std2*std2/n2)); tStat = (mean1 - mean2) / se; const numerator = Math.pow((std1*std1/n1) + (std2*std2/n2), 2); const denominator = Math.pow(std1*std1/n1, 2)/(n1-1) + Math.pow(std2*std2/n2, 2)/(n2-1); df = numerator / denominator; } } else if (testType === 'one-sample') { const data = parseData(document.getElementById('ttest-data-single').value); const mu0 = parseFloat(document.getElementById('ttest-theoretical').value); if (data.length < 2) { alert("Выборка должна содержать минимум 2 значения"); return; } n1 = data.length; mean1 = calculateMean(data); std1 = calculateStandardDeviation(data); // t-статистика для одной выборки tStat = (mean1 - mu0) / (std1 / Math.sqrt(n1)); df = n1 - 1; mean2 = mu0; } // Расчет p-значения pValue = calculatePValue(tStat, df, alternative); const alpha = 0.05; const isSignificant = pValue < alpha; // Отображение результатов document.getElementById('result-title').textContent = "Результаты t-теста"; const resultsGrid = document.getElementById('results-grid'); resultsGrid.innerHTML = `Среднее значение в группе A (${formatNumber(mean1, 2)}) ${mean1 > mean2 ? 'больше' : 'меньше'} среднего в группе B (${formatNumber(mean2, 2)}).
Разница между средними составляет ${formatNumber(Math.abs(mean1 - mean2), 2)}.
`; } else { interpretationText = `Среднее выборки (${formatNumber(mean1, 2)}) ${mean1 > mean2 ? 'превышает' : 'ниже'} теоретического значения (${formatNumber(mean2, 2)}).
`; } interpretationText += `t-тест ${isSignificant ? 'показал статистически значимую разницу' : 'не выявил статистически значимой разницы'} (p = ${formatNumber(pValue, 4)}).
На уровне значимости α = 0.05 мы ${isSignificant ? 'отвергаем' : 'не отвергаем'} нулевую гипотезу ${testType === 'independent' ? 'о равенстве средних' : 'о равенстве среднего теоретическому значению'}.
`; interpretationDiv.innerHTML = `${histogram}`;
}
function createScatterPlot(xData, yData) {
const container = document.getElementById('chart-container');
// Упрощенная текстовая визуализация
let plot = "Диаграмма рассеяния X vs Y:\n";
const maxPoints = 20;
const step = Math.max(1, Math.floor(xData.length / maxPoints));
for (let i = 0; i < Math.min(maxPoints, xData.length); i += step) {
plot += `X=${formatNumber(xData[i], 1)}, Y=${formatNumber(yData[i], 1)}\n`;
}
container.innerHTML = `${plot}`;
}
function clearData(type) {
if (type === 'x') {
document.getElementById('data-input-x').value = '';
}
}
function generateRandomData(type) {
const count = 10;
let data = [];
for (let i = 0; i < count; i++) {
data.push(Math.floor(Math.random() * 100) + 1);
}
if (type === 'x') {
document.getElementById('data-input-x').value = data.join(', ');
}
}
function loadFromFile(type, input) {
const file = input.files[0];
if (!file) return;
const reader = new FileReader();
reader.onload = function(e) {
const content = e.target.result;
if (type === 'x') {
document.getElementById('data-input-x').value = content.split('\n').slice(0, 50).join(', ');
}
};
reader.readAsText(file);
}
function loadSavedData() {
const saved = localStorage.getItem('statCalcData');
if (saved) {
try {
const data = JSON.parse(saved);
// Восстановление данных
} catch(e) { console.error("Ошибка загрузки данных:", e); }
}
}
function exportToCSV() {
if (!currentResults.data) {
alert("Нет данных для экспорта");
return;
}
let csv = "Статистический отчет\n\n";
csv += "Параметр,Значение\n";
csv += `Объем выборки,${currentResults.data.length}\n`;
csv += `Среднее,${formatNumber(currentResults.mean, 2)}\n`;
csv += `Стандартное отклонение,${formatNumber(currentResults.stdDev, 2)}\n`;
csv += `Дисперсия,${formatNumber(currentResults.variance, 2)}\n`;
csv += `Медиана,${formatNumber(currentResults.median, 2)}\n`;
csv += `Q1,${formatNumber(currentResults.q1, 2)}\n`;
csv += `Q3,${formatNumber(currentResults.q3, 2)}\n`;
csv += `IQR,${formatNumber(currentResults.iqr, 2)}\n`;
const blob = new Blob([csv], { type: 'text/csv' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'статистический_анализ.csv';
a.click();
URL.revokeObjectURL(url);
}
Наши статистические калькуляторы онлайн охватывают все основные методы анализа.Хотите быстро проанализировать данные без сложных программ? Наши статистические калькуляторы онлайн дают профессиональные результаты за секунды. Этот набор инструментов позволяет рассчитать среднее значение, дисперсию, корреляцию, t-тест и ANOVA прямо в браузере. Этот комплекс статистических калькуляторов онлайн разработан с учетом потребностей как начинающих, так и опытных аналитиков.Идеально подходит для студентов, исследователей, маркетологов и аналитиков, которые работают с данными. В этой статье вы найдете не только мощные калькуляторы, но и подробные объяснения, примеры интерпретации результатов и готовые шаблоны для отчетов.
Статистический анализ — это наука о сборе, обработке, анализе и интерпретации данных. Он позволяет находить закономерности, проверять гипотезы и принимать обоснованные решения на основе чисел. Наши статистические калькуляторы онлайн охватывают основные методы:
1. Среднее арифметическое:
text
x̄ = (Σxᵢ) / n
Где xᵢ — каждое значение в выборке, n — количество значений.
2. Дисперсия (мера разброса):
text
s² = Σ(xᵢ - x̄)² / (n - 1)
3. Корреляция Пирсона:
text
r = Σ[(xᵢ - x̄)(yᵢ - ȳ)] / √[Σ(xᵢ - x̄)² × Σ(yᵢ - ȳ)²]
4. t-статистика для двух независимых выборок:
text
t = (x̄₁ - x̄₂) / √(s²₁/n₁ + s²₂/n₂)
| Коэффициент корреляции (|r|) | Сила связи | Практическая интерпретация |
|--------------------------|------------|----------------------------|
| 0.90 - 1.00 | Очень сильная | Практически линейная зависимость |
| 0.70 - 0.89 | Сильная | Заметная устойчивая связь |
| 0.50 - 0.69 | Умеренная | Существенная, но не абсолютная связь |
| 0.30 - 0.49 | Слабая | Заметная, но ненадежная связь |
| 0.00 - 0.29 | Отсутствует или очень слабая | Связь практически отсутствует |
Перед использованием калькулятора среднего значения онлайн убедитесь, что:
Используйте наш калькулятор дисперсии и стандартного отклонения для описания разброса данных. Для сравнения групп применяйте t-тест калькулятор, а для изучения взаимосвязей — калькулятор корреляции Пирсона.
Обращайте внимание не только на p-значение, но и на величину эффекта. Статистическая значимость (p < 0.05) не всегда означает практическую значимость.
Используйте встроенные графики для лучшего понимания распределения данных и взаимосвязей.
❓ Чем отличается среднее от медианы?
Среднее арифметическое — это сумма всех значений, деленная на их количество. Медиана — это значение, которое делит выборку пополам. Медиана устойчива к выбросам, тогда как среднее может сильно искажаться экстремальными значениями.
❓ Когда использовать t-тест, а когда ANOVA?
t-тест используется для сравнения двух групп. Калькулятор ANOVA применяется, когда нужно сравнить три и более групп одновременно. Если ANOVA показывает значимые различия, проводят пост-хок тесты для определения, какие именно группы различаются.
❓ Что такое p-значение и как его интерпретировать?
p-значение — это вероятность получить наблюдаемые или более экстремальные результаты при условии, что нулевая гипотеза верна. Обычно используют уровень значимости α = 0.05. Если p < 0.05, результаты считаются статистически значимыми.
❓ Какой коэффициент корреляции лучше: Пирсона или Спирмена?
Корреляция Пирсона измеряет линейную зависимость и требует нормального распределения. Корреляция Спирмена — ранговую зависимость и не требует нормальности. Наш онлайн калькулятор корреляции поддерживает оба метода.
❓ Можно ли доверять результатам онлайн-калькуляторов для научных публикаций?
Для студенческих работ и предварительного анализа — да. Для серьезных научных публикаций рекомендуется использовать специализированное ПО и консультацию статистика, но онлайн-калькуляторы отлично подходят для проверки расчетов и обучения.
Наш калькулятор статистики онлайн поддерживает импорт данных из CSV.