Определение параметров регрессионной зависимости полной фактической себестоимости от общехозяйственных и общепроизводственных расходов

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    359,85 Кб
  • Опубликовано:
    2012-07-08
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Определение параметров регрессионной зависимости полной фактической себестоимости от общехозяйственных и общепроизводственных расходов

ВВЕДЕНИЕ

Программа разрабатывается на основании задания на курсовую работу, выданного учреждением образования «Гомельский государственный технический университет имени П.О. Сухого».

Целью курсовой работы является написание программы, обеспечивающей быстрый вывод итога регресса зависимости, что позволит даже практически неподготовленному пользователю ЭВМ быстро получить необходимый результат расчета.

Программа написана в среде разработки Borland С++ Builder и создана в виде оконного приложения, что значительно упрощает работу малоопытному пользователю ЭВМ.

Программа, разрабатываемая в ходе курсовой работы, поможет быстро рассчитать параметры регресса(регрессивный анализ) зависимости полной фактической себестоимости от общехозяйственных и общепроизводственных расходов.

Регрессионный анализ - это статистический метод исследования влияния одной или нескольких независимых переменных на зависимую переменную. Независимые переменные иначе называют регрессорами или предикторами, а зависимые переменные - критериальными. Терминология зависимых и независимых переменных отражает лишь математическую зависимость переменных.

Цели регрессионного анализа:

определение степени детерминированности вариации критериальной (зависимой) переменной предикторами (независимыми переменными);

предсказание значения зависимой переменной с помощью независимой;

определение вклада отдельных независимых переменных в вариацию зависимой;

ПОСТАНОВКА ЗАДАЧИ

Исходными данными задачи являются:

1.      набор значений фактора  и набор значений результата


где n - количество значений;

2.      две функции  и , которые будут использоваться как регрессионные зависимости;

.        указываются формулы, с помощью которых можно рассчитать значения параметров  и  таких, что зависимость  наилучшим образом приближает исходные наборы фактора  и результата , а также указываются аналогичные формулы для расчета параметров  и ;

.        название функциональности системы программирования.

На основе указанных исходных данных требуется выполнить следующее:

1.      разработать алгоритм и представить его в виде блок-схемы и программы на языке Си, который для заданных наборов фактора  и результата  рассчитывает следующие статистические характеристики:

2.     средние значения этих наборов

, ;

3.    
дисперсии

,

4.     среднеквадратические отклонения

,

5.     коэффициент парной корреляции


)        в алгоритме должен быть предусмотрен анализ вычисленного значения парной корреляции r: если , то считают, что между фактором и результатом отсутствует функциональная зависимость, а при  считают, что функциональная зависимость существует;

2)    далее в алгоритме следует предусмотреть вычисление характеристик регрессионных зависимостей

 и

Для этого надо вычислить:

1)      значения параметров , ,  и  по формулам, указанным в задании (указанные формулы выведены из условия минимальности суммы квадратов отклонений значений  и  от  в точках );

)        вычислить значения результата по регрессионным зависимостям

a.       ,

3)    вычислить остаточные дисперсии

a.       ,

4)      вычислить коэффициенты Фишера, характеризующие качество приближений функций  и  к заданному результату

a.       ,

5)      в заключение алгоритм должен сравнить полученные значения  и  - лучшей регрессионной зависимостью является та, для которой коэффициент Фишера имеет большее значение;

)        следующим этапом работы является подготовка данных для отладки составленной программы. Подготовка данных выполняется с помощью надстройки MS Excel Пакет анализа следующим образом:

.        заполните ячейки листа рабочей книги Excel заданными значениями , получим два столбца таблицы;

.        образуйте дополнительный столбец и заполните его формулами, вычисляющими некоторую функцию  такую, что функция  может быть представлена линейной функцией ;

.        вызовите надстройку Пакет анализа и в диалоговом окне Анализ данных выберите элемент Регрессия;

.        в диалоговом окне Регрессия укажите в качестве входного интервала Y диапазон ячеек, содержащих значения , а в качестве входного интервала X - диапазон ячеек, содержащих значения ;

.        на листе результатов проанализируйте полученное значение коэффициента детерминации R-квадрат, показывающего качество приближения исходных данных найденной регрессионной зависимостью;

.        скопируйте на лист исходных данных с листа результатов полученные коэффициенты регрессии  и  и заполните еще один столбец значениями ;

.        образуйте еще дополнительный столбец и заполните его формулами, вычисляющими некоторую функцию  такую, что функцию  можно представить линейной функцией ;

.        аналогично предыдущему с помощью функциональности Регрессия надстройки Пакет анализа определите коэффициент детерминации и коэффициенты регрессии  и , заполните новый столбец значениями ;

.        постройте на одном листе графики трех функций ,  и  с отметкой их значений в точках ;

.        сделайте вывод о качестве приближения заданных значений найденными регрессионными зависимостями.

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

Программа «Определение параметров регрессивной зависимости полной фактической себестоимости от общехозяйственных и общепроизводственных расходов» предназначена для автоматизации расчетов параметров регрессивной(регрессивного анализа) зависимости полной фактической себестоимости от общехозяйственных и общепроизводственных расходов.

Данная программа выполняет следующие функции:

1)    Чтение данных из файла;

2)      Расчет параметров регрессивной зависимости;

)        Вывод результата расчетов на экран;

Минимальный состав технических средств для успешной работы программы:

·   центральный процессор Intel Pentium III и выше;

·   цветной 17-ти дюймовый монитор SVGA, поддерживающий разрешение 1024x768;

·      512 Мб оперативной памяти;

·   2 Мб свободного места на жёстком диске;

·      манипулятор типа «мышь», клавиатура.

Для работы программы в папке с программой должны находиться следующие файлы:

·   файл приложения Regress_Jhukov.exe;

·      файл с входными данными Regress_Jhukov.ini.

Для запуска программы на исполнение необходимо запустить на выполнение файл Regress_Jhukov.exe.

После запуска на экране появляется главное окно программы (рис 1).

Рисунок 1. Главное окно программы, вкладка «Исходные данные»

При нажатии на кнопку “Далее >>” происходит расчет параметров зависимости и переключение на вкладку «Результаты промежуточных расчетов» (рис 2). Так же расчет параметром можно произвести либо нажав горячую клавишу «F3», либо меню «Файл» пункт «Расчитать».

регресс зависимость расчет приложение

Рисунок 2. Вкладка «Результаты промежуточных расчетов»

После нажатия на кнопку “Далее >>” открывается последняя вкладка содержащая результаты расчетов. (рис 3).

Рисунок 3. Вкладка «Результаты расчетов»

Пример заполнения файла данных Regress_Jhukov.ini (рис. 4) можно посмотреть открыв меню «Справка» и выбрав пункт «Пример файла», либо нажав горячую клавишу «F2».

Рисунок 4. Пример заполнения файла данных Regress_Jhukov.ini

Выйти из программы можно 4 способами:

- Кнопка «Выход» в нижнем правом углу окна программы;

- Выпадающее меню «Файл» пункт «Выход»;

- Горячая клавиша «F4»;

- Кнопка с крестиком в верхнем правом углу окна программы.

 

БЛОК-СХЕМЫ



 

 























Рисунок 1 - Обобщенная схема алгоритма

Для вычисления среднего значения фактических массивов x и y надо два раза обратиться к алгоритму SR с разными параметрами. Тогда схема схемы алгоритма блока: А-В будет иметь вид, изображенный на рисунке 2.

Рисунок 2 - Алгоритм вычисления среднего значения элементов массива

Рисунок 3 - Алгоритм вычисление средних значений массивов x и y

Рисунок 4 - Алгоритм вычисления дисперсии

Рисунок 5 - Алгоритм вычисления среднеквадратических отклонений




Рисунок 6 - Алгоритм вычисления коэффициента парной корреляции

ТЕКСТ ПРОГРАММЫ

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

//---------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"*Form1;

//---------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{}

//---------------------------------------------------------__fastcall TForm1::N5Click(TObject *Sender)

{->Close();

}

//---------------------------------------------------------rasch ()

{x;y;n, xsum, ysum, xs, ys;qx, qy, r, wx, wy;=0;=0;=0;=0;sumy;sumx;=0;

=0;=0;=0;=0;=16;str, str1;(unsigned int i=0; i< 16; i++)

{=Form1->Memo2->Lines->Strings[i];= StrToFloat(str);+=x; // suma elementov x=Form1->Memo3->Lines->Strings[i];= StrToFloat(str1);+=y; // suma elementov y

}=(xsum/n); // srednee xxsumer=SimpleRoundTo(xs,-3);=(ysum/n); // srednee yysumer=SimpleRoundTo(ys,-3);->Label11->Caption=xsumer ;->Label12->Caption=ysumer ;(unsigned int i=0; i<16; i++)

{=Form1->Memo2->Lines->Strings[i];= StrToFloat(str);=Form1->Memo3->Lines->Strings[i];= StrToFloat(str1);+= pow((x-xsumer),2);+= pow((y-ysumer),2);

}=((1/(n-1))*(sumx));qxsum = SimpleRoundTo(qx,-3);->Label13->Caption=qxsum ; //дисперсия Х

float qx1;=0;=sqrt(qx); //отклонение Х

double qxsum1 = SimpleRoundTo(qx1,-3);->Label15->Caption=qxsum1 ;=((1/(n-1))*(sumy));qysum = SimpleRoundTo(qy,-3);->Label14->Caption=qysum; //дисперсия Уqy1;=0;=sqrt(qy);qysum1 = SimpleRoundTo(qy1,-3);->Label16->Caption=qysum1; //отклонение У(unsigned int i=0; i<16; i++)

{=Form1->Memo2->Lines->Strings[i];= StrToFloat(str);=Form1->Memo3->Lines->Strings[i];= StrToFloat(str1);+= ((x-xsumer)*(y-ysumer));

}=(wx/((n-1)*qxsum1*qysum1));r1;=0;=SimpleRoundTo(r,-3);->Label17->Caption=r1;->Label18->Caption = "Расчеты удачно произведены";

//----РАБОТА С ПЕРВОЙ ЗАВИСИМОСТЬЮa0, a1, d, d1, d2, f, yr, f1;

a0=0; a1=0; d=0; d1=0; d2=0; f=0; f1=0;(unsigned int i=0; i<16; i++)

{=Form1->Memo2->Lines->Strings[i];= StrToFloat(str);+=pow(((x*x)/(exp(1/x))),2);

}(unsigned int i=0; i<16; i++)

{=Form1->Memo2->Lines->Strings[i];= StrToFloat(str);+=((x*x)/(exp(1/x)));

}(unsigned int i=0; i<16; i++)

{=Form1->Memo2->Lines->Strings[i];= StrToFloat(str);=Form1->Memo3->Lines->Strings[i];= StrToFloat(str1);+=((x*x)/(exp(1/x)))*y;

}= n*d1- pow(d2,2); // d в первой регрессии= (ysum*d1-d2*f)/d; // a0 в первой регрессии= (n*f-d2*ysum)/d; // a1 в первой регрессии

yr=0;qs, q;=0;=0;(unsigned int i=0; i<16; i++)

{=Form1->Memo2->Lines->Strings[i];= StrToFloat(str);=Form1->Memo3->Lines->Strings[i];

y = StrToFloat(str1);= a0 + a1*((x*x)/(exp(1/x))); //значения результата по регрессионным зависимостям

qs+= pow((y+yr),2);stryr=FormatFloat("0.000",yr);->Memo6->Lines->Add(stryr);

}= (1/(n-1))*qs; //остаточные дисперсии

f1=qysum/q; //коэффициенты Фишера

Form1->Memo4->Lines->Add(d);->Memo4->Lines->Add(a0);->Memo4->Lines->Add(a1);->Memo4->Lines->Add(q);->Memo4->Lines->Add(f1);

a_0=0;_1=0;_=0;_1=0;_2=0;_=0;_1=0;(unsigned int i=0; i<16; i++)

{=Form1->Memo2->Lines->Strings[i];= StrToFloat(str);_1+=pow(((sqrt(x))/(log(x)*log(x))),2);

}(unsigned int i=0; i<16; i++)

{=Form1->Memo2->Lines->Strings[i];= StrToFloat(str);_2+=((sqrt(x))/(log(x)*log(x)));

}(unsigned int i=0; i<16; i++)

{=Form1->Memo2->Lines->Strings[i];= StrToFloat(str);=Form1->Memo3->Lines->Strings[i];= StrToFloat(str1);_+=((sqrt(x))/(log(x)*log(x)))*y;

}_ = n*d_1- pow(d_2,2); // d в первой регрессии_0= (ysum*d_1-d_2*f_)/d_; // a0 в первой регрессии_1= (n*f_-d_2*ysum)/d_; // a1 в первой регрессии

y_r=0;q_s, q_;_s=0;_=0;(unsigned int i=0; i<16; i++)

{=Form1->Memo2->Lines->Strings[i];= StrToFloat(str);=Form1->Memo3->Lines->Strings[i];

y = StrToFloat(str1);_r= a_0 + a_1*((sqrt(x))/(log(x)*log(x))); //значения результата по регрессионным зависимостям

q_s+= pow((y+y_r),2);str_yr=FormatFloat("0.000",y_r);->Memo7->Lines->Add(str_yr);

}_= (1/(n-1))*q_s; //остаточные дисперсии_1=qysum/q_; //коэффициенты Фишера

Form1->Memo5->Lines->Add(d_);->Memo5->Lines->Add(a_0);->Memo5->Lines->Add(a_1);->Memo5->Lines->Add(q_);->Memo5->Lines->Add(f_1);

}

//---------------------------------------------------------__fastcall TForm1::FormCreate(TObject *Sender)

{=16;(unsigned int i=0; i<n; i++)

{*ini;= new TIniFile(( Application->ExeName, ".ini" ) );->Lines->Add(ini->ReadString ( "name", i+1, "" ));->Lines->Add(ini->ReadString ( "name_x", i+1, "" ));->Lines->Add(ini->ReadString ( "name_y", i+1, "" ));ini;

}

}

//---------------------------------------------------------__fastcall TForm1::N4Click(TObject *Sender)

{();

}

//---------------------------------------------------------__fastcall TForm1::Button1Click(TObject *Sender)

{(PageControl1->TabIndex==2)

{->Close();

}(PageControl1->TabIndex==1)

{->ActivePageIndex = 2;->Button1->Caption="Выход";

}(PageControl1->TabIndex==0)

{();->ActivePageIndex = 1;

}

}

//---------------------------------------------------------__fastcall TForm1::N6Click(TObject *Sender)

{->Show();

}

//---------------------------------------------------------__fastcall TForm1::N3Click(TObject *Sender)

{->Show();

}

//---------------------------------------------------------__fastcall TForm1::PageControl1Change(TObject *Sender)

{(PageControl1->TabIndex==2)

{->Button1->Caption="Выход";

}(PageControl1->TabIndex==1)

{->Button1->Caption="Далее >>";

}(PageControl1->TabIndex==0)

{->Button1->Caption="Далее >>";

}

}

ОПИСАНИЕ ФУНКЦИОНАЛЬНОСТИ СИСТЕМЫ ПРОГРАММАРОВАНИЯ

В качестве среды разработки был выбран программный пакет Borland С++ Builder. C++ - программный продукт, инструмент быстрой разработки приложений, интегрированная среда программирования, используемая программистами для разработки программного обеспечения на языке программирования C++.++ Builder объединяет в себе комплекс объектных библиотек, компилятор, отладчик, редактор кода и многие другие компоненты. Цикл разработки аналогичен Delphi. Большинство компонентов, разработанных в Delphi, можно использовать и в C++ Builder без модификации.++ Builder содержит инструменты, которые при помощи drag-and-drop делают разработку визуальной, упрощает программирование благодаря встроенному - редактору интерфейса.

Язык С++ - это язык программирования общего назначения, очень хорошо известный своей эффективностью, экономичностью, и переносимостью.

Указанные преимущества С++ обеспечивают хорошее качество разработки почти любого вида программного продукта. Использование С++ в качестве языка программирования позволяет получать быстрые, компактные и легко читаемые программы. При этом они имеют хорошую наглядность и их более просто сопровождать.

С++ сочетает эффективность и мощность в относительно малом по размеру языке. Хотя С++ не содержит встроенных компонентов языка, выполняющих ввод - вывод, распределение памяти, манипуляций с экраном или управление процессами, тем не менее, системное окружение С++ располагает очень большой библиотекой модулей, в которой реализованы все подобные функции. Библиотека поддерживает многие, если не все, функции, которые требуются в работе.

Это решение позволяет программам, написанным на этом языке, быть независимыми от конфигурации конкретного компьютера, а строгое определение языка делает его независимым от любых деталей операционной системы или машины. В то же время программисты могут добавить в библиотеку специфические системные программы, чтобы более эффективно использовать конкретные особенности машины.

Перечислим некоторые существенные особенности языка С++:

С++ обеспечивает полный набор операторов структурного программирования.

С++ поддерживает указатели на переменные и функции. Указатель на объект программы соответствует машинному адресу этого объекта. Посредством разумного использования указателей можно создавать эффективно выполняемые программы, так как указатели позволяют ссылаться на объекты тем же самым путем, как это делает машина. С++ поддерживает указатели, и тем самым позволяет осуществлять непосредственный доступ и манипуляции с адресами памяти.

В своем составе С++ содержит препроцессор, который обрабатывает текстовые файлы перед компиляцией. Среди его наиболее полезных приложений при написании программ на С++ являются: определение программных констант, замена вызовов функций аналогичными, но более быстрыми макросами, условная компиляция.

С++ - гибкий язык, позволяющий принимать в конкретных ситуациях самые разные решения. Тем не менее, С++ налагает незначительные ограничения в таких, например, действиях, как преобразование типов. Во многих случаях это является достоинством, однако, программисты должны хорошо знать язык, чтобы понимать, как будут выполняться их программы.

С++ - это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей С++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы.

ЗАКЛЮЧЕНИЕ

В ходе выполнения данной курсовой работы была написана программа «Определение параметров регрессивной зависимости полной фактической себестоимости от общехозяйственных и общепроизводственных расходов», обеспечивающая быстрый расчет и вывод итога регрессивной зависимости. Помимо того программа написана в оконном режиме, что делает её интерфейс проще, интуитивно понятнее и позволяет даже практически неподготовленному пользователю ЭВМ быстро получить необходимый результат расчета.

Использование данной программы позволит упростить и ускорить процесс регрессивного анализа, а следовательно ускорить определение степени детерминированности вариации критериальной (зависимой) переменной предикторами (независимыми переменными), предсказание значения зависимой переменной с помощью независимой, определение вклада отдельных независимых переменных в вариацию зависимой.

В ходе разработки данного программного комплекса были:

разработан алгоритм решения задачи и предоставлен в виде блок-схем;

написана программа соответствующая всем поставленным задачам и выполняющая все необходимые расчеты параметров зависимости;

проведены тестовые расчеты(результаты которых прилагаются).

ЛИТЕРАТУРА

1. С/С++. Программирование на языке высокого уровня Т.А.Павловская - СПб.: Питер, 2002. - 464 с.

2. Основы алгоритмизации и программирования. Язык СИ : учеб. пособие / Е.М. Демидович. - СПб. : БХВ-Петербург, 2006. -440 с.

3. Касаткин А.И., Вальвачев А.Н. Профессиональное программирование на языке СИ: от Turbo C к Borland C++: Справ.пособие. - Мн.: Выш.шк., 1992. - 240 с.

4. И.Ф.Астахова, С.В.Власов. Язык С++ : Учебное пособие.- Мн.: Новое издание, 2003.

6. М/ук № . Программирование разветвляющихся и циклических алгоритмов на языке С. Пособие по выполнению лабораторных и контрольных работ по дисциплине «Вычислительная техника и программирование» для студентов технических специальностей дневной и заочной форм обучения / авт.-сост.: О.А.Кравченко, Е.В. Коробейникова. - Гомель: ГГТУ им. П.О. Сухого, 2005. - 33 с.

7. М/ук № . Массивы в языке С. пособие по выполнению лабораторных и контрольных работ по дисциплине "Вычислительная техника и программирование"для студентов техн. специальностей дневн. и заочн. форм обучения /авт.-сост.: О.А.Кравченко, Д.А. Литвинов. - Гомель: ГГТУ им. П.О. Сухого, 2005. - 51 с.

8. М/ук № Подпрограммы и программирование с их использованием на языке С. Пособие по курсу «Основы алгоритмизации и программирования» для студентов специальностей 1-36 04 02 «Промышленная электроника» и «Информационные системы и технологии (по направлениям)» дневной и заочной форм обучения / авт.-сост.: О.А.Кравченко, Д.А. Литвинов. - Гомель: ГГТУ им. П.О. Сухого, 2005. - 45 с.

9. Конспект лекций по языку программирования С/С++.

Похожие работы на - Определение параметров регрессионной зависимости полной фактической себестоимости от общехозяйственных и общепроизводственных расходов

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!