Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
23edbdf371 | ||
da68523913 | |||
bc4c46a050 | |||
d361c06985 | |||
|
c69229ce28 | ||
780d5b30fd | |||
d6c03ca3c8 | |||
260cc99afa | |||
|
3f1bd27535 | ||
34bcee2acf |
2
.gitignore
vendored
@@ -161,7 +161,7 @@ cython_debug/
|
||||
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
||||
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
||||
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||
#.idea/
|
||||
.idea/
|
||||
|
||||
### Python Patch ###
|
||||
# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration
|
||||
|
3
.idea/.gitignore
generated
vendored
@@ -1,3 +0,0 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
14
.idea/inspectionProfiles/Project_Default.xml
generated
@@ -1,14 +0,0 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<profile version="1.0">
|
||||
<option name="myName" value="Project Default" />
|
||||
<inspection_tool class="PyPep8NamingInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
|
||||
<option name="ignoredErrors">
|
||||
<list>
|
||||
<option value="N802" />
|
||||
<option value="N803" />
|
||||
<option value="N806" />
|
||||
</list>
|
||||
</option>
|
||||
</inspection_tool>
|
||||
</profile>
|
||||
</component>
|
6
.idea/inspectionProfiles/profiles_settings.xml
generated
@@ -1,6 +0,0 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<settings>
|
||||
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||
<version value="1.0" />
|
||||
</settings>
|
||||
</component>
|
7
.idea/misc.xml
generated
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Black">
|
||||
<option name="sdkName" value="Poetry (statapp)" />
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Poetry (statapp) (2)" project-jdk-type="Python SDK" />
|
||||
</project>
|
8
.idea/modules.xml
generated
@@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/stat.iml" filepath="$PROJECT_DIR$/.idea/stat.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
24
.idea/runConfigurations/statapp.xml
generated
@@ -1,24 +0,0 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="statapp" type="PythonConfigurationType" factoryName="Python" nameIsGenerated="true">
|
||||
<module name="stat" />
|
||||
<option name="ENV_FILES" value="" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="true" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<option name="SCRIPT_NAME" value="statapp" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||
<option name="EMULATE_TERMINAL" value="false" />
|
||||
<option name="MODULE_MODE" value="true" />
|
||||
<option name="REDIRECT_INPUT" value="false" />
|
||||
<option name="INPUT_FILE" value="" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
8
.idea/stat.iml
generated
@@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="PYTHON_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
6
.idea/vcs.xml
generated
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
22
CHANGELOG.md
@@ -1,5 +1,27 @@
|
||||
# Changelog
|
||||
|
||||
## [0.12.4](https://github.com/shizand/statapp/compare/v0.12.3...v0.12.4) (2024-02-15)
|
||||
|
||||
|
||||
### Исправления
|
||||
|
||||
* исправлен вывод коэффициента множественной детерминации в "Преобразования" ([da68523](https://github.com/shizand/statapp/commit/da685239136c7047ecaa5f63b7d52d25930ce895))
|
||||
|
||||
## [0.12.3](https://github.com/shizand/statapp/compare/v0.12.2...v0.12.3) (2024-02-14)
|
||||
|
||||
|
||||
### Исправления
|
||||
|
||||
* добавлен более подробный вывод ошибок в консоль ([780d5b3](https://github.com/shizand/statapp/commit/780d5b30fdc271f670c09369c1a0a692f89e7fc2))
|
||||
* исправлен вывод коэффициента множественной детерминации ([260cc99](https://github.com/shizand/statapp/commit/260cc99afa3e5bc0aaf0fbad8870eebd909e558c))
|
||||
|
||||
## [0.12.2](https://github.com/shizand/statapp/compare/v0.12.1...v0.12.2) (2024-02-12)
|
||||
|
||||
|
||||
### Исправления
|
||||
|
||||
* Добавлены краткие теоретические сведения README ([34bcee2](https://github.com/shizand/statapp/commit/34bcee2acf3a7cee806d2da49ca0e546df8d1e3f))
|
||||
|
||||
## [0.12.1](https://github.com/shizand/statapp/compare/v0.12.0...v0.12.1) (2024-02-11)
|
||||
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[tool.poetry]
|
||||
name = "statapp"
|
||||
version = "0.12.1"
|
||||
version = "0.12.4"
|
||||
description = ""
|
||||
authors = [
|
||||
"Maxim Slipenko <statapp@maks1ms.addy.io>"
|
||||
|
@@ -42,7 +42,48 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
## Краткие теоретические сведения
|
||||
|
||||
*-- В разработке --*
|
||||
В рамках ***дисперсионного анализа*** для каждой величины вычисляются следующие характеристики.
|
||||
***Математическое ожидание*** характеризует среднее значение величины:
|
||||
|
||||
<image src="files/Формула 1.PNG">
|
||||
|
||||
*где n – количество значений величины, i – номер значения.*
|
||||
|
||||
***Дисперсия*** характеризует разброс величины относительно среднего значения:
|
||||
|
||||
<image src="files/Формула 2.PNG">
|
||||
|
||||
***Среднеквадратичное отклонение*** характеризует разброс величины относительно среднего значения:
|
||||
|
||||
<image src="files/Формула 3.PNG">
|
||||
|
||||
В результате ***корреляционного анализа*** вычисляется ***корреляционная матрица***. ***Коэффициент корреляции*** (rij) характеризует взаимосвязь между величинами. Взаимосвязь считается сильной, если выполняется условие:
|
||||
|
||||
<image src="files/Формула 4.PNG">
|
||||
|
||||
Знак ***коэффициента корреляции*** показывает характер влияния величин. Если знак положительный (прямая связь), то увеличение значения одной величины приводит к увеличению значения другой. Иначе увеличение значения одной величины приводит к уменьшению значения другой (обратная связь).
|
||||
|
||||
При осуществлении каскадного регрессионного анализа вычисляются параметры и оценки модели. В основе анализа лежит понятие коэффициента значимости (tj), который характеризует степень влияния фактора на модель. Фактор считается значимым, если выполняется условие:
|
||||
|
||||
<image src="files/Формула 5.PNG">
|
||||
|
||||
На каждом шаге вычисляются оценки полученной зависимости.
|
||||
|
||||
***Остаточная дисперсия масштабированная*** показывает, какая часть статистического материала не была охвачена полученной зависимостью.
|
||||
|
||||
<image src="files/Формула 6.PNG">
|
||||
|
||||
***Отношение Фишера*** (F1) показывает во сколько раз полученная зависимость лучше полинома y=yср, где yср – математическое ожидание y.
|
||||
|
||||
<image src="files/Формула 7.PNG">
|
||||
|
||||
***Коэффициент множественной детерминации*** (R) характеризует степень близости полученной зависимости к реальному поведению объекта.
|
||||
|
||||
<image src="files/Формула 8.PNG">
|
||||
|
||||
Механизм процедуры ***каскадного регрессионного анализа***.
|
||||
|
||||
На 1-м шаге анализа строится модель, которая включает все ***факторы***. Далее производится исключение ***фактора*** tj с наименьшим по модулю значением ***коэффициента значимости*** и строится новая модель. Если оценки модели ухудшились, то ***каскадная процедура исключения факторов*** останавливается и лучшей считается модель, полученная на предыдущем шаге. Иначе исключение ***факторов*** продолжается до тех пор, пока не ухудшатся оценки модели либо пока для всех ***факторов*** будет выполняться условие.
|
||||
|
||||
## Начало работы
|
||||
|
||||
|
BIN
statapp/docs/files/Формула 1.PNG
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
statapp/docs/files/Формула 2.PNG
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
statapp/docs/files/Формула 3.PNG
Normal file
After Width: | Height: | Size: 976 B |
BIN
statapp/docs/files/Формула 4.PNG
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
statapp/docs/files/Формула 5.PNG
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
statapp/docs/files/Формула 6.PNG
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
statapp/docs/files/Формула 7.PNG
Normal file
After Width: | Height: | Size: 934 B |
BIN
statapp/docs/files/Формула 8.PNG
Normal file
After Width: | Height: | Size: 678 B |
@@ -58,7 +58,7 @@ class PolynomWindow(QDialog):
|
||||
self.ui.residualVarianceValueLabel.setText(str(result.residualVariance))
|
||||
self.ui.scaledResidualVarianceValueLabel.setText(str(result.scaledResidualVariance))
|
||||
self.ui.fStatisticValueLabel.setText(str(result.fStatistic))
|
||||
self.ui.rSquaredValueLabel.setText(str(result.scaledResidualVariance))
|
||||
self.ui.rSquaredValueLabel.setText(str(result.rSquared))
|
||||
|
||||
predictionResult = prediction(data, result)
|
||||
|
||||
|
@@ -81,7 +81,7 @@ class TransformPolynomWindow(QDialog):
|
||||
self.ui.residualVarianceValueLabel.setText(str(result.residualVariance))
|
||||
self.ui.scaledResidualVarianceValueLabel.setText(str(result.scaledResidualVariance))
|
||||
self.ui.fStatisticValueLabel.setText(str(result.fStatistic))
|
||||
self.ui.rSquaredValueLabel.setText(str(result.scaledResidualVariance))
|
||||
self.ui.rSquaredValueLabel.setText(str(result.rSquared))
|
||||
|
||||
self.model.dataChanged.connect(self.on_data_changed)
|
||||
|
||||
|
@@ -17,6 +17,7 @@
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
|
||||
@@ -71,8 +72,11 @@ def onError(errorName: Exception):
|
||||
QMessageBox.Ok,
|
||||
QMessageBox.Ok)
|
||||
|
||||
logging.exception(errorName)
|
||||
|
||||
msgBox.exec_()
|
||||
|
||||
|
||||
class FloatDelegate(QStyledItemDelegate):
|
||||
def __init__(self, parent=None):
|
||||
QStyledItemDelegate.__init__(self, parent=parent)
|
||||
|